コンパイラ基礎 | spin on the RITZ

コンパイラ基礎

z学校の図書館で、コンパイラの基礎について書かれている本を見つけたので、少し拝借。

4つ組コード化のプログラムがあったので動かしてみたけど、これがなかなか面白い。


a+b*c

という中置式は

(* b c T1)(+ a T1 T2)

という4つ組のコードに変換されます。

最初にb*cを変数T1に入れておいて、その次に、a+T1をT2に入れる。結果はT2に入るわけです。


a+b*(c-d)-e*f/g-h+i*j

という式は
(- c d T1)(* b T1 T2)(+ a T2 T3)(* e f T4)(/ T4 g T5)(- T3 T5 T6)(- T6 h T7)(* i j T8)(+ T7 T8 T9)

と変換されます。順を追ってみていくと、結果はT9に入れられるわけです。



長さは短いけど、なかなかなプログラムでした。