Abstract:
C.A.R. Hoare's Unified Theory of Programming gives a single framework for describing the algebraic semantics of different programming paradigms. The work presented in this thesis is aimed towards incorporating the lacking parts of logic programming paradigm into this Unified Theory. As a first step in my algebraic study of logic programming, I propose a shallow embedding of logic programs into Gofer programs. This embedding translates each Prolog predicate into a Gofer function such that both the declarative and the procedural reading of the Prolog predicate are preserved. In the standard approach to mapping logic programs to functional ones the declarative reading is lost. The shallow embedding computes by means of operations on lazy lists. The state of each step in computation is passed on as a list of substitutions, and all the implicit logic operators in Prolog are replaced by explicit Gofer operators on lists. I express a set of algebraic laws for these operators and
Citations
|
1128
|
Monads for functional programming
– Wadler
- 1992
|
|
173
|
Contributions to the theory of logic programming
– Apt, Emden
- 1989
|
|
168
|
HILOG: A Foundation for Higher-Order Logic Programming
– Chen, Kifer, et al.
- 1993
|
|
157
|
From Logic Programming to Prolog
– Apt
- 1997
|
|
112
|
Kernel Leaf: A Logic plus Functional Language
– Giovannetti, Levi, et al.
- 1991
|
|
45
|
The Relation between Logic and Functional Languages: a Survey
– Bellia, Levi
- 1986
|
|
41
|
Properties of Substitutions and Unifications
– Eder
- 1985
|
|
38
|
Models and equality for logical programming
– Goguen, Meseguer
|
|
20
|
The unification of functional and logic languages
– Darlington, Field, et al.
- 1986
|
|
16
|
Representing Logic Program Schemata in �Prolog
– Gegg-Harrison
- 1995
|
|
13
|
H.: A new perspective on the integration of functional and logic languages
– Darlington, Guo, et al.
- 1992
|
|
10
|
A model for mathematical analysis of functional logic programs and their implementations
– Börger, López-Fraguas, et al.
- 1994
|
|
10
|
Logic programming: The evolving algebra approach
– Borger
- 1994
|
|
8
|
Lazy evaluation in logic
– Antoy
- 1991
|
|
4
|
A Formal Specification of Prolog by Tree Algebras
– Borger
- 1991
|
|
3
|
Logic+Control revisited: An abstract interpreter for Godel programs
– Borger, Riccobene
- 1994
|