stringtranslate.com

Prólogo de SICStus

SICStus Prolog es una implementación patentada y conforme con ISO del lenguaje de programación lógica Prolog . Ha sido desarrollado por el Instituto Sueco de Ciencias de la Computación desde 1985 y pone un fuerte enfoque en el rendimiento y la escalabilidad.

Historia

Alrededor de 1985, se fundó el Instituto Sueco de Ciencias de la Computación (SICS) y Mats Carlsson se unió a SICS para desarrollar un motor Prolog que sería una plataforma para la investigación sobre la paralelización o paralelización de Prolog. Este trabajo se realizó en el contexto del proyecto informal Gigalips, en el que participan David HD Warren de SRI International e investigadores de Manchester y el Laboratorio Nacional Argonne, así como esfuerzos paralelos . Esto resultó en Prologs bastante maduros o paralelos, como Aurora y MUSE. El objetivo de estos Prolog era lograr aceleraciones efectivas a través de la ejecución paralela de forma transparente para el programador y al mismo tiempo admitir Prolog completo. Esto llevó a SICS a distribuir SICStus Prolog, que rápidamente se hizo popular en el entorno académico. [1]

En 1986 existió una especificación preliminar de SICStus, inspirada en DEC-10 Prolog y Quintus . Además de la naturaleza de código abierto, poderosas razones de su popularidad fueron la compatibilidad con los estándares de facto DEC-10 y Quintus Prolog, muy buen rendimiento y código generado compacto. Posteriormente también se agregaron perfiles de ejecución y compilación de código nativo. A finales de los años 80, la Agencia Sueca de Financiación y varias empresas financiaron la industrialización de SICStus, que finalmente se convirtió en un producto comercial.

En 1995, SICStus se consideraba una referencia de facto para el rendimiento de las implementaciones de Prolog. [2]

En 1998, SICS adquirió Quintus Prolog y varias de sus funciones llegaron a versiones más nuevas de SICStus Prolog. También admite varios dominios de restricciones, incluido un potente solucionador de dominios finitos. SICS todavía mantiene activamente el código base de SICStus. [1]

Características

SICStus es una implementación de Prolog conforme a ISO basada en Warren Abstract Machine , que tiene un fuerte enfoque en el rendimiento y la estabilidad. [1] También proporciona soporte para aplicaciones basadas en web. SICStus admite varios dominios de restricciones, incorporando una implementación desarrollada externamente de la biblioteca de programación lógica de restricciones CLP(R) basada en variables atribuidas, [3] para la resolución de restricciones sobre números reales y racionales, y una implementación nativa de alto rendimiento de CLP(FD) para resolver restricciones sobre números enteros. [4] Presenta muchos elementos esenciales para los solucionadores de restricciones, como corrutinas, variables atribuidas y enteros ilimitados. La declaración de rutina de bloques es particularmente eficiente. También incorpora muchas de las características, funciones y módulos de biblioteca de Quintus Prolog. Desde la versión 4.3, SICStus también contiene un compilador JIT (justo a tiempo) para código nativo, pero actualmente no tiene soporte para subprocesos múltiples ni tablas. [1]

SICStus incluye una versión modificada de la biblioteca de pruebas unitarias plunit desarrollada originalmente para SWI-Prolog y un entorno de desarrollo integrado personalizado llamado SPIDER. [1]

Influencia

SICStus se utiliza en muchas aplicaciones comerciales y también ha servido como base para otros sistemas de programación lógica. [1] Como parte del proyecto Gigalips, SICStus fue la base para el desarrollo original de la implementación paralela de Prolog &-Prolog, que luego se convirtió en el sistema Ciao . [1] La implementación de referencia del lenguaje de programación lógica Gödel , que apareció por primera vez alrededor de 1992, se construyó sobre SICStus Prolog, empleando un estilo de sintaxis diferente. [1]

Ver también

Referencias

  1. ^ abcdefgh Körner, Philipp; Leuschel, Michael; Barbosa, João; Costa, Vítor Santos; Dahl, Verónica; Hermenegildo, Manuel V.; Morales, José F.; Wielemaker, enero; Díaz, Daniel; Abreu, Salvador; Ciatto, Giovanni (2022). "Cincuenta años de prólogo y más allá". Teoría y práctica de la programación lógica . 22 (6): 776–858. doi :10.1017/S1471068422000102. hdl : 10174/33387 . ISSN  1471-0684.
  2. ^ Codognet, Philippe; Diaz, Daniel (16 de junio de 1995), "wamcc: Compilación de prólogo en C", Programación lógica , The MIT Press, págs. 317–332, ISBN 978-0-262-29143-9, recuperado el 18 de diciembre de 2023
  3. ^ Holzbaur, cristiano (1995). "Revisión 1.3.2 del manual OEFAI clp (q, r)". Informes técnicos de ÖFAI en línea (95–09).
  4. ^ Gelessus, David; Leuschel, Michael (2022). "Hacer que ProB sea compatible con SWI-Prolog". Teoría y práctica de la programación lógica . 22 (5): 755–769. arXiv : 2205.04373 . doi : 10.1017/S1471068422000230 . ISSN  1471-0684.

Otras lecturas

Al 16 de diciembre de 2023, este artículo se deriva total o parcialmente de Fifty Years of Prolog and Beyond , escrito por Philipp Körner, Michael Leuschel, Joao Barbosa, Vitor Santos Costa, Veronica Dahl, Manuel V. Hermenegildo, Jose F. Morales. , Jan Wielemaker, Daniel Díaz, Salvador Abreu, Giovanni Ciatto. El titular de los derechos de autor ha otorgado la licencia del contenido de una manera que permite su reutilización según CC BY-SA 3.0 y GFDL . Se deben seguir todos los términos relevantes.