2005)ほんとはもっとちゃんとした用語があるような気がする。今やろうとしてるのは、ローカル変数の束縛と使用を関数内で追跡して、未知の関数に(引数もしくは戻り値として)渡されるもの以外のローカルクロージャについて、インライン展開した方がよいものはする。ローカルクロージャが外側の静的環境を一切参照していない場合は、グローバルな環境でコンパイルする(従って実行のたびにクロージャを作る必要がない)ローカルクロージャが外側の静的環境に属するたかだか数個の変数を参照しており、それらの変数に変更を加えていない場合は、それらを引数で渡すようにして、グローバルな環境でコンパイルする。(特に、組み込みの高階関数のインライン展開と組み合わせると)。これらは新しいテクニックではなくて、私も昔バッチコンパイルするScheme処理系を作った時にやりましたが、Gaucheみたいに実行時に毎回コンパイルする場合はコンパイラのオーバヘッド自体も抑えたいのでゆるゆると進めています。最新の命令セット一覧は、NVM0_8_3というブランチをチェックアウトするとsrc/vminsn.scmにあります。過渡期なので古い命令も混在しています。いう話でいいんでしたっけ(論文は見てなくて名前からそんなことを想像していました)。コンパイル時の負荷は実は全然考えてなくて、やっぱり考えないと駄目ですよね・・・。