3imp
コンパイルの過程。以下3impに書いていること、そのまま。 lambda (lambda vars body) は (close vars cbody) へコンパイルされる。body をコンパイルするときは next を '(return) にしておく。 (return) インストラクションは、スタックから最初のフレーム…
再度整理。 rec -> gauche では定義しなくてよい。SRFI-31 として定義済み。 recur -> named let を使えば不要。 record-case -> match で書き換えできるので不要。 この 3imp 3.4 の VM + Compiler で、まずは普通の四則演算ができるようにしたい。さてどう…
あまり進んでいないがメモ。VM のレジスタの役割を再度確認中。 VM にわたる引数を全て出力して一つ一つ追って行く。 うーん、コンパイラとVMとどちらがどこまで正しいのかよくわからないなぁ。もっと理解できる最小の系にしないと駄目だ。
いろんな実装を真似して何とか 3imp 3.4 の compiler/VM が動くようになった。まだ理解しているとは言いがたいのでコードは貼付けない。 record, record-case は結局 define-macro で書いた。syntax-case は良くわかっていない。 recur って let (named let)…
chapter 3. とりあえず動かしてから眺める、というやり方はうまく行かなそうなことが分かった。もう少しやり方を考えよう。3imp 関連のブログなどのメモ。(20090726 追加) http://cadr.g.hatena.ne.jp/mokehehe/?word=%2a%5b3imp%5d mokehehe さん http://sv…