SWI-Prolog es una implementación gratuita del lenguaje de programación Prolog , comúnmente utilizado para la enseñanza y las aplicaciones web semánticas . Tiene un amplio conjunto de características, bibliotecas para programación lógica de restricciones , subprocesos múltiples , pruebas unitarias , GUI , interfaz con Java , ODBC y otros, programación alfabetizada , un servidor web , SGML , RDF , RDFS , herramientas de desarrollo (incluido un IDE con un Depurador de GUIy perfilador de GUI ) y una amplia documentación.
Autor (es) original (es) | Jan Wielemaker |
---|---|
Desarrollador (es) | Jan Wielemaker, Anjo Anjewierden, etc. |
Versión inicial | 1987 |
Lanzamiento estable | 8.2.3 / 23 de noviembre de 2020 |
Versión de vista previa | 8.3.15 / 14 de diciembre de 2020 |
Escrito en | C , Prólogo |
Sistema operativo | Multiplataforma |
Disponible en | inglés |
Tipo | Programación lógica |
Licencia | BSD simplificado , LGPL anterior a la versión 7.3.33 |
Sitio web | swi-prolog |
SWI-Prolog se ejecuta en plataformas Unix , Windows , Macintosh y Linux .
SWI-Prolog ha estado en continuo desarrollo desde 1987. Su autor principal es Jan Wielemaker.
El nombre SWI se deriva de Sociaal-Wetenschappelijke Informatica ("Informática de las ciencias sociales"), el nombre anterior del grupo en la Universidad de Amsterdam , donde trabaja Wielemaker. El nombre de este grupo ha cambiado a HCS (Human-Computer Studies).
Marco web
SWI-Prolog se instala con un marco web basado en gramáticas de cláusulas definidas . [1]
Computación distribuída
Las consultas de SWI-Prolog pueden distribuirse en varios servidores y páginas web a través del sistema Pengines. [2]
XPCE
XPCE es un conjunto de herramientas de GUI orientado a objetos [3] independiente de la plataforma para SWI-Prolog, Lisp y otros lenguajes interactivos y de escritura dinámica . Aunque XPCE fue diseñado para ser independiente del idioma, ha ganado popularidad principalmente con Prolog. El desarrollo del conjunto de herramientas gráficas XPCE comenzó en 1987, junto con SWI-Prolog.
Admite botones , menús , controles deslizantes , pestañas y otros widgets básicos de GUI . XPCE está disponible para todas las plataformas compatibles con SWI-Prolog.
PceEmacs
PceEmacs es un editor incorporado de SWI-Prolog. PceEmacs es un clon de Emacs implementado en Prolog (y XPCE). Admite sangría adecuada , resaltado de sintaxis , verificación de sintaxis completa llamando al analizador SWI-Prolog , advirtiendo sobre variables singleton y encontrando definiciones de predicado basadas en la información de origen de la base de datos de Prolog.
Interfaz entre Java y Prolog (JPL)
JPL es una interfaz bidireccional entre Java y Prolog. [4] Requiere tanto SWI-Prolog como Java SDK . [5] Se instala como parte de SWI-Prolog.
Bibliotecas de programación lógica de restricciones (CLP)
La funcionalidad de programación de lógica de restricción llegó bastante tarde en la vida útil de SWI-Prolog, porque carecía del soporte básico. [6] Esto cambió a principios de 2004, cuando se agregaron variables atribuidas al lenguaje. La biblioteca CHR de Leuven fue entonces la primera biblioteca CLP que se transfirió a SWI-Prolog. Mencionamos la biblioteca INCLP (R) de SWI-Prolog (De Koninck et al. 2006), que proporciona restricciones no lineales sobre los reales y se implementó sobre CHR. Más tarde vino un puerto de la biblioteca CLP (QR) de Christian Holzbaur y un solucionador CLP (FD) de dominio finito. Finalmente, se agregó un solucionador booleano CLP (B). [7]
Ver también
- Prólogo
- Comparación de implementaciones de Prolog
Referencias
- ^ Wielemaker, enero; Huang, Zhisheng; van der Meij, Lourens (2008). "SWI-Prolog y la Web" (PDF) . Teoría y práctica de la programación lógica . 8 (3): 363–392. doi : 10.1017 / S1471068407003237 . S2CID 5404048 .
- ^ Wielemaker, Jan; Lager, Torbjorn (14 de mayo de 2014). "Pengines: programación de WebLogic simplificada". Teoría y práctica de la programación lógica . 14 (número especial 4–5): 539–552. arXiv : 1405.3953 . doi : 10.1017 / S1471068414000192 . S2CID 9949345 .
- ^ Programación en XPCE / Prolog .
- ^ Paul Singleton, Fred Dushin, Jan Wielemaker (febrero de 2004). "JPL: una interfaz bidireccional Prolog / Java" . SWI-Prolog .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Paul Singleton (febrero de 2004). "Instalación de JPL 3.x" . SWI-Prolog .
- ^ Jan Wielemaker, Tom Schrijvers, Markus Triska, Torbjörn Lager: SWI-Prolog. TPLP 12 (1–2): 67–96 (2012).
- ^ Markus Triska: El solucionador de restricciones booleanas de SWI-Prolog (Descripción del sistema). FLOPS 2016: 45–61.
enlaces externos
- Página web oficial