Java仮想機械語(JVML)に代表される既存の型付仮想機械語(中間言語)は、実行前型検査(検証)と自動メモリ管理(ごみ集め、GC)によりそのプログラムを安全に実行できるが、型システムが特定のオブジェクト指向言語にほぼ対応している点を含め汎用性は高くない。本研究は、仮想機械のRISC化を目標に、安全性を維持しつつ汎用性と高速性を持つ型付中間言語(以降、この言語を"MIL"と呼ぶ)を設計しようとするものである。低水準中間言語の既存研究が深く取り組んでいない正確なGCのためのトレーサビリティ保証にも型システムを用いる。 型付中間言語MILの言語仕様の設計においては、MILの役割と型システムを強く意識した上でシンタックス、セマンティクスの設計を行う。MILの役割としては、汎用性の高さ、高性能、処理系として正確なごみ集め、真の末尾再帰のサポートがある。平成21年度は、主に以下の点について研究を進めた。 1. MILのシンタックス、セマンティクスの主要部分の設計・改良 多くの課題は残されているものの、変数やヒープ上のオブジェクトに関する仕様、基本命令や制御構造についての仕様の設計を進めた。また、ごみ集めを含む型付けなしのセマンティクスについて検討、改良を進めた。 2. 型システムの設計 冗長な実行時チェック(境界チェックなど)が除去されたコードを許すような型システムについての設計を進めた。その結果、fixnumなどのためのビットレベル表現の考慮を含め、何を表現したいのか(エンコード)を意味する制約を使うべきという着想を得た。また、循環したオブジェクトの初期化が扱える型システムを考案するとともに、多次元配列のサポートについて検討した。
|