2012-05-17 14 views
6

Estoy usando Prolog para un proyecto académico. Quería saber si existe una forma de que Prolog interactúe con otros lenguajes de programación. Lo que quiero es una fácil redirección de entrada/salida de las preguntas y respuestas de Prolog.Integración de prólogo en otros entornos

Soy consciente de que Prolog puede llamar a las funciones C en algunas implementaciones de Prolog. es decir, SWI Prolog.

Lo que necesito es una simple redirección de entrada/salida de las preguntas de Prolog y la respuesta que el usuario proporciona.

Cualquier ayuda sería muy apreciada.

Respuesta

6

No veo ningún requisito verdadero para una interfaz de idioma extranjero para su tarea: use Prolog IO, es fácil de usar y eficiente. También puede comenzar simplemente con el soporte de protocol/1. Solo un consejo de KISS ...

Una interfaz de idioma extranjero es obligatorio cuando necesita algo implementado en ese otro idioma.

SWI-Prolog C++ interface es mucho más fácil de usar que la contraparte C, y permite tanto ampliar el idioma con una codificación interna realmente sencilla como integrar el motor en un "main" independiente. Y estos dos aspectos pueden ser coherentes con coherencia: supongamos que para un prototipo rápido implementamos los comandos incorporados, y usamos el nivel superior REPL, mientras que una aplicación completa puede iniciar el motor para ser utilizado como motor lógico, y enviar el (probadamente probado a través de REPL) consultas en segundo plano.

Luego está JPL para la interfaz SWI-Prolog y Java. Sé muy poco al respecto ... He visto algunos problemas reportados en la lista de correo de SWI-Prolog, debido (principalmente) a la complejidad de los diferentes modelos de subprocesos. Pero ciertamente está funcionando.

Se está produciendo un desarrollo interesante para poner a disposición el IDE en Eclipse (PDT, herramientas de desarrollo de Prolog). Creo que usan su propia interfaz Java. Actualmente podría ser una mejor opción que JPL.

Pero la interfaz más interesante que SWI-Prolog puede proponer hoy es la infraestructura del servidor HTTP. Si conoce el desarrollo de cliente WEB (HTML/JavaScript/XML/RDF) tiene muchas herramientas para dividir su diseño en MVC Client/Server. Prolog ejecuta un servicio web y un cliente enriquecido interactúa con el usuario final. Esta arquitectura hace que su aplicación esté lista para ejecutarse localmente también en la naturaleza.

Por favor, consulte la sección correspondiente How To ... No es una tarea simple, pero (en mi humilde opinión) una muy gratificante y de larga duración.

1

Eche un vistazo a Amzi Prolog + Logic Server - su propósito es hacer accesibles los programas prolog como componentes para otros lenguajes convencionales.

1

Depende de la distribución de Prolog que esté utilizando. Como se comentó anteriormente, SWI-Prolog proporciona diferentes interfaces para los usos más comunes, como C, C++, bases de datos, HTTP, XML y otros. La distribución Ciao también puede ser útil para lo que estás buscando. En este caso es C así que consulte este enlace Ciao Prolog and C