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.
References
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.
Shigeru Chiba. A metaobject protocol for C++. In OOPSLA '95 Conference Proceedings Object-Oriented Programming Systems, Languages, and Applications (to appear), October 1995.
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.
Michael Dixon. Embedded Computation and the Semantics of Programs. PhD thesis, Stanford University, 1991.
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.
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.
Adele Goldberg and Dave Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA, 1983.
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.
Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.
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.
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.
P. Maes. Concepts and experiments in computational reflection. In OOP-SLA '87 Conference Proceedings, Sigplan Notices 22 (12), pages 147–155. ACM, Dec 1987.
Chris Maeda. A metaobject protocol for file systems. In Proceedings of ISOTAS'96 (International Symposium on Advanced Technologies for Object Software), March 1996.
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.
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.
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.
Ramana Rao. Implementational reflection in silica. In European Conference on Object-Oriented Programming, pages 251–266, 1991.
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.
Lynn Andrea Stein and Stanley B. Zdonik. Clovers: The dynamic behavior of types and instances. Technical Report CS-89-42, Brown University, 1989.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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