平成10年度は、MLに似た先行評価型の関数型言語に対して、オブジェクトの寿命を推論する型システムの設計を行ない、プロトタイプの実装を行なった。TofteとTalpinらがML-Kitに実装した領域・エフェクト推論(region effect inference)と目的は似ているが、本研究のシステムでは、プログラマが明示的にオブジェクトの寿命を指定して、その指定の正当性をシステムがチェックする。そのために、ML-Kitのシステムの改良ではなく、Haskellなどの純関数型言語でよく使用されるモナド(monad)の概念に基づく型システムを応用し、型システムの簡略化を行なった。プログラムやその型が簡単になるように、領域を階層化するために相対的参照(compositional reference)の概念を応用した。また、再帰関数に関しては、一種の再帰多相(polymorphic recursion)の型推論が必要になるが、これについてもML-Kitと異なる、より単純な方法を工夫した。これによって、マージソートなどの実用的な再帰アルゴリズムに対して、オブジェクトの寿命の指定が可能であることを、プロトタイプの実装により確認した。 このシステムではオブジェクトの生成時の領域の指定はML-Kitのシステムよりも簡略化できるが、逆にオブジェクトの使用時の領域の指定がML-Kitのシステムよりも煩雑になってしまう。このため、平成11年度は、サブタイプもしくは類似の型システムを導入し、オブジェクトの使用時の領域の指定をより簡略化できるように型システムを改良する予定である。また、ML-Kitのシステムとの表現力や計算時間などの詳細な比較、及び型推論システムの安全性の証明なども行ないたい。その後、Java処理系への組込みも行なう予定である。
|