【質問内容】
LSI-Cの中間コードを見ていて思ったのですが、式の表記がはじめてみる形です。
逆ポーランド記法に似ていますが、演算子が先にかかれています。
もしかしてこれは「ポーランド記法」なんだろうか?
「逆ポーランド記法」の「逆」ってなんだろうと思っていましたがこういう事なのでしょうか?
知ってる方がいたら教えてください。

【回答】
 オケゲムです。
 ご指摘のLSI C-86の中間コードは、内部的にはTコードと呼ばれているそうですが、ご指摘の通り「ポーランド記法」に基づくものです。つまり、ポーランド記法の本来の姿ということになります。
 ポーランド記法の元祖はポーランドの論理学者J.Lukaszewiczですが、この名前が西欧人には読みにくかったらしく、名前ではなく出身国名で表現されるようになってしまいました。オリジナルは演算子を前置したものでしたが、後置表現にすることにより、スタックマシンのインプットとしてそのまま使用できるなどの理由から、現在では後置記法すなわち「逆ポーランド記法」が一般的になっています。
 LSI C-86が前置記法(ポーランド記法の本来の姿)を採用したのは、おそらく解析木が表現できれば十分なため、たまたま前置記法を採用したのだ思います。Tコードは、そのまま実行するわけではないので、前置でも後置でもどちらでも良かったわけです。
 ちなみに、当ホームページにもありますが、きだあきら氏によるPL/0バリエーションとして、Tコードを生成するバージョンがありますので参考になさってください。きださんは、リバースエンジニアリングによりTコードを解析して、これを作ったのだそうです。
目次 目次に戻る

Last update: '2000年09月04日