Metaclasses are first class: The ObjVlisp Model

  • Authors:
  • Pierre Cointe

  • Affiliations:
  • Rank Xerox & LITP

  • Venue:
  • OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

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 to unify Smalltalk classes and their terminal instances. This unification allows us to treat a class as a “first class citizen”, to give a circular definition of the first metaclass, to access to the metaclass level and finally to control the instantiation link. Because each object is an instance of another one and because a metaclass is a real class inheriting from another one, the metaclass links can be created indefinitely.This uniformity allows us to define the class variables at the metalevel thus suppressing the Smalltalk-80 ambiguity between class variables and instance variables: in our model the instance variables of a class are the class variables of its instances.