本年度は他言語との接続部の開発を続けながら、主に型システムと操作意味論の改良に務めた。 特に成果を収めた分野は次の二つである。 多相ヴァリアント型 他言語との接続を型安全にするために、各部品固有の細いデータの使い方を型に反映させなければならないが、多相ヴァリアント型が不可欠になる。関数型言語で使われる型推論は型システムに単項性という性質を求めており、従来のヴァリアント型ではそれが完全に得られていなかったので、従来のシステムを局所制約という概念を用いて拡張し、それを形式化した。 オプショナル引数の意味論 C++や動的型付言語において、オーバーローディング(多重意味)がライブラリの簡素化のために大きな役割を果している。ただし、そういうアプローチを用いると型非依存性という重要な性質が失われる。オーバーローディングの重要な使い方であるオプショナル引数に型非依存な操作意味論を与え、それをObjective Camlで実現した。 それぞれの進歩は当方で作ったLablTk、LablGL、LablGTKという他言語接続ライブラリで使われる他、Objective Camlの利用者に幅広く新しいライブラリの開発に使われている。
|