平成9年度 委託研究ソフトウェアの提案 |
研究代表者: | 上田 和紀 教授 |
早稲田大学 理工学部情報学科 |
しかし、これらの経験を通じて、プログラムの静的デバッグおよび処理 系最適化のためには、解析したモード情報に立脚して、さらにデータ型 やデータ参照数を解析することが重要であることもはっきりしてきた。 これらの解析は、モード解析と類似の技法で効率良く行なうことができ るが、まだ実装されておらず、実際の大規模KL1プログラムでうまく機 能するかどうかはまだ実証されていない。
これらの解析情報は、並行論理プログラムの実行時の性質に関する、実 装方式に依存しない性質である。処理系最適化のためには、間接参照ポ インタの段数をはじめとする実装方式依存の解析情報を抽象解釈によっ て得ることも有用であるが、このような抽象解釈も、モード体系や型体 系の存在を前提として、実装方式非依存の解析情報を得てから行なうこ とによって、見通しを格段に良くすることができる。
モード、型、参照数に関する情報は、(a)プログラムの静的デバッグ、 (b)プログラミングスタイルのチェック、(c)処理系最適化、(d)詳細な プログラム解析のための基礎情報の提供、(e)動的デバッグのための基 p礎情報の提供、などさまざまな応用がある。本研究開発ではまず、これ らの3種の情報を提供する解析系の完成を目指す。さらに、これらの情 報の、処理系最適化や静的デバッガへの応用を検討する。
型解析のためには、「どのような関数記号の集合が型を構成するか」 に関する情報が必要である。整数型(=整数の集合)などの一部の 型は、システム既定の型としてあらかじめ用意しておくことが可能 だが、一般には、プログラマが型を定義する機能も必要である。そ こで、型定義機能をあわせて設計、実現する。
そこで、まずは近似解を効率良く求める機能を実装し、その後、正 確な解を求める方法の研究開発を行なう。
氏 名 | 所 属 | |
研究代表者 | 上田和紀 | 早稲田大学理工学部情報学科 |
研究協力者 | 網代育大 | 早稲田大学大学院情報科学専攻 |
研究協力者 | 倉持聡 | 早稲田大学大学院情報科学専攻 |
これらの解析に成功したプログラムは、プロトコルの不整合によるユニ フィケーションの失敗が実行時に起きないことが保証される。さらに、 データの型、プロトコル、参照数などが、プログラマの意図通りになっ ているかどうかを、解析情報から容易に読み取ることもできる。これま でのklintシステム等の開発においても、単純な誤りの大多数が、klint によって静的に検出できることが経験されている。
これらの解析情報はコンパイラの最適化にも役立つ。たとえば、読み手 が単一であることを保証されたデータを読み終えた場合は、ガーベジコ レクタに任せることなく、読み手自身がそのデータの表現に使われてい た資源を返却したり他目的に再利用したりすることができる。この例を はじめとして、静的解析情報は、並行論理プログラミングの分散処理や 実時間処理への応用分野拡大に基本的な役割を演じると期待される。な ぜなら、分散処理や実時間処理では、計算資源に関する解析情報の重要 性が、逐次計算機上での記号処理に比べて格段に大きいからである。
(a) モード、型、参照数に関する制約生成系、および
(b) それらの制約充足問題を解く3種類の制約解析系
からなる。これらはある程度互いに独立しているが、参照数解析がモー ド解析情報を参照するなど、依存性も有している。klint第1版では、 制約生成系と制約解析系とを独立のKL1プログラムとして作成していた が、第2版では両者を融合することによって効率改善を図ることも計画 している。
上記の各機能は、klint第1版の機能を拡張、改良するものであり、よ り高度なバグ探索を行なうkimaシステム(公開済)の改良にも利用する ことができる。たとえば、バグの原因箇所の絞り込みや、バグの修正案 の自動提示のためには、型情報とモード情報の両方を併用すると、片方 のみを用いるよりもはるかに効果的である。
また、静的解析によって得られる情報は高度な最適化に非常に役立つの で、本システムの出力する情報を取り込むことのできるKLIC処理系の構 築も、近い将来の課題として考えられる。
また、モード、型、参照数の解析を経たプログラムには、より容易に高 度な最適化を施すことができる。その性能向上以外の効果として、オブ ジェクトコードサイズの減少という効果も無視できない。現在のKLICで は、生成されたCコードのコンパイル速度が問題となっているが、コン パクトなCコードが生成できればKLICのコンパイル時間が短縮でき、静 的解析の手間をある程度吸収できると考えられる。
さらに、今後開発されてゆくであろう種々のプログラム解析技術やプロ グラミング環境は、実装方式非依存の基本解析情報の存在を前提とする ことによって、より高度な技術内容を単純に実現することができる。
www-admin@icot.or.jp