VM用のコンパイラ - Scheme VM を書く

VM 用のコンパイラGauche で動かしていて、コンパイラの出力を C++ で読めるような形にして VM に渡している。
そのうちコンパイラC++ で書き直さないといけないので面倒だと思っていた。
しかし良く考えればコンパイラコンパイルしたコードが VM 上で動けば、コンパイラC++ で書く必要はない。(ややこしい)。
更に言うとコンパイル時にいろいろな最適化を入れるのだけど、S式をS式に変換するのだからどう考えても Scheme で書いたほうが効率が良いに決まっているよね。
デメリットを挙げるとすれば VM が遅いとコンパイルも遅くなるってことくらいか。
鶏と卵の前には Gauche があったという。