Object oriented Prolog extension
I don't consider this as one of the best papers my name has appeared on....
Object-Oriented Programming in Prolog: Rationale and a Case Study
Fevzi Belli, Oliver Jack and Lee Naish
Logic programming provides an opportunity to formulate and solve
problems in a
declarative manner. In logic programming languages, problem solving will
be performed by describing what has to be done instead of
describing
how
it has to be done as the latter
is the case when utilizing procedural programming
languages. The declarative way of programming offers a good method
for the construction of software, e.g. for knowledge-based systems,
database applications etc., because software engineers have then to be
much less concerned with procedural aspects of their programs as they
use a conventional programming language.
Moreover, object-oriented programming as a special programming
paradigm provides benefits for software engineering. In
object-oriented programming languages, the relevant world
to be modelled is considered as a
collection of autonomous objects which encapsulate data and procedures.
The objects are structured hierarchically and can inherit methods,
i.e.
data and procedures. This enhances the reusability and maintainability
of software. Although
several attempts have been made to combine both
logic programming and object-oriented programming, they have not been so
successful.
In this paper, we first specify logic and object-oriented
programming by using a certain contamination of pure logic programming
which
already took place in ``real'' Prolog.
We explain this approach by a practical example, deployed in the
project FIREX (FIRe avoidance and combat EXpertise)
which is described in [Belli89].
Then we develop another approach of object-orientation with ``pure''
Prolog
plus negation. We also explain this approach by an example from the
FIREX
project.
Lee