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


Autoria(s): Morales Caballero, José Francisco; Carro Liñares, Manuel; Hermenegildo, Manuel V.
Data(s)

01/12/2003

Resumo

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.

Formato

application/pdf

Identificador

http://oa.upm.es/14614/

Idioma(s)

eng

Publicador

Facultad de Informática (UPM)

Relação

http://oa.upm.es/14614/1/HERME_REFWORKS_2003-1.pdf

Direitos

http://creativecommons.org/licenses/by-nc-nd/3.0/es/

info:eu-repo/semantics/openAccess

Fonte

Colloquium on Implementation of Constraint and logic programming systems | 3rd Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2003) | December 2003 | Mumbai, India

Palavras-Chave #Informática
Tipo

info:eu-repo/semantics/conferenceObject

Ponencia en Congreso o Jornada

PeerReviewed