2009-11-26 14 views
5

Wiele implementacji Prolog-in-Scheme jest dostępnych. Na przykład. Kanren, Schelog.Parsowanie z DCG na schemacie (bez Prolog)?

Podobno w "Paradygmatach programowania AI" Norvig implementuje kompilator Prolog-to-Lisp w Lisp, aby używać gramatyk o definicjach klauzul.

Ale czy istnieje prostszy sposób czyszczenia? Może jakiś sprytny użytek z amb, aby uniknąć wdrożenia pełnego "Prologu"? Jaki jest najprostszy sposób analizy składniowej na podstawie DCG w systemie?

Odpowiedz

4

DCG używają zarówno unifikacji, jak i backtrackingu, więc nie można uniknąć implementacji rdzenia Prolog. Oznacza to, że możesz reprezentować dowolny czysty program Prolog jako DCG analizujący pustą listę.

Możesz to zrobić, jeśli interesuje Cię tylko szczególny przypadek DCG, np. Bez zmiennych (dobre tylko do rozpoznawania, nie parsowania).