本研究では実行時システムの改良・拡張に主眼を置いて研究を開始した。すな わちKLIC のコンパイラによる KL1 から C への変換には原則として手をつけ ず、実行方式の基本は変えずに、実行時にリンクされるライブラリの改良のみ を行なう。この方式をとることにより、既存の KL1 プログラムとの整合を保っ たまま改良・拡張を行なうことができる。
こうした研究を進めていく中で、実行時システムの改良・拡張だけでは大幅な 性能向上・機能拡張が困難な諸点も明らかになってきた。こうした点の改良に 向けて、より基本的な部分から全体を見直す立場に立っての研究も必要である と考え、並行して行なった。
より具体的には、以下の各側面での研究を並行して行なった。
ICOT Free Software として公開・配布されている KLIC システムをベースに、 諸機能に改良・拡張を加え、並列論理型言語のためのプログラミングシステム として完成度の高いものとするための研究を行なっている。具体的には、より 高い性能を実現するための改良と、使い勝手を向上するための改良の両面を目 指した研究を行なっている。今年度はより具体的には以下の項目などについて の研究を行なった。
処理性能の向上のためには、静的に解析できる情報はできる限り解析し、実行 時システムに渡すことが望ましい。そこで、KL1 を対象に抽象実行による静的 解析系を試作した。また、その結果を用いてどの程度の最適化が可能かの予備 的評価を行なった。
KL1 プログラムのデバッグには、プログラムの実行状況を知るために内部に保 持するデータを見やすい形で適切な量だけ出力することが望ましい。従来の KLIC の出力系の持つネスティングの最大深さ、引数やリスト構造の最大長さ 指定では不十分である。そこで、どの程度の省略を行なうかを出力結果の最大 行数・カラム数で指定することができるような出力系を試作した。
KLIC が広い範囲の応用への適用に適していることを明らかにするために、い くつかの応用システムを KLIC を用いて構築する実験を行なった。特に重点を 置いて行なったのは、並列定理証明系を用いた帰納論理プログラミングの構築 実験である。
帰納論理プログラミング (ILP) のための操作を公理からの定理の証明手順と して形式化し、並列定理証明系 MGTP を用いて ILP を実現する手法を提案し た。また、KLIC 上の MGTP に手を加え、連言照合などの並列処理が可能なよ うに改良したシステムを作って、KLIC の共有メモリ並列処理系の上で ILP の 問題を MGTP の問題に変換したものを動作させる実験を行なった。