並行論理型言語のプログラミングとプログラムの効率的実行にとって、モード解 析をはじめとする各種の静的解析技法は非常に基本的な情報を提供する。モード 解析とは、データの流れや通信プロトコルに関する性質を静的に解析するもので ある。その効率的な技法が研究代表者によって提案され、すでにklintシステム 第1版として実装されている。さらに、同技法に基づくill-modedなプログラム の静的デバッガkimaも開発し、公開してきた。抽象解釈に基づくモード解析の研 究は多いが、本モード体系の特徴は、単一化による制約充足アルゴリズムに基づ いており、単純であってしかも大規模プログラムへの適用が容易な点である。
しかし、これらの経験を通じて、プログラムの静的デバッグおよび処理系最適化 のためには、解析したモード情報に立脚して、さらにデータ型やデータ参照数を 解析することが重要であることもはっきりしてきた。これらの解析は、モード解 析と類似の技法で効率良く行なうことができるが、まだ実装されておらず、実際 の大規模KL1プログラムでうまく機能するかどうかはまだ実証されていない。
本研究の目的は、これまでに開発したモード解析系をさらに発展させつつ、さら に型と参照数(あるデータの読み手が単数か複数かに関する情報)の解析機能を 付加しようとするものである。
これらの解析情報は、並行論理プログラムの実行時の性質に関する、実装方式に 依存しない性質である。処理系最適化のためには、間接参照ポインタの段数をは じめとする実装方式依存の解析情報を抽象解釈によって得ることも有用であるが、 このような抽象解釈も、モード体系や型体系の存在を前提として、実装方式非依 存の解析情報を得てから行なうことによって、見通しを格段に良くすることがで きる。
モード、型、参照数に関する情報は、(a)プログラムの静的デバッグ、(b)プログ ラミングスタイルのチェック、(c)処理系最適化、(d)詳細なプログラム解析のた めの基礎情報の提供、(e)動的デバッグのための基礎情報の提供、などさまざま な応用がある。本研究開発ではまず、これらの3種の情報を提供する解析系の完 成を目指す。さらに、これらの情報の、処理系最適化や静的デバッガへの応用を 検討する。