Improving the compilation of prolog to C using moded types and determinism information


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

2004

Resumo

We describe the current status of and provide performance results for a prototype compiler of Prolog to C, ciaocc. ciaocc is novel in that it is designed to accept different kinds of high-level information, typically obtained via an automatic analysis of the initial Prolog program and expressed in a standardized language of assertions. This information is used to optimize the resulting C code, which is then processed by an off-the-shelf C compiler. The basic translation process essentially mimics the unfolding of a bytecode emulator with respect to the particular bytecode corresponding to the Prolog program. This is facilitated by a flexible design of the instructions and their lower-level components. This approach allows reusing a sizable amount of the machinery of the bytecode emulator: predicates already written in C, data definitions, memory management routines and áreas, etc., as well as mixing emulated bytecode with native 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/14373/

Idioma(s)

eng

Publicador

Facultad de Informática (UPM)

Relação

http://oa.upm.es/14373/1/HERME_ARC_2004-4.pdf

http://link.springer.com/chapter/10.1007/978-3-540-24836-1_7

Direitos

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

info:eu-repo/semantics/openAccess

Fonte

Practical Aspects of Declarative Languages | 6th International Symposium, PADL 2004 | June 18-19, 2004 | Dallas, TX, USA

Palavras-Chave #Informática
Tipo

info:eu-repo/semantics/conferenceObject

Ponencia en Congreso o Jornada

PeerReviewed