Relation to other work

The inspiration for this work comes from three directions: design representation technology, multiple-paradigm languages and distributed problem solving.

Design representation technology

The idea of employing distributed logic programming as a tool for supporting the design of (object oriented) software systems is inspired by the survey of design representation techniques given in  [Webster]. \nop{ Design representation technologies are classified in  [Webster] along the axes of formality and conceptual complexity. With regard to formality distributed logic programming (as embodied in DLP) lies, in my estimate of this classification, between Prolog and knowledge representation formalisms such as KEE and ART. It is not as formal though as ordinary first order (mathematical) logic or algebraic specification formalisms such as OBJ. This lack of formality is primarily due to the facilities offered for parallelism and the distribution of processes. The expression of conceptual complexity is definitely enhanced by the introduction of object oriented features that allow to structure a system in semi-independent entities, and a fair estimate is that distributed logic programming is comparable in this respect to frame-based languages such as KL-ONE and the methods commonly employed in object oriented design. Distributed logic programming shares with the knowledge representations formalisms mentioned that its specifications are executable. In contrast to these formalisms, I wish to stress that the proposed approach is logic-based, thus allowing for a declarative interpretation of its components, insofar these are implemented in a pure logic programming style. } Because of its declarative nature, the language DLP may be used to specify an object oriented system in an abstract way. Due to the fact that DLP is a high level programming language, this specification may be used as a prototype embodying the behavior of the system.

Multiple-paradigm languages

As related approaches in combining logic programming, object oriented programming and parallelism, I wish to mention first of all Delta Prolog that also supports distributed backtracking, but in the context of a less powerful communication mechanism.  [PM85]. Delta Prolog does not, however, provide any modularization construct. Modularization in an object oriented style is offered by MultiLog, a multi-tasking object oriented Prolog developed to support prototyping embedded systems, that are (eventually) to be implemented in Ada.  [Ka88]. The distinguishing feature of DLP with respect to MultiLog however is that DLP supports backtracking over the answers of a method call by rendez-vous, whereas MultiLog proceeds from the assumption that such backtracking is not needed. Other efforts at extending logic programming with object oriented features are reported in  [ST83],  [Za84] and  [Da89]. \nop{ Also related is the work on distributing (medical) reasoning tasks reported in  [GC81]. A logical basis to this approach has been provided in  [KT90]. The DLP approach to the issue of defining generic reasoning tasks comes from a programming perspective. In this respect DLP may be compared to the proposal in  [HL89], exploring the use of the object oriented programming paradigm in a distributed problem solver. }

Distributed problem solving

Also related is the work on distributing (medical) reasoning tasks reported in  [GC81]. A logical basis to this approach has been provided in  [KT90]. The DLP approach to the issue of defining generic reasoning tasks comes from a programming perspective. In this respect DLP may be compared to the proposal in  [HL89], exploring the use of the object oriented programming paradigm in a distributed problem solver. A more extensive discussion of related approaches is given in section \ref{des/per/dlp}.