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