next up previous contents index
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の実行モデルと各ポート
\begin{figure}
\begin{center}
\epsfile{file=tracer-port.eps,width=10cm}
\end{center}\end{figure}

トレースモードでコンパイルされたプログラムは、ゴールが上記の4つのポート を通過する時に、実行を停止してユーザからの入力待ちとなったり、 そのゴールの表示を行ったりする。

以下で、実現方式について解説を行う。



Sekita Daigo
1998-05-18