Reflections on Metaprogramming

  • Lee A
  • Zachary J
  • 10


    Mendeley users who have this article in their library.
  • 7


    Citations of this article.


By encapsulating aspects of language semantics within a set of default classes and allowing the programmer to derive new versions, object-oriented languages whose semantics can be tailored to the needs of individual programmers have been provided. The degree to which such languages are simultaneously flexible and efficient is an open question. We describe our experience with using this technique to incorporate transparent support for persistence into the Common Lisp Object System via its metaobject protocol, an open implementation based on reflection. For many aspects of our implementation the metaobject protocol was perfectly suitable. In other cases we had to choose between extending the protocol, requiring the application programmer to employ special idioms, and tolerating a large performance penalty. Based on our experience we evaluate the metaobject protocol, propose some improvements and extensions, and present performance measurements that reveal the need for improved language implementation techniques

Author-supplied keywords

  • CLOS
  • metaobject protocol
  • object persistence
  • object-oriented programming languages
  • open implementation

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document


  • Arthur H. Lee

  • Joseph L. Zachary

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free