Scheme Compiler の勉強(23) - 小まとめ
Abdulaziz Ghuloum さんの "Compilers: Backend to Frontend and Back to Front Again" という文書を参考にして、Scheme とコンパイラ、それからついでに LLVM の勉強をしています。
この文書は、コンパイラがけっして魔術的な難しいものではないことを示すために書かれており、「テストデータを用意し、動くコンパイラを少しずつつくっていく」、というアプローチを取ります。前提となる高度な知識をほとんど要求せず、既存のコンパイラのアセンブラ出力を利用したりしながら進めていきます。コンパイラの入門として手を動かしてみると面白いと思います。
わたしの目的は二つあって、一つは自分がやりたいことのために歴史あるコンパイラ周辺に大量にある技術(の一部)を獲得すること、もう一つは本物の言語処理系を作っているハッカーらがやっていることをより面白く見れるようにすること、です。わたしは今、 letrec で手続きが定義できるようになったところです。
とても楽しい文書なのですが、いくつか問題もありました。参考までに。
必要なもの
- scheme の入門知識
- scheme 処理系
- コンパイラ(gcc or llvm コンパイラインフラのセット)
- PowerPC or X86
- Instruction set
- LLVM http://llvm.org/docs/LangRef.html
- Abdulaziz Ghuloum さんの文書
- 参考書: これから読みたいものand/or一緒に読むべきもの
- OS/Programming http://www.csg.is.titech.ac.jp/~chiba/lecture/os/index.html 東京工業大学 千葉 滋先生
- 「コンピュータの構成と設計」パターソン&ヘネシー
- "Representing Type Information in Dynamically Typed Languages (1998)", David Gudeman
- "Three Implementation Models for Scheme", R. Kent Dybvig
- SICP
- PAIP("Paradigms of Intelligence Programming", Peter Norvig, Chapter 22, "Scheme: An Uncommon Lisp"
- http://practical-scheme.net/wiliki/schemexref.cgi Scheme Cross Reference
- LLVM 勉強会資料(http://groups.google.co.jp/group/llvm_study/web/第一回+llvm+勉強会)
- http://alohakun.blog7.fc2.com/blog-entry-482.html 最初に知ったのはここ(ホワット・ア・ワンダフル・ワールドさん)