parsing scheme prolog dcg

parsing - Analizando con los DCG en Scheme(sin Prolog)



(1)

Los DCG utilizan la unificación y el backtracking, por lo que no se puede evitar implementar el núcleo de Prolog. Es decir, puede representar cualquier programa Prolog puro como un DCG que analiza la lista vacía.

Puede hacerlo si solo le interesan algunos casos especiales de DCG, como los que no tienen variables (solo son útiles para reconocer, no para analizar).

Hay muchas implementaciones de Prolog-in-Scheme disponibles. Por ejemplo, Kanren, Schelog.

Aparentemente en "Paradigmas de la Programación de IA", Norvig implementa el compilador Prolog-to-Lisp en Lisp para usar Gramáticas de Clave Definitiva.

Pero, ¿hay una manera más simple y limpia? Tal vez algún uso inteligente de amb para evitar la implementación de un "Prolog" completo? ¿Cuál es la forma más fácil de tener un análisis basado en DCG en Scheme?