Next: リンク時のトレース指定
Up: トレーサ
Previous: 機能概要
KLICでは、以下の操作の繰り返しによりリダクションを進める。
- 1.
- ゴールプールからゴールを1つ取ってくる。(ゴール呼びだし操作)
- 2.
- ゴール引数の値を、KL1節のガード部の規則にしたがってチェックし、チェックに適合した節を1つ選んでそのボディ部を実行し、生成されたサブゴールをゴールプールに入れる。(リダクション操作)
- 3.
- 2 で呼び出されたゴールの引数が変数等になっており、チェックが即時にできない時、ゴールをサスペンションプールに入れる。(サスペンション操作)
- 4.
- 2 で呼び出されたゴールが失敗した場合、プログラムを呼び出したプロセスに
制御が戻される。逐次版のKLICでは、プログラムの実行を終了しshellに戻る。
(失敗操作)
トレーサでは、各操作をモニターする部分を「ポート」と呼ぶ。
ゴール呼びだし操作、リダクション操作、中断操作、失敗操作
についてのポートはそれぞれ、
「CALLポート」、「REDUポート」、「SUSPポート」、「FAILポート」と呼ばれる。
図8.1に、KL1の実行モデルと各ポートの図を示す。
Figure 8.1:
KL1の実行モデルと各ポート
 |
トレースモードでコンパイルされたプログラムは、ゴールが上記の4つのポート
を通過する時に、実行を停止してユーザからの入力待ちとなったり、
そのゴールの表示を行ったりする。
以下で、実現方式について解説を行う。
Sekita Daigo
1998-05-18