Scribble at 2024-07-08 12:07:18 Last modified: 2024-07-09 07:08:58
FORTH というプログラミング言語は非常に面白い特徴があって、そのフレキシビリティという特徴ゆえに用途が色々と広いのだけれど、いまから学ぶにあたってはリソースが限られていて、しかも大半の書籍やウェブ・ページの解説には問題が多い。
たとえば、FORTH に限らずプログラミング言語を解説する文書では、冒頭にトークンの規則が出てくる。要するに空白文字の使い方や expression の単位を表す末尾の記号とか改行記号とかコメントとかの話だ。そして、FORTH を解説する本の多くは1990年頃までに書かれた古い著作物が多くて、想定している処理系が現在のものと異なるという理由もあるが、それ以前にプログラミング言語の解説文書として未熟な段階にあったという事情もあって、他人に言語の仕様を説明する方法に不適切なものが多い。FORTH に限って言えば、空白文字を目立つように編集していないせいで、WORD どうしにどれだけの空白文字を入れているのか、それとも入れる必要がない、ひとまとまりの文字列なのかが、印刷された紙面では分かりにくいのである。
: ALICE ."curiouser and curiouse!" ;
たとえば、上記は Mastering FORTH: revised and Expanded (Tracy, Anderson, and Advanced MicroMotion, Inc., Brady Books, 1989) の冒頭に出てくるコマンドの一式であり、ALICE という WORD を定義している。でも、これをこのまま gforth のインタラクティブ・モードで入力すると、":2: Undefined word" のエラーとなる。これは、dot-quote (.") の後に空白文字を入れていないためである。印刷では、dot-quote と定義内容とのあいだに空白文字があるのかないのか分かりにくいし、実は定義内容の範囲を終了する quote (") は、定義内容とのあいだに空白文字を置いても置かなくてもどちらでもいいという、奇妙な仕様になっている。というわけで、ちゃんと dot-quote の後に空白文字を入れると、
: ALICE ." curiouser and curiouse! " ; ok
として、FORTH がエラーなく受け付けてくれる("ok" というレスポンスが出る)。ということで、このプログラミング言語を解説する文書を書くなら、いまでは空白文字をきちんと視認しやすく presentation するような編集が必須だと思う。