Continuations for Parallel Logic Programming
Eneia Todoran and Nikolaos S. Papaspyrou
To appear at the 2nd International Conference on Principles and Practice of
Declarative Programming (PPDP 2000), Montreal, Canada, September 20-22, 2000
Abstract
This paper gives denotational models for three logic programming
languages of progressive complexity, adopting the ``logic programming
without logic'' approach. The first language is the control flow
kernel of sequential Prolog, featuring sequential composition and
backtracking. A committed-choice concurrent logic language with
parallel composition (parallel AND) and don't care nondeterminism is
studied next. The third language is the core of Warren's basic Andorra
model, combining parallel composition and don't care nondeterminism
with two forms of don't know nondeterminism (interpreted as
sequential and parallel OR) and favouring deterministic over
nondeterministic computation. We show that continuations are a
valuable tool in the analysis and design of semantic models for both
sequential and parallel logic programming. Instead of using
mathematical notation, we use the functional programming language
Haskell as a metalanguage for our denotational semantics, and employ
monads in order to facilitate the transition from one language under
study to another.