PrologでまったりPart 2
■ このスレッドは過去ログ倉庫に格納されています
0502デフォルトの名無しさん
2006/05/17(水) 17:36:17「このシステムのインタープリタは実行時のローカルスタックの使用量を減らす
ため、次のような最適化をおこなっています。
1) Successful pop
あるゴールの実行にdeteministicに成功したとき(そのゴールの実行の
しかたには別の選択肢がないという意味です)、そのゴールの実行に要した
部分をローカルスタックから取り除きます。
2) Last call optimization
節(Aとします)の本体のゴールを実行していって最後にとりかかるとき、
その節のゴールの実行がすべてdeterministicに終わっていたとします。
そのような場合にその最後のゴールと単一化をできるかどうか調べるべき
節が一つしかないときには、節Aに対応する部分をローカルスタックから
取り除きます。また、カット・オペレータ"!"が使用されたとき、そのカットを
含む節(Bとする)を呼びだしたゴールがそのゴールを含む節(Cとする)の最後の
ゴールであり、Cの他のゴールがすべてdeterministicに終わっている場合には、
Cに対応する部分がローカルスタックから取り除かれます。」
商品として売り出された製品のマニュアルであり、今の若い世代の
目に触れることのない貴重な資料だと思い、ここに掲載しました。
■ このスレッドは過去ログ倉庫に格納されています