malenfan@ouareau.iro.umontreal.ca (Jacques Malenfant) (10/14/89)
About object-oriented logic programming, I'm writing my Ph. D. thesis
on that subject. The result is the language ObjVProlog-D which has
the following characteristics:
- a metaclass, class and instance model adapted from ObjVLisp
(see the paper of Cointe at OOPSLA'87 for example);
- an object is mainly a Prolog database which interprets messages
as requests to solve goals using its clauses and can delegate goals
to other objects through message passing;
- the object's state is represented by its actual set of clauses;
- a class is also an object which defines the structure and behavior
of objects in term of static predicates (logic methods) and dyna-
mic predicates which are defined by clauses private to each objects;
- a metaclass is a class that instanciates other classes (as in
ObjVLisp);
- multiple inheritance is provided using linear extensions as in CLOS;
- dynamic predicates can be initialized at creation time and modified
during the life of the object but, to give a clear semantics of
object updates versus backtracking (full backtracking is implemented
in the language), a version mechanism models the history of updates
for an object to implement state changes;
- ObjVProlog-D retains the unification of data and procedures in Prolog
by implementing both logic methods and state using clauses; because
of this we chose to have dynamic inheritance of both static and dynamic
predicates;
- parallelism is implemented by making objects parallel entities and
message passing true asynchronous messages with futures.
An implementation written in Quintus Prolog runs actually on Sun workstations.
More informations on the metaclass, class and instance model of ObjVProlog-D
are available in a paper I presented in July at ECOOP'89.
If you want anymore, it's prefereable to send me messages directly because I
don't have time to read the news on a day to day basis and some messages can be
lost before I come back.
Jacques Malenfant malenfan@iro.umontreal.CA
Laboratoire INCOGNITO
Departement d'informatique et de recherche operationnelle
Universite de Montreal
C.P. 6128, Succursale A
Montreal, Quebec H1M 3B2