ForthB!著者:まつもとゆきひろはじめに本連載で取り扱う言語の選択にはいつも気を使います。世の中にはそれこそ星の数だけプログラミング言語があるので、珍しい言語というだけなら枚挙にいとまはないのですが、とはいえ、単に珍しい言語を紹介するだけでは蘊蓄以外にあまり役に立たないので、以下のような条件を満たすような言語を選ぼうと思っています。誕生してからある程度時間がたっている他の言語には見られない珍しい特徴がある言語が数多くあるといっても、これらをすべて満たす言語はなかなか見つからないのが実情です。皆さんもなにか「これ」という言語を思いついたら教えてくださいね。よって開発された、一風変わった表現を持つプログラミング言語です。年代初頭に天文台の機器制御のために開発されたということです。世代言語」と見なしていたことに由来します。なったということです。特徴としては、とにかく言語仕様が小さく、処理系がコンパクトなことがあげられます。小さなマシンで開発されたこともありますし、この特徴からいまだに組み込み系で使われることもあるようです。最大の特徴は「逆ポーランド記法」にあるのですが、それについては次の節で説明します。逆ポーランド記法は「後置記法」とも呼ばれ、演算子が式の末尾に登場します。ように間に登場するものは「中置記法」と呼ばれます。よって発明されました。オーストラリア人なのになぜ「ポーランド」かというと、それ以前に元になった「ポーランド記法」が存在していたからです。これは要するに、前置記法なのですが、「演算子が要求するオペランドの数があらかじめ分かっていれば括弧が不要になる」という点が斬新でした。3))と解釈されるということです。前置記法や中置記法に必要な括弧による曖昧性の除去が不要になるので、表現が非常にコンパクトになります。「逆ポーランド記法」は、いちばん簡単に表現すると「ポーランド記法」を逆にしたものです。逆ポーランド記法で表現すると上記の式は以下のようになります。足したものを、掛ける」となります。逆ポーランド記法の解釈にはほとんどの場合、スタックを用います。スタックを使った意味付けにおいては、リテラルは値をスタックに積む演算子はスタックから一定数の値を取り出し、結果を積むという動作をします。パワーの多くはこの記法によっています。関数電卓でも採用されています。あらゆるプログラムは「ワード」の並びです。「ワード」は他の言語における「手続き」や「演算子」またはリテラルなどに相当します。新しいワードを定義するには「:」ワードを用います。;「:」から「;」までがワードの定義になります。直後にあるのが定義するワードの名前です。ここでは「DOUBLE」になります。括弧から対応する括弧まではコメントになります。ワード定義の後ろには、「–」ではさんで入力時と出力時のスタックの状態を示すのが一般的のようです。プログラムは「ワード」を定義することで行います。プログラムは「ワード」の集まりですから、「ディクショナリ」と呼びます。制御構造もやや特殊です。文は以下のような形式になります。似ているかもしれません。間までを繰り返します。位置までジャンプします。