{"type":"ScholarlyArticle","title":"A Uniform Model for Object-Oriented Languages Using the Class Abstraction","authors":[{"name":"Jean-Pierre Briot","slug":"jean-pierre-briot","given":"Jean-Pierre","family":"Briot","affiliation":""},{"name":"Pierre Cointe","slug":"pierre-cointe","given":"Pierre","family":"Cointe","affiliation":""}],"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 Smalltalk80, 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 1 , 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.","doi":null,"url":"https://ijcai.org/proceedings/1987/8","pdf":"https://ijcai.org/proceedings/1987/0008.pdf","markdown":"https://ijcai.org/proceedings/1987/8.md","bibtex":"https://ijcai.org/proceedings/1987/bibtex/8","volume":{"slug":"1987","title":"Proceedings of the Tenth International Joint Conference on Artificial Intelligence","short_title":"IJCAI 1987","url":"https://ijcai.org/proceedings/1987/","year":1987,"location":"Milan, Italy","dates":"","editors":"John McDermott","isbn":"","publisher":"International Joint Conferences on Artificial Intelligence","doi_prefix":""},"section":"Architectures and Languages","track":"Architectures and Languages","number":8,"pages":{"first":40,"last":42},"keywords":[],"videos":[],"references":[],"license_note":"Copyright International Joint Conferences on Artificial Intelligence."}