Biwa Schemeを読む(3) - コンパイラ〜インタプリタ

ここからが本題。CompilerとInterpreterは一緒に読んだ方がよさげ。

Biwa Scheme中間言語は[命令,値(複数),次の命令]という形になっていて再帰的な構造をしているようだ。

命令一覧

  • halt
    • 終わり。
  • constant 値
  • argument
  • refer-global 名前,-local 名前, refer-free 名前
    • 環境を参照する,assignで書く。
  • apply 引数の数
    • 命令の実行。
  • frame 命令・・・
    • ローカル環境っぽい。

まだ読み中。

突っ込み

0.5の時点では積み方が逆。

(define (p x)
 (display x)
 (newline)
 x)
(+ (p 1) (p 2))

2
1
3

破壊的でなければ何の問題も無い。

感想

  • 中間言語を利用することで最適化を促す事が出来、速度向上に繋がる。
  • 判ったことは、S式という状態だけでも充分過ぎるほどの中間言語である。
  • 結局のところ写像をしてるだけなんだ。