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