私は、SICPとThe Art of Prolog(AoP)を含むさまざまな指示に基づいて、おもちゃ論理プログラミング言語を書こうとしています。私はちょうど統一アルゴリズム(AOPによると、「論理プログラミングの計算モデルの心臓部」)の私の最初のスケッチを動作するように始めています、とAOPは正確には「論理変数」とは何か、そしてその言語機能を実装するための一般的なアプローチは何ですか?
がために統一アルゴリズムを実装する場合と指摘します特定の論理プログラミング言語では、スタック上の方程式とユニファイアの両方における明示的な置換が回避される。代わりに、論理変数および他の用語は、異なる値を有するメモリセルによって表され、変数バインディングは、変数がバインドされる用語の表現を含むセルへの参照を論理変数を表すメモリセルに割り当てることによって実現される。 (第1版では、P。71)これを読ん
は、私が唯一の仕組み論理変数のラフで実用的な把握を持っていることを実感しましたが、私は本当に彼らが実装されているかを理解していません。宣言的プログラミングのパラダイムの他の領域で機能する不変変数と論理変数を区別する、正確で正式な特性は何であるかもわかりません。私はすべての説明と教示の参考に感謝します。
多分、cs.stackexchange.comがより良い場所です。 –
@tobyodaviesが正しければ、SATソルバーはPrologのようなプログラミング言語の中心ではありません。ロジックプログラミングにはさまざまなスタイルがありますが、それらはおそらくあなたが後になったものではありません。 –
実装言語はどのようになりますか? – repeat