コンパイラを、自分で書いてみないとなかなか合点がいかないことがある。
しかし、GCCのような巨大なコンパイラを自分で1から書くのは不可能かもしれない。
また、読むのでも、どこから読んだらいいかわからないことがしばしばある。
ソースコードを読むときに、少し変更して挙動を見ると、そこが何をしているところかわかったり、どこに影響があるかがわかることがある。
そのため、小さいコンパイラを書くか、大きなコンパイラの一部を修正することによって、コンパイラを理解するとよい。
そのどちらの方法をとる場合でも、本書はバイブルのように参考になる。
字句解析、構文解析、実行時の記憶域管理、コード生成、コード最適化、プログラム作成演習について書いている。コンパイラの実現例として、PASCALのサブセット,C,Fortran、Blissを例示している。 PL/1の構造体についての触れている。
ps.
コンパイラをC言語で書いてみて、バグが取れなかった。
ポインタ操作をいいかげんにしていたことが原因のようだ。
ポインタ操作はいいかげんなことをしてはいけないことを体験した。
2巻に分かれたコンパイラの本がでているので、今から購入するなら、そちらをお勧めします。