next up previous
Next: 研究の成果 Up: 「KL1プログラム開発支 援ツール」に関する成果概要 Previous: 研究の背景と目的

研究の内容

 

本研究では、過去に作成された実験的モード解析系を発展させることによって、 KL1のための静的デバッグ環境およびスタイルチェッカを構築する。開発項目 としては、下記のような機能を順次検討し、実現を図るが、この中で、静的デ バッグツールの実用化のために最も本質的に重要なのは、(e)「モードづけで きないプログラムの解析」方式の開拓である。本年度は、これを最優先に検討 を進めた。またそれと並行して、理論的にも、モード体系の実用化の上でも重 要な意味をもつモード多相(mode polymorphism)の導入方式検討も進めた。

(a)
KL1特有の言語機能の取扱いの検討と実現

(b)
分割解析および解析結果表示のための、グラフ入出力機能の実現
本モード解析系は、プログラムの分割解析が容易であることが大きな特徴 であるが、分割解析のためには、プログラムモジュールごとの解析結果を外部 に保存する機能と、保存した結果を読み出す機能が必要である。また、解析の 中間結果や最終結果をプログラマに提示するために、よりユーザフレンドリな 入出力機能も設計、実現する必要がある。解析結果のモードグラフの構造は相 当複雑になりうるので、その入出力方式は自明ではない。

(c)
モード宣言機能の検討、実現
本モード解析系のもう一つの特徴は、モード推論、モード宣言、モード検 査が同一の枠組で実現できることである。また、モジュールインタフェースと なる述語のモードが宣言できることは、表明(assertion)機能としても有用だ と考えられる。そこで、モード宣言のための言語機能を検討し、実現する。

(d)
性能改善と並列実行の検討
現在の基本アルゴリズムの実装は、実際に扱うグラフ構造やモード制約の 統計的性質に応じて最適化してはいない。そこで、各種のプログラムの解析を 通じて性能改善を図る。特に、データ表現の再検討や、不要な逐次性の除去を 行なう。また、本解析は、(成功する限り)それほど計算時間のかかるものでは ないが、性能改善の一環として、並列実行の可能性について検討を行なう。

(e)
モードづけできないプログラムの解析
既存の多くのプログラムは、大体においてwell-modedに書かれている半面、 部分的にill-modedな部分を有すると考えられる。この場合、プログラム全体 がill-modedであるという解析結果を提示しても、プログラマにとって有用で ない。そこで、ill-modedなプログラムに対して、ill-modedである理由の「良 い」説明を見つけて提示する機能と、そのための基本アルゴリズムを設計、実 現する。

(f)
動的デバッグ環境の検討
モード体系の下では、静的デバッガだけでなく動的デバッガにおいても、 今までよりも高度なデバッグ機能を提供できる可能性がある。そこで、静的デ バッグ環境の開発が進展した場合は、モード体系の下での動的デバッグ環境の 検討を開始する。



www-admin@icot.or.jp