Logic Programming Research
A WAM-based Implementation of a Logic Language
with Sets
In Proceedings of the 5th International Symposium on
Programming Language Implementation and Logic Programming
Springer Verlag, August 93, Tallinn, Estonia
Author(s)
Agostino Dovier @ the University of Pisa (Italy),
Enrico Pontelli
Abstract
Set theory represents a universally accepted mean for representing various forms of knowledge, both in formal and commonsense reasoning. Nevertheless their use as a programming tool has been quite limited, due to the inherent complexity of computing with sets and the gap existing between unordered (sets) and ordered (computer memory) structures.
In recent years, the evolution of declarative programming paradigms (like functional and logic programming) resulted in more effort being put towards integrating set theory in these new programming languages. Various proposals describe the problems introduced by inclusion of sets, together with different approaches to solve them. Some of these proposals have been actually implemented, leading to new programming languages which gained a certain success (like SETL and LDL).
The language that we are proposing, called {Log}, has been obtained by merging pure logic programming (Horn Clause Logic) with finite set theory. The resulting language proved to be successful in describing problems in different application fields (planning, operational research, deductive database). A complete and formal definition of the language is presented in previous works on {log}.
The main purpose of this paper is to present an actual implementation of {Log}, focusing on the main problems encountered and the solutions proposed. The whole implementation is based on a modified Warren Abstract Machine, which allows to take advantage of the most modern compiler techniques.
The whole paper
can be downloaded from our
server.
Logic Prog. Page
Research Page
Lab Home Page