Scheme Compiler の勉強(23) - 小まとめ

Abdulaziz Ghuloum さんの "Compilers: Backend to Frontend and Back to Front Again" という文書を参考にして、Schemeコンパイラ、それからついでに LLVM の勉強をしています。

この文書は、コンパイラがけっして魔術的な難しいものではないことを示すために書かれており、「テストデータを用意し、動くコンパイラを少しずつつくっていく」、というアプローチを取ります。前提となる高度な知識をほとんど要求せず、既存のコンパイラアセンブラ出力を利用したりしながら進めていきます。コンパイラの入門として手を動かしてみると面白いと思います。

わたしの目的は二つあって、一つは自分がやりたいことのために歴史あるコンパイラ周辺に大量にある技術(の一部)を獲得すること、もう一つは本物の言語処理系を作っているハッカーらがやっていることをより面白く見れるようにすること、です。わたしは今、 letrec で手続きが定義できるようになったところです。

とても楽しい文書なのですが、いくつか問題もありました。参考までに。

必要なもの

問題

  • 途中から説明が足りない気がします。先にインタプリタを作ってみた方が良いかも。※ひょっとすると‥今更ですが‥まだ完成していない文書なのかも‥一通り終わったら作者に尋ねてみようと思います。
  • PowerPC だと苦労する気がします。intel の普通の linux マシンがあるとずっとずっと楽にやれると思います。
  • scheme 処理系(ChezScheme)依存の部分あり。scheme の勉強にちょうどよいかもしれません。
  • 高度な最適化については書かれていません。ので、これを勉強してもコンパイラのプロにはなれません。本当に難しい|面白い細部はずっと先にあります。