2009年6月12日金曜日

JVMで動作するScheme

プログラミング言語階層の中でJVMは実行エンジンの主役となっている。Jython, JRuby, ScalaなどいずれもJVMを実行エンジンとする。JVMで動作させるにはJavaのバイトコードにコンパイルする必要があるため、言語ギャップが大きい。
柔軟なプログラミング言語階層を構成するには高級言語をいきなりバイトコードにコンパイルするのではなく、いったん中間言語に変換する方がよいだろう。中間言語はコード自身をデータとして扱えるLispが望ましい。やはりSchemeだろう。実行エンジンとしては小型で高性能な方がよい。
そうなるとJVMで動作するSchemeは重要だ。KAWAやSISCなどがあるらしい。
これらの処理系は十分意味があるが、それだけでは足りない。各高級言語とSchemeをつなぐトランスレータが必要だ。
トランスレータはコンパイラより手軽だが、意味の欠損がかなり大きい。変換がいい加減な性もある。

0 件のコメント: