研究概要 |
平成11年度は、並行論理型言語による広域分散プログラム構築方法論の基礎を理論と実践の両面から確立するために、次の研究を行なった。 1.データ参照数解析 宣言型プログラムの広域分散実行においては,集中実行の場合よりも記憶管理が格段に困難となる.そこで,プログラム実行中に生成される変数が指すデータが共有されない(つまり他変数から指されない)ための十分条件を求めるデータ参照数解析体系を整備した.この体系は,以前に体系化したモード体系と同様に広い意味での型体系であるが,通常の型解析が単一化問題として定式化されるのに対し,参照数解析は含意演算子をもつ論理式を扱わなければならない.そこで参照数解析系をKL1言語で実装することで実現可能性を確認するとともに,本体系を記憶管理の最適化に応用する上での問題点についても検討した. 2.形式的意味論の整備 広域分散プログラミングに宣言型言語を用いる大きな動機の一つは,プログラムの論理的側面と物理的側面の分離によってプログラムの理論的な扱いを容易にすることである.そこで,プログラミングおよび実装の理論的基盤となる表示的意味論を,ソースレベル最適化の正当化への応用を念頭において設計した.またこれを用いて,プロセスの同期ポイントの移動という最適化操作に対して意味論的な根拠を与えることを成功した. 3.KL1インタプリタの作成実験 PrologによるPrologのインタプリタ(メタインタプリタ)を簡潔に書く方法はよく知られており,数多くの重要な応用を持っている.それと同様に,GHCによるGHCのインタプリタも簡潔に書くことができる.しかし,このGHCインタプリタは,ガードに任意のゴールが書けるというGHCフルセット記述能力に本質的に依存しているので,Flat GHCに基づくKL1言語のインタプリタは同じように簡単には書けない.そこでKLIC処理系上でも動くKL1インタプリタの作り方について検討して,決定的(deterministic)な述語を扱うインタプリタを構築した.このインタプリタは,基底項(変数を含まないデータ構造)として表現された一種の「中間コード」のインタプリタである.基底項の中間コードを用いるとコード移送が容易に実現できるため,本インタプリタは広域分散処理のプロトタイピングに有効であると期待される.
|