平成9年度 委託研究ソフトウェアの中間報告 |
研究代表者: | 上田 和紀 教授 |
早稲田大学 理工学部情報学科 |
本テーマの主な研究開発項目としては
(a) KL1特有の言語機能の取扱いの実現
(b) 現klintの改訂
(c) 型解析機能の設計と実装
(d) 参照数解析機能の設計と実現
があるが、これまでに(a)(b)は順調に進み、現在は技術的に困難と考え られる(d)の検討を(c)に先行させて行なっている。
ガードおよびボディの組込述語の呼出し、特にベクタ操作など、構 造データへのランダムアクセス操作へのモードづけ機能を実現した。
参照数とは、データ構造中の特定の場所に出現するデータの読み手 が、単数に限られるか複数になりうるかに関する情報である。参照 数情報は、近似的には単一化によって容易に求めることができるが、 より詳細な解析を行なうためには、より複雑な制約充足が必要とな る。そこで、第一段階として、近似解を効率良く求める機能をまず 実装した。
現在公開されているklintのいくつかのバグを修正した。
本システムは、KL1でプログラムを書くすべてのプログラマにとって有 用な静的デバッグツールとなることを目指している。klint第1版によっ て、KL1プログラムの開発中に犯す誤りの大多数が静的に検出除去でき ることが経験されている。モード誤りが宣言なしで検出可能なのに対し、 型や参照数の誤りを検出するには、型や参照数に関する宣言が必要とな ると予想されるが、宣言さえ与えられれば、さらに多くの誤りが検出で きるようになる。
また、モード、型、参照数の解析を経たプログラムには、より容易に高 度な最適化を施すことができる。その性能向上以外の効果として、オブ ジェクトコードサイズの減少という効果も無視できない。現在のKLICで は、生成されたCコードのコンパイル速度が問題となっているが、コン パクトなCコードが生成できればKLICのコンパイル時間が短縮でき、静 的解析の手間をある程度吸収できると考えられる。
さらに、今後開発されてゆくであろう種々のプログラム解析技術やプロ グラミング環境は、実装方式非依存の基本解析情報の存在を前提とする ことによって、より高度な技術内容を単純に実現することができる。