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