並列論理型言語KL1の高速実行を妨げる要因として、 実行時の並行性制御によるオーバーヘッドが挙げられる。 そこで我々は、静的に実行順序を決定されたゴール系 列をスレッドとし、このスレッドを並行実行単位とすることでオーバーヘッドの 軽減を試み、無駄な実行中断/再開の削減による性能向上を達成した [1,2]。 しかし一つのスレッドの実行性能に関しては、ゴールの実行管理にスタックを用いて 高速化を図ったものの、その効果は小さかった。
我々はこの理由が変数の割付方法にあると考え、 論理変数をスタックに割り当てる方法(Goal Stacking、 Environment Stacking)を採用することによって、KL1の高速実行を図る。