Concepts for a Modular and Distributed Prolog Language
In J. Maluszynski and M. Wirsing (Eds.)
Programming Language Implementation and Logic Programming,
Proceedings of the
3rd International Symposium, PLILP'91,
Passau, Germany, 26-28 August 1991,
Lecture Notes in Computer Science 528, pp. 158-170
Abstract
The paper introduces new language concepts for building modular and
distributed Prolog programs. The language concepts are synthesized from
the analysis of the language concept of Distributed Processes and in parts
from the concepts of Object Oriented Programming, while Prolog serves also
as an implementation language. In this concept, a Prolog program is solved
by a number of communicating Prolog objects. Each object can have an own
initial goal. Objects communicate by remote predicate calls. A remote
predicate call results in an additional Prolog thread at the target
object to prove the goal. Consequently, objects execute multiple Prolog
programs in an interleaved manner. A general form of Prolog data base
operations is proposed for communication of concurrently evaluating
Prolog programs in the internal scope of an object. Non-determinism
arising from concurrency is handled by help of an adapted form of the
Guarded Commands concept of Dijkstra. A program under execution
consists of concurrently acting nested objects while the description of
the behaviour of objects is achieved in a modular way.
Back to my home page