Improving the compilation of prolog to C using type and determinism information: Preliminary results

Morales Caballero, José Francisco, Carro Liñares, Manuel ORCID: https://orcid.org/0000-0001-5199-3135 and Hermenegildo, Manuel V. ORCID: https://orcid.org/0000-0002-7583-323X (2003). Improving the compilation of prolog to C using type and determinism information: Preliminary results. En: "3rd Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2003)", December 2003, Mumbai, India.

Descripción

Título: Improving the compilation of prolog to C using type and determinism information: Preliminary results
Autor/es:
Tipo de Documento: Ponencia en Congreso o Jornada (Artículo)
Título del Evento: 3rd Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2003)
Fechas del Evento: December 2003
Lugar del Evento: Mumbai, India
Título del Libro: Colloquium on Implementation of Constraint and logic programming systems
Fecha: Diciembre 2003
Materias:
Escuela: Facultad de Informática (UPM) [antigua denominación]
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[thumbnail of HERME_REFWORKS_2003-1.pdf]
Vista Previa
PDF (Portable Document Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (1MB) | Vista Previa

Resumen

We describe the current status of and provide preliminary performance results for a compiler of Prolog to C. The compiler is novel in that it is designed to accept different kinds of high-level information (typically obtained via an analysis of the initial Prolog program and expressed in a standardized language of assertions) and use this information to optimize the resulting C code, which is then further processed by an off-the-shelf C compiler. The basic translation process used essentially mimics an unfolding of a C-coded bytecode emúlator with respect to the particular bytecode corresponding to the Prolog program. Optimizations are then applied to this unfolded program. This is facilitated by a more flexible design of the bytecode instructions and their lower-level components. This approach allows reusing a sizable amount of the machinery of the bytecode emulator: ancillary pieces of C code, data definitions, memory management routines and áreas, etc., as well as mixing bytecode emulated code with natively compiled code in a relatively straightforward way We report on the performance of programs compiled by the current versión of the system, both with and without analysis information.

Más información

ID de Registro: 14614
Identificador DC: https://oa.upm.es/14614/
Identificador OAI: oai:oa.upm.es:14614
Depositado por: Biblioteca Facultad de Informatica
Depositado el: 12 Mar 2013 08:23
Ultima Modificación: 21 Abr 2016 14:21
  • Logo InvestigaM (UPM)
  • Logo Sherpa/Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Logo Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Logo del Portal Científico UPM
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo de Recolecta
  • Logo de OpenCourseWare UPM