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. In: "3rd Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2003)", December 2003, Mumbai, India.

Description

Title: Improving the compilation of prolog to C using type and determinism information: Preliminary results
Author/s:
Item Type: Presentation at Congress or Conference (Article)
Event Title: 3rd Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2003)
Event Dates: December 2003
Event Location: Mumbai, India
Title of Book: Colloquium on Implementation of Constraint and logic programming systems
Date: December 2003
Subjects:
Faculty: Facultad de Informática (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of HERME_REFWORKS_2003-1.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

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.

More information

Item ID: 14614
DC Identifier: https://oa.upm.es/14614/
OAI Identifier: oai:oa.upm.es:14614
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 12 Mar 2013 08:23
Last Modified: 21 Apr 2016 14:21
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM