Advertisement

Avoiding confusion in metacircularity: The meta-helix

  • Shigeru Chiba
  • Gregor Kiczales
  • John Lamping
Meta and Reflection
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1049)

Abstract

A system with a metaobject protocol (MOP) allows programmers to extend it and then use the extended system as naturally as the original non-extended one. Such metaobject protocols often use a metacircular architecture to make the extensions easier to write. Unfortunately, this use of metacircularity can lead to problems stemming from a conflation of the extended and non-extended functionalities. We present a new architecture, called the meta-helix, that preserves the advantages of metacircularity but also addresses the problems with conflation.

Keywords

metaobject protocol reflection metacircular CLOS 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [BDG+88]
    Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon. Common lisp object system specification. Sigplan Notices, 23(Special Issue), September 1988.Google Scholar
  2. [Chi95]
    Shigeru Chiba. A metaobject protocol for C++. In OOPSLA '95 Conference Proceedings Object-Oriented Programming Systems, Languages, and Applications (to appear), October 1995.Google Scholar
  3. [Coi87]
    Pierre Cointe. Metaclasses are first class: The ObjVlisp model. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Orlando, FL, pages 156–167, 1987.Google Scholar
  4. [Dix91]
    Michael Dixon. Embedded Computation and the Semantics of Programs. PhD thesis, Stanford University, 1991.Google Scholar
  5. [dR90]
    Jim des Rivières. The secret tower of CLOS. In Informal Proceedings of ECOOP/OOPSLA '90 Workshop on Reflection and Metalevel Architectures in Object-Oriented Programming, October 1990.Google Scholar
  6. [dRS84]
    Jim des Rivières and Brian Cantwell Smith. The implementation of procedurally reflective languages. In Proceedings of the ACM Conference on LISP and Functional Programming, pages 331–347. ACM, 1984.Google Scholar
  7. [GR83]
    Adele Goldberg and Dave Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA, 1983.Google Scholar
  8. [HO93]
    William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). In Andreas Paepcke, editor, OOPSLA '93 Conference Proceedings Object-Oriented Programming Systems, Languages, and Applications, pages 411–428. ACM/SIGPLAN, ACM Press, October 1993. Volume 28, Number 10.Google Scholar
  9. [KdRB91]
    Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.Google Scholar
  10. [LKRR92]
    John Lamping, Gregor Kiczales, Luis H. Rodriguez Jr., and Erik Ruf. An architecture for an open compiler. In Proceedings of the IMSA'92 Workshop on Reflection and Meta-level Architectures, 1992. Also to appear in forthcoming PARC Technical Report.Google Scholar
  11. [MA90]
    Dylan McNamee and Katherine Armstrong. Extending the mach external pager interface to allow user-level page replacement policies. Technical Report UWCSE 90-09-05, University of Washington, September 1990.Google Scholar
  12. [Mae87]
    P. Maes. Concepts and experiments in computational reflection. In OOP-SLA '87 Conference Proceedings, Sigplan Notices 22 (12), pages 147–155. ACM, Dec 1987.Google Scholar
  13. [Mae96]
    Chris Maeda. A metaobject protocol for file systems. In Proceedings of ISOTAS'96 (International Symposium on Advanced Technologies for Object Software), March 1996.Google Scholar
  14. [MWY91]
    Satoshi Matsuoka, Takuo Watanabe, and Akinori Yonezawa. Hybrid group reflective architecture for object-oriented concurrent reflective programming. In European Conference on Object Oriented Programming, pages 231–250, 1991.Google Scholar
  15. [OIT92]
    Hideaki Okamura, Yutaka Ishikawa, and Mario Tokoro. Al-1/d: A distributed programming system with multi-model reflection framework. In Proceedings of the International Workshop on New Models for Software Architecture '92; Reflection and Meta-Level Architecture, pages 36–47, 1992.Google Scholar
  16. [Pae90]
    Andreas Paepcke. PCLOS: Stress testing CLOS Experiencing the metaobject protocol. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications and the European Conference on Object-Oriented Programming, pages 194–211, 1990.Google Scholar
  17. [Rao91]
    Ramana Rao. Implementational reflection in silica. In European Conference on Object-Oriented Programming, pages 251–266, 1991.Google Scholar
  18. [Rod92]
    Luis H. Rodriguez Jr. Towards a better understanding of compile-time mops for parallelizing compilers. In Proceedings of the IMSA'92 Workshop on Reflection and Meta-level Architectures, 1992. Also to appear in forthcoming PARC Technical Report.Google Scholar
  19. [SZ89]
    Lynn Andrea Stein and Stanley B. Zdonik. Clovers: The dynamic behavior of types and instances. Technical Report CS-89-42, Brown University, 1989.Google Scholar
  20. [WY88]
    Takuo Watanabe and Akinori Yonezawa. Reflection in an object-oriented concurrent language. In Object Oriented Programming, Systems, Languages, and Applications Conference Proceedings, pages 306–315, 1988.Google Scholar
  21. [Yok92]
    Yasuhiko Yokote. The apertos reflective operating system: The concept and its implementation. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications, pages 414–434, October 1992.Google Scholar
  22. [YTR+87]
    Michael Young, Avadis Tevanian, Richard Rashid, David Golub, Jeffrey Eppinger, Jonathan Chew, William Bolosky, David Black, and Robert Baron. The duality of memory and communication in the implementation of a multiprocessor operating system. In Proceedings of the 11th Symposium on Operating Systems Principles, 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Shigeru Chiba
    • 1
  • Gregor Kiczales
    • 1
  • John Lamping
    • 1
  1. 1.Xerox Palo Alto Research CenterUSA

Personalised recommendations