Lightweight compilation of (C)LP to JavaScript

Morales Caballero, José Francisco; Haemmerlé, R.; Carro Liñares, Manuel y Hermenegildo, Manuel V. (2012). Lightweight compilation of (C)LP to JavaScript. "Theory and Practice of Logic Programming", v. 12 (n. 4-5); pp. 755-733. ISSN 1471-0684.


Título: Lightweight compilation of (C)LP to JavaScript
  • Morales Caballero, José Francisco
  • Haemmerlé, R.
  • Carro Liñares, Manuel
  • Hermenegildo, Manuel V.
Tipo de Documento: Artículo
Título de Revista/Publicación: Theory and Practice of Logic Programming
Fecha: Julio 2012
Volumen: 12
Palabras Clave Informales: Prolog, Ciao, Logic programming system, Implementation of Prolog, Modules, JavaScript, Web, Sistemas de programación lógica, Implementación de Prolog, Modulos.
Escuela: Facultad de Informática (UPM) [antigua denominación]
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (1MB) | Vista Previa


We present and evaluate a compiler from Prolog (and extensions) to JavaScript which makes it possible to use (constraint) logic programming to develop the client side of web applications while being compliant with current industry standards. Targeting JavaScript makes (C)LP programs executable in virtually every modern computing device with no additional software requirements from the point of view of the user. In turn, the use of a very high-level language facilitates the development of high-quality, complex software. The compiler is a back end of the Ciao system and supports most of its features, including its module system and its rich language extension mechanism based on packages. We present an overview of the compilation process and a detailed description of the run-time system, including the support for modular compilation into separate JavaScript code. We demonstrate the maturity of the compiler by testing it with complex code such as a CLP(FD) library written in Prolog with attributed variables. Finally, we validate our proposal by measuring the performance of some LP and CLP(FD) benchmarks running on top of major JavaScript engines.

Más información

ID de Registro: 14834
Identificador DC:
Identificador OAI:
Identificador DOI: 10.1017/S1471068412000336
Depositado por: Biblioteca Facultad de Informatica
Depositado el: 12 Abr 2013 06:34
Ultima Modificación: 21 Abr 2016 14:40
  • GEO_UP4
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • InvestigaM
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM