BASIC(RESTORE)


アニメ映画『ガラスの花と壊す世界』(2016)

コンピュータなんでしょうか、「知識の箱」の中で美少女たちがウィルスと格闘します。美少女といっても彼女たちは「知識の箱」の中のプログラムの一つでしかありません。アンチウィルスプログラムです。ウィルスが現れたら、圧縮して削除する、の繰り返しです(圧縮する必要がよくわかりませんが)。「知識の箱」には、人間の人格データや、世界がまるごとバックアップされていて、そのバックアップを展開して、世界旅行もできます。でも美少女たちは、ただのウィルス駆除のプログラムなので、この世界のご飯を食べてもおいしく感じません。そんな機能は与えられていないんです。
この映画、アメリカでは「GARAKOWA -Restore the World-」というタイトルです。

さてBASICでRESTOREを使います。DATAで定義された値は、順番に読み込みされますが、定義がない場合はどうなるでしょうか。

takk@deb9:~/tmp$ cat restore1.bas | nl -ba -i10 -v10
    10  '$lang: "qb"
    20
    30  data 500,600,700
    40
    50  read a
    60  print a
    70
    80  read a
    90  print a
   100
   110  read a
   120  print a
   130
   140  read a
   150  print a
takk@deb9:~/tmp$

このように定義がない場合、0が読み込まれます。

takk@deb9:~/tmp$ ./restore1
 500
 600
 700
 0
takk@deb9:~/tmp$

読み込みをDATAの先頭に戻すには、RESTOREを使います。

takk@deb9:~/tmp$ cat restore2.bas | nl -ba -i10 -v10
    10  '$lang: "qb"
    20
    30  data 500,600,700
    40
    50  read a
    60  print a
    70
    80  read a
    90  print a
   100
   110  read a
   120  print a
   130
   140  restore
   150
   160  read a
   170  print a
takk@deb9:~/tmp$

DATAの先頭に戻って500が読み込めました。

takk@deb9:~/tmp$ fbc restore2.bas
takk@deb9:~/tmp$ ./restore2
 500
 600
 700
 500
takk@deb9:~/tmp$

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA