BASICのLET文とは何だったのか

まとめは他にすばらしいのが上がってたり、動画もすぐ上がりそうなのでスルー。気になった部分だけちょこちょこエントリ起こすかな。

「古い言語、新しい言語」のセッションで、id:TAKESAKOさんの発言だったかな。

昔のBASICで変数宣言にLET文が必要だったのは、構文解析のコストが高かったからじゃないか

というお話があったんですが、どちらかと言うと文化の問題だったんじゃないかなと思ったり。

自分もLET文が必要だった時代はリアルタイムでは経験してなくて、「マイコン入門」みたいな書籍でLET文が入ったサンプルに「最近はLET文書かなくてもよくなったよ」みたいな注釈を見た程度です(ちょうど20年ぐらい前)。

恐らく当初のBASICというのは「高級アセンブラ」を指向していたはず。今のような抽象化を目指した言語ではなく、「機械語のニーモックを人が読めるようにしただけじゃなくて、いろいろと便利な命令が揃ってるんだぜ」ぐらいなもんだったんじゃないかなと。

だとすると、初期のBASICにとっては全ての構文が「命令文+引数」の形で提供されるのは自然なことだったと思われます。

LD A,10

LET $A = 10

になるのは当然の流れで、逆に「$A = 10」だけで変数が定義できてしまうことの方が最初はイレギュラーだったんじゃないかな。

そこにある日「LET文が多すぎてウザい。いちいちLETとかタイプしてる奴って何なの?」みたいなhackが登場して、それが定着したってのが実際のところじゃないかと妄想してみる。

構文解析のコストが高かったってのも確かにあると思うんだけど、むしろ初期には高度な構文解析の必要性自体が認識されていなかったんじゃないでしょうか。


「人間が機械の都合に合わせる」から「機械が人間の都合のいいように振る舞う」というパラダイムシフトの中で、「LET文が不要になった」というのは大きな出来事だったんだろうなとは思います。そういう意味で個人的にはこのトピックが出てきたのは面白かった。懐古主義万歳w