各研究課題について、今年度は以下のような成果を得ている。
コンパイル時のプログラム最適化に必要な情報を抽出する方法のひとつとして、 抽象実行に基づく静的解析系のプロトタイプを作成した。静的解析系の全体像 は図-1に示す通りである。KL1 ソースプログ ラムをトランスレータ部で中間言語形式に変換し、後段のインタプリタ部が抽 象実行を行なうことによってプログラムに関する情報を抽出する。
試作したシステムは概略図、図-2に示す 束構造を持つ抽象ドメインを用い、述語引数の型情報を抽出するものである。 繁雑になるので図には示さなかったが、図中に cons とある部分は、要素と終 端に関する型情報をもつ部分束構造になっている。
今年度はこのうちのインタプリタ部を試作し、手作業による中間言語形式への 変換と併せて実験を行ない、所期のプログラム情報を抽出できることを確認し た。
まず、KLIC の項形式の出力について、項の構造にしたがって行の長さに応じ て適宜改行を行ない、段落づけ (indentation) を行なう清書系 (pretty printer) を作成した。ついで、この清書系に与えられた行数、カラム数の指 定の中で出力できるように、部分項の出力を省略する機構を付け加えた。
この省略機構は出力する項のネスティングの最大深さ、リストや引数などの最 大長さの両者を制御することによって出力のためのスペースを調整するもので ある。
ILP のための操作を簡潔な論理式で形式化した。これによって ILP の推論機 構を簡潔な論理式で形式化し、統一的に捉えることが容易になり、変更・拡張 などを行なう見通しも良くすることができた。
一方、この形式化によって並列定理証明系 MGTP を用いて ILP を実現するこ とが可能になった。この手法に基づく並列処理が実際に速度向上をもたらすか 否かを知るために、KLIC 上の MGTP に手を加え、連言照合などの並列処理が 可能なように改良したシステムを作成した。これを KLIC の共有メモリ並列処 理系の上で動作させ、ILP の問題を MGTP の問題に変換したものの速度を計測 したところ、Sparc Enterprise E/4000 (Ultra -Sparc 167MHz; 10 CPU; 主記 憶 1,280 MB) の上で、4 倍程度の並列速度向上がみられることがわかった (図-3)。
ソフトウェアとしての成果
昨年度からの継続した研究により、以下のものがソフトウェアとしての成果と して得られている。
残された課題
評価
上述のように全体として実装・評価に不十分な点が少なくない。その理由とし て、2年間に渡るプロジェクトであったにも関わらず、その期間を通して研究 に携わることができたのがリーダ1名だけであったことが大きい。このため、 研究担当者が研究の主旨やシステムの理解に手間取り、研究本体に十分な時間 をかけられなかったうらみがある。
しかしながら、KLICシステムについて、さまざまな面からの改良・拡張の試み を行なうことができ、今後の研究の道筋をつけることができた成果は大きいも のと考える。