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

Agostino Dovier @ the University of Pisa (Italy),
Enrico Pontelli

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