Description and optimization of abstract machines in a dialect of Prolog

Morales Caballero, José Francisco and Carro Liñares, Manuel and Hermenegildo, Manuel V. (2015). Description and optimization of abstract machines in a dialect of Prolog. "Theory and Practice of Logic Programming", v. 16 (n. 1); pp. 1-58. ISSN 1475-3081. https://doi.org/10.1017/S1471068414000672.

Description

Title: Description and optimization of abstract machines in a dialect of Prolog
Author/s:
  • Morales Caballero, José Francisco
  • Carro Liñares, Manuel
  • Hermenegildo, Manuel V.
Item Type: Article
Título de Revista/Publicación: Theory and Practice of Logic Programming
Date: 2015
ISSN: 1475-3081
Volume: 16
Subjects:
Freetext Keywords: Abstract machines; Compilation; Optimization; Program transformation; Prolog; Logic languages
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Lenguajes y Sistemas Informáticos e Ingeniería del Software
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB) | Preview

Abstract

In order to achieve competitive performance, abstract machines for Prolog and related languages end up being large and intricate, and incorporate sophisticated optimizations, both at the design and at the implementation levels. At the same time, efficiency considerations make it necessary to use low-level languages in their implementation. This makes them laborious to code, optimize, and, especially, maintain and extend. Writing the abstract machine (and ancillary code) in a higher-level language can help tame this inherent complexity. We show how the semantics of most basic components of an efficient virtual machine for Prolog can be described using (a variant of) Prolog. 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 description 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 state-of-the-art, highly-tuned, hand-crafted emulators.

More information

Item ID: 52656
DC Identifier: http://oa.upm.es/52656/
OAI Identifier: oai:oa.upm.es:52656
DOI: 10.1017/S1471068414000672
Official URL: https://www.cambridge.org/core/journals/theory-and-practice-of-logic-programming/article/description-and-optimization-of-abstract-machines-in-a-dialect-of-prolog/4AD5BDD296AD175CF3BCE00454108498
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 18 Oct 2018 08:56
Last Modified: 18 Oct 2018 08:56
  • 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