2015
DOI: 10.1017/s1471068414000672
|View full text |Cite
|
Sign up to set email alerts
|

Description and Optimization of Abstract Machines in a Dialect of Prolog

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… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
1
1
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(3 citation statements)
references
References 31 publications
0
3
0
Order By: Relevance
“…Albert et al (2012) use a similar approach to cost analysis. Morales et al (2015) explore the use of a logic programming language for the implementation of efficient abstract machines and runtime systems. To this end they use a Prolog variant with certain imperative features (mutable variables) that enables translation into efficient C-style code while still allowing for high-level program transformations, such as partial evaluation of instruction definitions.…”
Section: Related Workmentioning
confidence: 99%
“…Albert et al (2012) use a similar approach to cost analysis. Morales et al (2015) explore the use of a logic programming language for the implementation of efficient abstract machines and runtime systems. To this end they use a Prolog variant with certain imperative features (mutable variables) that enables translation into efficient C-style code while still allowing for high-level program transformations, such as partial evaluation of instruction definitions.…”
Section: Related Workmentioning
confidence: 99%
“…Also, the progressively richer information inferred by the PLAI analyzers was applied to enhancing program development, leading to the Ciao assertion language and pre-processor, CiaoPP (Hermenegildo et al, 1999;Puebla et al, 2000a;Hermenegildo et al, 2005), which allowed optionally specifying and checking many properties such as types, modes, determinacy, non-failure, or cost, as well as autodocumentation. A native, optimizing compiler was also developed, and the abstract machine was rewritten in a restricted dialect of Prolog, ImProlog (Morales et al, 2005(Morales et al, , 2016. 1987) SB-Prolog was a Prolog system that, according to the CMU Artificial Intelligence Repository (1995) became available in 1987, and had been started as an exercise to understand the WAM.…”
Section: Open-source and Research-driven Prolog Systems Based On The Wammentioning
confidence: 99%
“…Program analysis and transformation tools, partial evaluators, and automatic parallelizers can be used for Prolog programs, and can be particularly effective for • the perception that it is an "old" language purely declarative parts. For partial evaluation, however, the techniques have still not yet been integrated into Prolog compilers (the discussion by Leuschel and Bruynooghe (2002, Section 7) is mostly still valid today), with the exception of Ciao Prolog's pre-processor (Hermenegildo et al, 2005) and abstract machine generator (Morales et al, 2005(Morales et al, , 2016. However, they have found their way into just-in-time compilers for other languages (Bolz et al, 2011).…”
Section: Ease Of Expressionmentioning
confidence: 99%