FORTH
FORTHは、プログラミング言語のひとつである。もともとは、天文台の天体望遠鏡駆動システムの制禦用言語であり、組込型の制禦しすてむにしばしば用いられる。
スタックマシンを前提としており、実装が容易であるために、仮想マシンとして利用されることも多い。本来はリアルタイム制禦用に開発された言語であるため、C言語とともに「縁の下の力持ち」的な言語である。
概要[編集]
通称「逆ポーランド記法」と呼ばれる記法によることで有名である。考案者の名前が発音しづらく英語では表記しにくいため[1]、出身国であるポーランドの名称が用いられたという伝説がある。
演算子が前置するオリジナルのポーランド記法とは逆に、演算子を後置する。たとえば「a+b」は「a b +」と表記される。いわゆる関数電卓やプログラマブル電卓においては、それなりに使われている。理由としては、「演算の引数の数が固定であるならば、括弧が不要である」ことがある。また、必ず空白が間に入るため、トークン化(トーカナイズ)が容易であるという利点がある。
逆ポーランド記法は「日本語的である」という印象を受ける使用者もいて、「a+b」は「a b 足す」、「a = a + b」は「a b 足す a 代入」と解釈できる。実際にそうした日本語に近い言語が商用化もされたが、なにしろ当時はメモリの価格が高かったので、あまり普及しなかった。
とはいえ、「FORTHプログラミング言語は、コンピュータのもつパワーと自由度を電卓のもつ簡便さで利用できるように、これら2つの概念をむすび合わせたものなのである。」という理念には変わりはないので、「裏方」に甘んじず表に立ってほしい言語ではある。
ただし、「括弧を使わない」ことから、「演算子の引数の数が固定である」ということになり、LISPのような「括弧だらけのプログラミング言語」と比べると若干分が悪い。
基本[編集]
いわゆる「ノイマン型コンピュータ」には、
- ハーバード型アーキテクチャ
- プリンストン型アーキテクチャ
の二種がある。
ハーバード型は、「プログラムはROMに、データはRAMに」という形式であり、プログラムの自己書き換えを許さない。
プリンプトン型は、「プログラムだろうがデータだろうが、同じバイト列じゃないか」という発想なので、プログラムの自己書き換えを許す。LISP なんぞはプログラムの実行を途中で止めて、ソースコードを書き換えて実行再開、なんていうことも可能である。
現在はRAM領域が広いため高級コンパイラ言語全盛なので、プリンプトン型が主流である。かつての8ビットCPU全盛期には、ハッカーによる各種のイタズラが行われていた。
FORTH はマイクロプロセッサの登場以前から使われていたが、「コンパクトで速い」という理由から組込のリアルタイム制禦システムに使われており、アセンブラ(あるいは機械語やニモニック)に熟達したプログラマにとってはなじみのある言語である。また仮想機械のプログラムとしても利用される。
スクリーンという概念があり、記憶領域は1024バイト単位で区分される。これは64文字×16行に相当する。
参考文献[編集]
- ハリー・カッツァン著/池野信一監訳『FORTHへの招待』(近代科学社、1982)
脚注[編集]
- ↑ J.Lukasewicz。1878~1956。