next up previous
Next: 性能評価 Up: KL1のスレッド実行の高速化 ---スタック変数の利用による実行速度向上--- Previous: Goal Stacking

Environment Stacking

Environment Stacking(ES)では、WAMと同様に第2ゴール以降で参照される変数と戻 り番地からなる 環境をスタックに積む。 すなわち、n個のゴールを持つクローズCでは、 i ( < n ) 番目のゴール <が完了 すると C に制御が戻り、i + 1 番目のゴール g i + 1 の引数を環境を参照しながら 引数レジスタに設定して、g i + 1 を呼び出す。

たとえばリスト1の例では、第1ゴールを呼び出す前にスタックに図3の ような環境が生成される。 この環境中のR0L2は第3ゴールでは参照されないので、enviroment trimingによって第2ゴールの呼び出しの際に除去される。 KL1にはdeep backtrackがないため、 WAMとは異なりこの除去操作を決定的に実行でき、また第2ゴールで初めて出現する R1を除去操作の後に割付けることができる。 したがってWAMよりもスタックの伸長を抑制することができる。



next up previous
Next: 性能評価 Up: KL1のスレッド実行の高速化 ---スタック変数の利用による実行速度向上--- Previous: Goal Stacking



www-admin@icot.or.jp