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