Towards description and optimization of abstract machines in an extension of prolog


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

2007

Resumo

Competitive abstract machines for Prolog are usually large, intricate, and incorpórate sophisticated optimizations. This makes them difñcult to code, optimize, and, especially, maintain and extend. This is partly due to the fact that efñciency considerations make it necessary to use low-level languages in their implementation. Writing the abstract machine (and ancillary code) in a higher-level language can help harness this inherent complexity. In this paper we show how the semantics of basic components of an efficient virtual machine for Prolog can be described using (a variant of) Prolog which retains much of its semantics. These descriptions are then compiled to C and assembled to build a complete bytecode emulator. Thanks to the high level of the language used and its closeness to Prolog the abstract machine descriptions can be manipulated using standard Prolog compilation and optimization techniques with relative ease. We also show how, by applying program transformations selectively, we obtain abstract machine implementations whose performance can match and even exceed that of highly-tuned, hand-crafted emulators.

Formato

application/pdf

Identificador

http://oa.upm.es/14323/

Idioma(s)

eng

Publicador

Facultad de Informática (UPM)

Relação

http://oa.upm.es/14323/1/HERME_ARC_2007-4.pdf

http://link.springer.com/chapter/10.1007%2F978-3-540-71410-1_7?LI=true

Direitos

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

info:eu-repo/semantics/openAccess

Fonte

Logic-Based Program Synthesis and Transformation | 16th International Symposium, LOPSTR 2006 | July 12-14, 2006 | Venice, Italy

Palavras-Chave #Informática
Tipo

info:eu-repo/semantics/conferenceObject

Ponencia en Congreso o Jornada

PeerReviewed