Friday, 8 November 2013

PyPy

コンパイラの授業では今年は 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: