Articulo de referencia

Prólogo de SICStus

SICStus Prolog es una implementación propietaria , conforme a la norma ISO, del lenguaje de programación lógica Prolog . Desarrollada por el Instituto Sueco de Ciencias de la Co...

SICStus Prolog es una implementación propietaria , conforme a la norma ISO, del lenguaje de programación lógica Prolog . Desarrollada por el Instituto Sueco de Ciencias de la Computación desde 1985, se centra especialmente 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 él para desarrollar un motor Prolog que serviría como plataforma para la investigación en paralelización OR de Prolog. Este trabajo se realizó en el contexto del proyecto informal Gigalips, en el que participaron David HD Warren de SRI International e investigadores de Manchester y del Laboratorio Nacional Argonne, así como iniciativas de paralelización OR . Esto dio como resultado versiones de Prolog con paralelización OR bastante maduras, como Aurora y MUSE. El objetivo de estas versiones de Prolog era lograr aceleraciones efectivas mediante la ejecución en paralelo OR de forma transparente para el programador, a la vez que se mantenía la compatibilidad total con Prolog. Esto llevó a que SICS distribuyera SICStus Prolog, que rápidamente se popularizó en el ámbito académico. [ 1 ]

En 1986 existía una especificación preliminar de SICStus, inspirada en DEC-10 Prolog y Quintus . Además de su naturaleza de código abierto, su popularidad se debió principalmente a su compatibilidad con los estándares de facto DEC-10 y Quintus Prolog, su excelente rendimiento y la compacidad del código generado. Posteriormente se añadieron la creación de perfiles de ejecución y la 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 era considerado una referencia de facto del rendimiento de las implementaciones de Prolog. [ 2 ]

En 1998, SICS adquirió Quintus Prolog y varias de sus características se incorporaron a versiones más recientes de SICStus Prolog. También admite varios dominios de restricciones, incluyendo un potente solucionador de dominio finito. SICS sigue manteniendo activamente el código fuente de SICStus. [ 1 ]

Características

SICStus es una implementación de Prolog conforme a la norma ISO basada en la Warren Abstract Machine , que se centra en el rendimiento y la estabilidad. [ 1 ] También ofrece soporte para aplicaciones 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 con atributos, [ 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 la resolución de restricciones sobre enteros. [ 4 ] Incluye muchos elementos esenciales para los solucionadores de restricciones, como corrutinas, variables con atributos y enteros sin límites. La declaración de corrutinas por bloques es particularmente eficiente. También incorpora muchas de las características, funcionalidades y módulos de biblioteca de Quintus Prolog. Desde la versión 4.3, SICStus también incluye un compilador JIT (just-in-time) para código nativo, pero actualmente no admite multihilo ni tabulación. [ 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 numerosas aplicaciones comerciales y también ha servido de 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 posteriormente 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 ]

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 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 Prolog a C" , Programación lógica , The MIT Press, págs. 317–332 , ISBN  978-0-262-29143-9, consultado el 18 de diciembre de 2023
  3. Holzbaur, Christian (1995). "OEFAI clp(q,r) Manual Revisión 1.3.2," . Informes técnicos de ÖFAI en línea ( 95–09 ). Archivado del original el 20 de mayo de 2001. Recuperado el 18 de diciembre de 2023 .
  4. Geleßus, David; Leuschel, Michael (2022). "Haciendo ProB compatible con SWI-Prolog" . Theory and Practice of Logic Programming . 22 (5): 755– 769. arXiv : 2205.04373 . doi : 10.1017/S1471068422000230 . ISSN 1471-0684 . 

Lecturas adicionales

  • Carlsson, Mats; Mildner, Per (2012). "SICStus Prolog: los primeros 25 años" . Theory and Practice of Logic Programming . 12 ( 1–2 ): 35–66 . arXiv : 1011.5640 . doi : 10.1017/S1471068411000482 . ISSN 1475-3081 . 

A fecha de 16 de diciembre de 2023, este artículo se basa total o parcialmente en « Fifty Years of Prolog and Beyond» , obra de Philipp Körner, Michael Leuschel, Joao Barbosa, Vitor Santos Costa, Veronica Dahl, Manuel V. Hermenegildo, Jose F. Morales, Jan Wielemaker, Daniel Diaz, Salvador Abreu y Giovanni Ciatto. El titular de los derechos de autor ha licenciado el contenido de forma que permite su reutilización bajo las licencias CC BY-SA 3.0 y GFDL . Deben respetarse todos los términos pertinentes.