コンパイラの授業では今年は PyPy を読みます。Python で書かれた Python のJITコンパイラですね。
例年、gcc とか llvm とか、JavaScript Engine とか読んでるわけですが... たぶん、11/22 から。気が向けば ustream するかも知れませんが、音声の調整が難しくて。(難しいってよりは面倒で)
スクリプト言語で書かれたコンパイラといえば、
* GAME80で書かれたGME80 compiler
かな。可読性ゼロなコンパイラで、生成コードもあまりよろしくないというしろものでしたが、たまに使ってました。68系はなかったんじゃないかな。
* rpython ってのがあって、そいつが target script を読むと、build が始まって、clang 呼び出して pypy ができる
数時間かかるらしいです。pypy は既にcompileされたpython。これって、pdb できるのかな。lldebug option を付けると lldb で終えるようになるみたい。でも、それを読むのが正しいとも思えず。つまり、
* 一体何を読めば良いんですか? 状態
です。rpython を読むのは違う気もするが、そうなのかな。pypy を pdb/lldb ってのも違うだろうし。
interactive の下に Python parser があるのは見つけました。これも、ebnf で書いた文法ルールを Ptyhon に変換し inline で script に埋め込むというおそるべきものらしい。
というわけで、11/22 の読み会は楽しめそうです。
No comments:
Post a Comment