2009-11-26 9 views
5

多くのProlog-in-Scheme実装があります。例えば。 Kanren、SchelogスキームでDCGを解析する(プロローグなし)?

"Al Programmingのパラダイム"で明らかにNorvigはDefinite Clause Grammarsを使うためにLispでProlog-to-Lispコンパイラを実装しています。

もっと簡単な方法がありますか?おそらく、完全な "Prolog"を実装することを避けるためにambのいくつかの巧妙な使用ですか? SchemeでDCGベースの解析を行う最も簡単な方法は何ですか?

答えて

4

DCGは統一とバックトラッキングの両方を使用するため、Prologのコアを実装することは避けられません。つまり、純粋なPrologプログラムを空のリストを解析するDCGとして表すことができます。

変数を持たないDCGのような特殊なケースだけを気にしていると思います(認識するためだけに良い、解析しないなど)。

関連する問題