本研究では、多様な並行オブジェクトモデルのサポートする言語の構築を目標として、自己反映計算(リフレクション)に注目し、並列オブジェクト指向言語ABCL/R3のメタオブジェクトの設計と、その最適化の枠組についての研究を行った。 これまでにもいくつか自己反映的な並列オブジェクト指向言語が提案されているが、我々が本研究で提案したメタオブジェクトの特徴は、部分計算(partial evaluation)を用いた最適化を意識した設計になっている点である。 さらに、このようなメタオブジェクト定義を、部分計算によって解釈実行のオーバーヘッドをとりのぞくような最適化の枠組を示した。これは、メタオブジェクト定義を一度関数的な言語へ変換し、そこで部分計算を適用するものであり、既存の逐次言語の部分計算器を利用できるという利点がある。 試作システム上で実行速度を測定したところ、最適化によって4〜30倍の速度向上という結果が得られた。また、自己反映計算の機能に対するオーバーヘッドも1.4〜3倍に抑えられている。さらに、拡張された並行オブジェクトモデルの例として、「ガード付きメソッド機構」を提供するようなユーザ定義メタオブジェクトを記述した。これも部分計画による最適化で効率的に実行できることが示されている。 本研究の目標である多様な並行オブジェクトモデルのサポートに対して、(1)どのようなメタオブジェクトを提供すればよいか、(2)効率よく実行するための方法、の2点について方策を与えることに成功したと言える。今後、実際に種々の並行オブジェクトモデルの記述を行うことで、記述力や効率について検証を進めてゆく予定である。
|