Skip to main content

Traces (A cut at the “make isn't generic” problem)

  • Conference paper
  • First Online:
Object Technologies for Advanced Software (ISOTAS 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 742))

Included in the following conference series:

Abstract

Object-oriented techniques are a powerful tool for making a system end-programmer specializable. But, in cases where the system not only accepts objects as input, but also creates objects internally, specialization has been more difficult. This has been referred to as the “make isn't generic problem.” We present a new object-oriented language concept, called traces, that we have used successfully to support specialization in cases that were previously cumbersome.

The concept of traces makes a fundamental separation between two kinds of inheritance in object-oriented languages: inheritance of default implementation — an aspect of code sharing; and inheritance of specialization, a sometimes static, sometimes dynamic phenomena.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [BKK+86] D.G. Bobrow, K. Kahn, G. Kiczales, L. Masinter, M. Stefik, and F. Zdybel. Commonloops: Merging Lisp and object-oriented programming. In OOPSLA '86 Conference Proceedings, Sigplan Notices 21(11). ACM, Nov 1986.

    Google Scholar 

  2. Shigeru Chiba and Yuuji Ichisugi. Open c++. In European Conference on Object Oriented Programming, 1993. to appear.

    Google Scholar 

  3. Pierre Cointe. The ObjVlisp kernel: A reflexive lisp architecture to define a uniform object-oriented system. In Pattie Maes and Daniele Nardi, editors, Meta-Level Architectures and Reflection, pages 155–176. North-Holland, 1987.

    Google Scholar 

  4. Jacques Ferber. Computational reflection in class based object oriented language. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), New Orleans, LA., SIGPLAN Notices 24(10), pages 317–326. ACM, October 1989.

    Google Scholar 

  5. Brian Foote and Ralph E. Johnson. Reflective facilities in smalltalk-80. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), New Orleans, LA., SIGPLAN Notices, 24(10), pages 327–335, October 1989.

    Google Scholar 

  6. Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.

    Google Scholar 

  7. Gregor Kiczales. Towards a new model of abstraction in software engineering. In Proceedings of the IMSA '92 Workshop on Reflection and Meta-level Architectures, 1992. Also to appear in forthcoming PARC Technical Report.

    Google Scholar 

  8. Gregor Kiczales and John Lamping. Issues in the design and documentation of class libraries. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications, 1992. To Appear.

    Google Scholar 

  9. H. Lieberman. Using prototypical objects to implement shared behavior in object-oriented systems. In OOPSLA '86 Conference Proceedings, Sigplan Notices 21(11). ACM, Nov 1986.

    Google Scholar 

  10. Pattie Maes. Concepts and experiments in computational reflection. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 147–155, 1987.

    Google Scholar 

  11. J. Malenfant, P. Cointe, and C. Dony. Reflection in prototype-based object-oriented programming languages. In Proceedings of the OOPSLA Workshop on Reflection and Metalevel Architectures in Object-Oriented Programming, 1991.

    Google Scholar 

  12. Ramana Rao. Implementational reflection in Silica. In Informal Proceedings of ECOOP/OOPSLA '90 Workshop on Reflection and Metalevel Architectures in Object-Oriented Programming, October 1990.

    Google Scholar 

  13. Ramana Rao. Implementational reflection in Silica. In Pierre America, editor, Proceedings of European Conference on Object-Oriented Programming (ECOOP), volume 512 of Lecture Notes in Computer Science, pages 251–267. Springer-Verlag, 1991.

    Google Scholar 

  14. Yasuhiko Yokote, Atsushi Mitsuzawa, Nobuhisa Fujinami, and Mario Tokoro. Evaluation of muse reflective object management. In Proceedings of the 8th Conference of Japan Society for Software Science and Technology, September 1991. (in Japanese, also available as a technical report SCSL-TM-91-019, Sony Computer Science Laboratory Inc.).

    Google Scholar 

  15. Yasuhiko Yokote, Fumio Teraoka, Atsushi Mitsuzawa, Nobuhisa Fujinami, and Mario Tokoro. The Muse object architecture: A new operating system structuring concept. Operating Systems Review, 25(2), April 1991. (also available as a technical report SCSL-TR-91-002, Sony Computer Science Laboratory Inc.).

    Google Scholar 

  16. Yasuhiko Yokote, Fumio Teraoka, Masaki Yamada, Hiroshi Tezuka, and Mario Tokoro. The design and implementation of the Muse object-oriented distributed operating system. In Proceedings of the First Conference on Technology of Object-Oriented Languages and Systems, October 1989. (also available as a technical report SCSL-TR-89-010, Sony Computer Science Laboratory Inc.).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Shojiro Nishio Akinori Yonezawa

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kiczales, G. (1993). Traces (A cut at the “make isn't generic” problem). In: Nishio, S., Yonezawa, A. (eds) Object Technologies for Advanced Software. ISOTAS 1993. Lecture Notes in Computer Science, vol 742. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57342-9_64

Download citation

  • DOI: https://doi.org/10.1007/3-540-57342-9_64

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57342-5

  • Online ISBN: 978-3-540-48075-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics