LISP and Symbolic Computation, 3(3)245-288

LogScheme: Integrating Logic Programming into Scheme

Erik Ruf, Center for Integrated Systems, Stanford University, Stanford, CA 94305-4070
Daniel Weise, Center for Integrated Systems, Stanford University, Stanford, CA 94305-4070

Abstract: This research aims to fully integrate logic programming into the programming language Scheme. We use a minimalist approach, based on the observation that the fundamental aspects of logic programming, nondeterminism and unification, are separable both in concept and in implementation. We have found that only two new primitive functions and one new special form need to be added to Scheme to achieve this integration. Using these primitives, we can write programs in the style of Scheme, Icon, Prolog, or any mixture thereof. We have found that a style of programming that uses both logical and functional techniques can be more powerful than the use of either technique alone. Because Scheme has side effects and continuations, this research addresses different problems and choices than previous research [2, 16, 19] on merging functional and logical languages.

This article is not available online.
[picture of journal cover]

March 2003 - hosc@brics.dk