Skip to main content

Avoiding confusion in metacircularity: The meta-helix

  • Meta and Reflection
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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. 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. Michael Dixon. Embedded Computation and the Semantics of Programs. PhD thesis, Stanford University, 1991.

    Google Scholar 

  5. 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. 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. Adele Goldberg and Dave Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA, 1983.

    Google Scholar 

  8. 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. Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.

    Google Scholar 

  10. 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. 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. 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. 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. 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. 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. 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. Ramana Rao. Implementational reflection in silica. In European Conference on Object-Oriented Programming, pages 251–266, 1991.

    Google Scholar 

  18. 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. 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. 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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Kokichi Futatsugi Satoshi Matsuoka

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chiba, S., Kiczales, G., Lamping, J. (1996). Avoiding confusion in metacircularity: The meta-helix. In: Futatsugi, K., Matsuoka, S. (eds) Object Technologies for Advanced Software. ISOTAS 1996. Lecture Notes in Computer Science, vol 1049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60954-7_49

Download citation

  • DOI: https://doi.org/10.1007/3-540-60954-7_49

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60954-4

  • Online ISBN: 978-3-540-49747-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics