[comp.object] object-oriented logic programming +

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