Java仮想機械語(JVML)に代表される既存の型付仮想機械語(中間言語)は、実行前型検査と自動メモリ管理(ごみ集め、GC)によりそのプログラムを安全に実行できるが、型システムが特定のオブジェクト指向言語にほぼ対応している点を含め汎用性は高くない。本研究は、仮想機械のRISC化を目標に、安全性を維持しつつ汎用性と高速性を持つ型付中間言語(以降、この言語を"MIL"と呼ぶ)を設計しようとするものである。低水準中間言語の既存研究が深く取り組んでいない正確なGCのためのトレーサビリティ保証にも型システムを用いる。 型付中間言語MILの言語仕様の設計においては、MILの役割と型システムを強く意識した上でシンタックス、セマンティクスの設計を行う。MILの役割としては、汎用性の高さ、高性能、処理系として正確なごみ集め、真の末尾再帰のサポートがある。平成22年度は、主に以下の点について研究を進めた。 1. MIL言語ファミリーの位置づけ 型付き中間言語MIL以外に、型なしのMIL(U)、コンパイル先となる型付き低水準言語LL-MIL、その型なしのLL-MIL(U)を考え、セマンティクスは主にMIL(U)で、実装者が想定する実行環境はLL-MIL(U)でと役割をはっきりさせた。 2. 依存型の型システムの設計 fixnumなどのためのビットレベル表現の考慮については大きく前進し、成果発表を行った。鍵となったのは、「場合依存型」の発見、2分決定木(BDD)の利用、ビットレベル表現のための述語encodeの発見であった。また、循環したオブジェクトの初期化が扱える型システムについても進展があった。 3. 正確なGCのサポート 静的型情報だけから参照を見つけるようなコレクタ用のコードをいかにして自動で生成するかが挑戦的な点であり、解決には至っていないが課題の整理を行った。
|