Abstract:
In this paper we address the problem of efficiently implementing HiLog, a logic programming language with higher-order syntax and first-order semantics. In contrast to approaches proposed in the literature that modify, or abandon the WAM framework in order to implement HiLog, our approach to the problem stems from a belief that the WAM should be an adequate abstract machine for the execution of any logic language with first-order semantics. To show how to implement HiLog by staying within the WAM framework, we identify the reasons for poor performance characteristics of HiLog programs, present requirements for efficient HiLog execution, and propose a complete solution to the problem. Our proposal, which can be viewed either as a compile-time program specialisation preprocessing step, or as an enhancement to the HiLog encoding in predicate calculus presented by Chen, Kifer, and Warren in [1], allows HiLog to be efficiently implemented on any Prolog system by simply modifying Prolog's in...
Citations
|
453
|
An Abstract Prolog Instruction Set
– Warren
- 1983
|
|
246
|
Abstract Interpretation and Application to Logic Programs
– Cousot, Cousot
- 1992
|
|
213
|
Partial Evaluation in Logic Programming
– Lloyd, Shepherdson
- 1991
|
|
193
|
Unfold/fold transformation of logic programs
– Tamaki, Sato
- 1984
|
|
175
|
An overview of Prolog
– Nadathur, Miller
- 1988
|
|
58
|
A note on inductive generalisation
– Plotkin
- 1970
|
|
45
|
1983--1993 : The Wonder Years of Sequential Prolog Implementation
– Roy
- 1994
|
|
36
|
Design and implementation of the Glue-Nail database system
– Derr, Morishita, et al.
- 1993
|
|
32
|
Relations with relation names as arguments: Algebra and calculus
– Ross
|
|
32
|
Multiple specialization using minimal-function graph semantics
– Winsborough
- 1992
|
|
29
|
LLO: An Object-Oriented Deductive Language with Methods and Method Inheritance
– Lou, Ozsoyoglu
- 1991
|
|
29
|
The Benefits of Global Dataflow Analysis for an Optimizing Prolog Compiler
– Roy, Despain
- 1990
|
|
25
|
Some low-level source transformations for logic programs
– Gallagher, Bruynooghe
- 1990
|
|
25
|
Partial evaluation of a CLP language
– Smith, Hickey
- 1990
|
|
24
|
Global Compilation of Prolog
– Hickey, Mudambi
- 1989
|
|
23
|
A simple code improvement scheme for Prolog
– Debray
- 1992
|
|
22
|
Noodle: A Language for Declarative Querying in an ObjectOriented Database
– Mumick, Ross
- 1993
|
|
15
|
Extracting Determinacy in Logic Programs
– Dawson, Ramakrishnan, et al.
- 1993
|
|
2
|
An Intensional Logic for (Multi-Arity) Set Abstraction
– Chen, Warren
- 1991
|
|
1
|
Extending the WAM to implement HiLog. Unpublished Manuscript (also see Poster Abstract
– Paterson-Jones, Wood
- 1993
|