本年度は自己反映言語処理系OpenC++を改良し、その上で効率のよいソフトウェア部品の作成を試みた。まず、今までは構文木をメタプログラムで変形するという、比較的単純な機能しか提供してこなかったが、これまでの経験に基づいてこれを改良し、クラスやメンバーなど、より高い抽象概念を使ってプログラムを変換できるようにした。これによって多くのメタプログラムの記述を短く簡潔することができた。 さらにこのOpenC++を使い、並列処理用のメタプログラムを作成した。これは並列計算機Sun Starfireの上で、並列オブジェクトを使ってプログラムを書けるようにするものである。このような並列オブジェクトは、クラスライブラリの形では提供できないので、従来は部品化できなかった。しかし自己反映計算を使うことで、メタプログラムという部品の形で提供できるようになった。さらにこのメタプログラムをライブラリ化することで、類似の部品を容易に作成できるようにした。また、類似部品を作る際には、不要な機能のために実行効率が不必要に低下すること避けるため、そのような機能を削除することができる。 この他にオペレーティング・システム(OS)のモジュールの部品化についても研究した。OSの場合、部品の故障からシステムを守る保護機構と部品の実行効率の調整が難しく、部品化できないものが多い。我々は、部品を組みこむときに、どんな保護機構でシステムを守るかをユーザが選べるような機構を開発しこの問題に対処した。
|