魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

99 BASIC のすすめ(4)

ガラパゴスBASIC(以後、ガラベ)には、ブロックによる構造化構文がない。しかし、そんなことは大した問題じゃない。したのとおりでいいじゃないか。むしろ初心者にはこちらのほうがブロックによる構造化 if 構文よりもわかりやすいだろう。

f:id:fxrobot:20131110081635j:plain

うえで、同じ行がいくつもあるのはただの手抜き。ここに異なる文が何行もあることを想像してもらいたい。行の途中のコメントは「:'<コメント>」のようにコロンを付けなければならないと思っていたが、99 BASIC ではコロン抜きで平気なようだ。N88-BASIC がコロンを必要とするなら互換性のために付けておくべきだろう。(ぼくは知らない)

ガラベのプログラミングでは、goto <行番号> が大量に出てくるが、さすがにこれはおすすめできない。行番号を振り直す(renum)と大変なことになってしまうしね、必ずラベルを使うのがよいと思う。また、ラベルは「*label:print "プリント"」のようにしないで、必ずラベルだけで1行を取るようにするのがよいと思う。

 ガラベは自由なのがよいところだと思うので、ごちゃごちゃのスパゲッティプログラムでも構わないという気もするが、うえのまじん流の書き方をおすすめしたい。

ぼくは N88-BASIC の仕様を知らないが、99 BASIC ではスペースのインデントが可能のようだ。今回はわかりやすさのために4つのスペースを入れたが 2つでも十分だろう。ガラベでも十分美しく構造化できると思う。

ガラベは表現力や機能が少ないが、その仕様の範囲が狭いことこそが重要な意味を持つ。現代の Basic はごく当たり前のように拡張されてしまったし、そのような Basic もぼくを含めた多くの人にとって必要だが、進化しないガラベも必要だと思うし、それを使うのもとても楽しいものだ。

ぼくは goto が好きだ。

もちろん、その弊害はぼくもよく知っているし、職業プログラマは企業プロジェクトにおいて使うべきものではない。goto が不要なことは大昔にダイクストラが提唱して以来、今日まで受け入れられてきたことだ。

goto は使わなければよいもので取りあげられたくはない。

もっとも、ぼくがプロジェクトリーダーだったら goto は使うなという前に物理的に使えないようにしてしまうだろう。:P  ところで Lua の最新バージョン(5.2)では goto が導入される。その形式は goto label ~ ::label:: ~ という感じ。使わないとは思うけど、ぼくは大歓迎だ。

さてさて、

プログラミングに初挑戦の人にはガラベが最適だと思う。

ガラベと決めたのなら選ぶべきは 99 BASIC だろう。