このスタックは、選択点や節の変数の環境についての制御情報を保持しています。バックトラックが起きると、コントロ−ルスタックは減ります。
IF/Prologは、スタックが一杯になると自動的にガーベッジ・コレクションを行ない、スタックを増やします。スタックを特定のサイズに制限したい場合には、IF/Prologのスタックリミットパラメータを使用して下さい。
以下に示すプログラムでは、IF/Prologがインタプリタレベルでテールリカージョンの最適化を実行するので、無限ループが起こります。
スタックオーバーフローの原因が無限ループの場合には、IF/Prologのスタックリミットパラメータを注意して使用して下さい。
?- [user].
| kill :- kill. | end_of_file. file stdin consulted in 7 sec.
yes ?- kill. ^CE X C E P T I O N:interrupt:kill ?- _