2009-11-26 2 views
5

Многие реализации Prolog-in-Scheme находятся там. Например. Канрен, Schelog.Разбор с DCG в схеме (без пролога)?

Очевидно, что в «Парадигмах программирования ИИ» Норвиг реализует компилятор Prolog-to-Lisp в Lisp, чтобы использовать грамотные галочки определенного типа.

Но есть ли более простой способ очистки? Может быть, какое-то умное использование амбара, чтобы избежать реализации полного «Пролога»? Что такое самый простой способ иметь синтаксический анализ на основе DCG в схеме?

ответ

4

DCGs используют как унификацию, так и обратное отслеживание, поэтому не следует избегать реализации ядра Prolog. То есть вы можете представлять любую чистую программу Prolog в качестве DCG, анализируя пустой список.

Вы можете сделать это, если вам небезразличен какой-нибудь особый случай DCG, например, без переменных (полезно только для распознавания, а не для разбора).

Смежные вопросы