TL;DR: This chapter discusses Smalltalk-80, Frame-Based Languages, LISP and Objects, and an Implementation of ObjVlisp.
Abstract: Objects. Classes. Smalltalk-80. Objective-C. LISP and Objects. The Scandinavian School. Knowledge Representation. Frame-Based Languages. Hybrid Languages. Actors. Programming with Classes. Add Objects to Your LISP. State of the Art and Perspectives. Glossary. An Implementation of ObjVlisp. Bibliography. Index.
TL;DR: The ObjVlisp model is implemented into the standard Smalltalk-80 system and the resulting combination defines the Classtalk platform, which provides a full-size environment to experiment with class-oriented programming by combining implicit metaclasses a la Smalltalk and explicit metaclass a la Obj Vlisp.
Abstract: This paper discusses the introduction of explicit metaclasses a la ObjVlisp into the Smalltalk-80 language. The rigidity of Smalltalk metaclass architecture motivated this work. We decided to implement the ObjVlisp model into the standard Smalltalk-80 system. The resulting combination defines the Classtalk platform. This platform provides a full-size environment to experiment with class-oriented programming by combining implicit metaclasses a la Smalltalk and explicit metaclasses a la ObjVlisp. Obviously, these experiments are not limited to the Smalltalk world and will be useful to understand and practice the metaclass concept advocated by modern object-oriented languages such as ObjVlisp and CLOS.
TL;DR: In this paper, an attempt at a uniform and reflective definition resulted in an open-ended system supporting ObjVlisp, which was used to simulate object-oriented language extensions.
Abstract: This paper shows how an attempt at a uniform and reflective definition resulted in an open-ended system supporting ObjVlisp, which we use to simulate object-oriented language extensions. We propose...
TL;DR: This work proposes an ultimate new model for an optimal simplification of the class/object concept, implemented by ObjVlisp, where every object is an instance of a class, and a class is a true object fully specified at the meta-level.
Abstract: One of the main goals of object-oriented languages is to unify their universe: "every entity of the language is an object. The class concept, however, usually does not follow this wish: a class being not a real object, i.e., created from a class. The metaclass concept introduced in Smalltalk- 80, attempts to give classes a first class citizenship but complicates the instantiation scheme without solving its fundamental limitations: the only partial specification of the class at the metaclass level, and the fixed number of meta-levels.
Some more recent approaches, as in Loops and then CommonLoops, tend towards a better unification, but reveal the same limitations. We propose to go one step further and present an ultimate new model for an optimal simplification of the class/object concept, while keeping the class abstraction. In this model, implemented by ObjVlisp, every object is an instance of a class, and a class is a true object fully specified at the meta-level. A metaclass is a true class inheriting from another one. Because ObjVlisp is built on a reflective architecture, the user has uniform access and control to all the levels of the language: class level, metaclass level... He can add new levels and the metaclass links can be created indefinitely.
Finally, we suggest to clarify the Smalltalk terminology with a new definition for class variables: the instance variables of a class - treated as an object - become the class variables of this class, explicitly expressed at the metaclass level.
TL;DR: In this paper, the introduction of explicit metaclasses la ObjVlisp into the Smalltalk-80 language was discussed, and the rigidity of Smalltalk metaclass architecture motivated this work.
Abstract: This paper discusses the introduction of explicit metaclasses la ObjVlisp into the Smalltalk-80 language. The rigidity of Smalltalk metaclass architecture motivated this work. We decided to impleme...