Jump to content

ObjVlisp

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Kvng (talk | contribs) at 21:19, 3 July 2017 (merge from ObjVProlog). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ObjVlisp is a 1984 object-oriented extension of Vlisp[1]–Vincennes LISP, a LISP dialect developed since 1971 at the University of Paris VIII – Vincennes. It is noteworthy as one of the earliest implementations of the concept of metaclasses, and in particular explicit (as opposed to implicit) metaclasses. In the ObjVlisp model, "each entity is an instance of a single class. Classes are instances of other classes, called metaclasses. This model allows for extension of the static part of OOL, i.e. the structural aspects of objects considered as implementation of abstract data types"[2]

ObjVlisp provided a far more flexible metaclass model than that provided by earlier object-oriented languages, especially Smalltalk. In Smalltalk-80, whenever a new class is created, a corresponding metaclass is created automatically; it does not have a name independent of that of the metaclass for which it was created–metaclasses are implicit rather than explicit. By contrast, in ObjVlisp, it is possible to define named metaclasses, and when defining a class one must specify which named metaclass it will instantiate.[3]

The explicit metaclass support in ObjVlisp influenced the provision of the same capability in the Common Lisp Object System.[4]

The ObjVlisp object model was later implemented in Prolog to produce ObjVProlog.[5]

Prolog

Logic programming and object-orientation, an adaptation of the ObjVlisp model to Prolog.[6]

References

  1. ^ Cointe, Pierre (1987). "Metaclasses are first class: The ObjVlisp Model". ACM SIGPLAN Notices. 22 (12): 156–162. doi:10.1145/38807.38822. ISSN 0362-1340.
  2. ^ Ferber, J. (1989). "Computational reflection in class based object-oriented languages": 317–326. doi:10.1145/74877.74910. {{cite journal}}: Cite journal requires |journal= (help)
  3. ^ Briot, J.-P.; Cointe, P. (1989). "Programming with explicit metaclasses in Smalltalk-80": 419–431. doi:10.1145/74877.74921. {{cite journal}}: Cite journal requires |journal= (help)
  4. ^ Graube, Nicolas (1988). "Reflexive Architecture: From ObjVLisp to CLOS". 322: 110–127. doi:10.1007/3-540-45910-3_7. ISSN 0302-9743. {{cite journal}}: Cite journal requires |journal= (help)
  5. ^ Malenfant, J.; Lapalme, G.; Vaucher, J. (1991). "ObjVProlog-D: a reflexive object-oriented logic language for distributed computing". ACM SIGPLAN OOPS Messenger. 2 (2): 78–81. doi:10.1145/127070.127089. ISSN 1055-6400.
  6. ^ "ObjVProlog: Metaclasses in Logic", J. Malenfant, ECOOP '89, Cambridge U Press 1989, pp. 257–269

This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.