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}.