平成9年度 委託研究ソフトウェアの中間報告

(11) 要求駆動スケジューリングによるKL1実装方式の研究

  
研究代表者: 近山 隆 教授
東京大学大学院 工学系研究科 電子工学専攻


研究テーマ、研究代表者:
(1)研究テーマ
要求駆動スケジューリングによるKL1実装方式の研究

(2)研究代表者(氏名、所属、役職)
近山 隆、 東京大学大学院 工学系研究科電子工学専攻 教授

記述項目:
(1)研究進捗状況

KL1 を要求駆動で効率良く実行するための研究を, 以下の両面から進めている.

(2)現在までの主な成果

KL1 に @demand(X) というプラグマを追加し, 変数 X の値が必要になったときに, そのゴールを実行する方式を提案し, KLICに組み込んだ. 簡単な生成-消費プロセスの生成ゴールの@lower_priority を @demand(X) に置き換えたプログラムでは,オーバーヘッドによる速度低下は 5 % 程度であり, 比較的単純な実装方式でも, 生成/消費のコストの大きい通常のプログラムでは, 要求駆動によるオーバヘッドは問題にならない程度とできることが分かった.

また, 述語の引数単位 (構造体の内部を見ない) モード解析・型解析方式を検討し, 試作した. 実行速度は klint の 10 倍程度であるが, 引数単位のモードのみを調べているため単純な比較はできない.

プラグマの拡張により, ユーザは特定のゴールを要求駆動で実行できるようになったが,コンパイル時に自動的に要求駆動にした方が良いゴールとしない方が良いゴールを判定するために, 変数の値がどこで必要になるのか評価する3つの方式を提案した.

(3)今後の研究概要

(4)今年度目標成果ソフトウェアイメージ

KL1 プログラムを要求駆動スケジューリングで実行するシステムを作成する.システムは KLIC コンパイラの間に解析ルーチンを埋め込んだ構成になる.

[ KLIC (マクロ展開などの前処理) ] → (中間表現)
→ モード解析
→ 依存解析
→ 中間表現上でのプラグマ付加
→ [ KLIC (後処理, C code・実行ファイル生成) ]

このように, 本研究で作成される解析系は完全に KLIC システムに組み込まれるので, ユーザは従来の KLIC との違いを意識することなく, プログラムを要求駆動スケジューリングで実行させることができる. また, プラグマによって直接, 要求駆動するゴールを指定することもできる. 本システムに組み込まれるモード・型解析ルーチンは, 独立したプログラムチェッカとしても利用できる.


www-admin@icot.or.jp