海野秀之(うんのひでゆき)の外部記憶
Twitter (twilog) / RSS / アンテナ / ぶくま
https://github.com/unnohideyuki/Tiger-in-Haskell
Codegen を書いていて、これまでのところでイマイチわかってなかったところに気づいて修正。関数の戻り値は、Tree 言語上どうやって表現されることになってたのか、わかんなくなって。Translate では、戻り値を RV に格納するような MOVE 命令を Proc の body に追加するべきだった。
Translate をそのように直して、それに対応する MOVE 文の munchStm も書いた。
Tiger 言語の関数・プロシージャは、すべて、Dalvik 上では Object を返すメソッドにマッピングされることになる。(UNIT は CONST 0)
Canon の理解があやふやなのは、動かしながら&テストを書きながら理解していこう。
だいぶ、わからない部分がなくなってきた。
9章ぬけたら、いよいよレジスタ割り付けだ。