コンパイラ基礎
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に入れられるわけです。
長さは短いけど、なかなかなプログラムでした。