Skip to main content

Declarable Modifiers: A Proposal to Increase the Efficacy of Metaclasses

  • Conference paper
  • First Online:
Reflection and Software Engineering (OORaSE 1999)

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

Included in the following conference series:

  • 177 Accesses

Abstract

The amount of information available to metaprogrammer during intercession is limited. If a metaprogrammer has more information about the intentions of a programmer, the metaprogrammer can create more useful facilities. This paper proposes that object-oriented programming languages be designed so that metaprogrammers can declare new modifiers for methods and instance variables. Class programmers can use these modifiers to communicate intentions during intercession to the facilities created by metaprogrammers. This paper presents an extension to Java that has metaclasses. The intercessional features of the metaclasses are enhanced with the ability to declare both method and field modifiers. These modifiers are used by class programmers to communicate with a metaclass and control the effect of its intercession.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Mehmet Aksit, Lodewijk Bergmans, Jan Bosch, Ken Wakita, and Akinori Yonezawa. Abstracting Object Interactions Using Composition Filters. In Proceedings of ECOOP’93, Workshop on Object-Based Distributed Programming, LNCS 791, pages 152–184, Kaiserslautern, Germany, July 1993.

    Chapter  Google Scholar 

  2. Noriki Amano and Takuo Watanabe. An Approach for Constructing Dynamically Adaptable Component-Based Software System Using LEAD++. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Proceedings of the 1st OOPSLA Workshop on Object Oriented Reflection and Software Engineering (OORaSE’99), pages 1–16. Denver, CO, November 1999.

    Google Scholar 

  3. Don Batory. private communication. (For information on JTS see http://www.cs.utexas.edu/users/schwartz), February 2000.

  4. Don Batory and Bart J. Geraci. Composition Validation and Subjectivity in Gen-Voca Generators. IEEE Transactions on Software Engineering (special issue on Software Reuse), pages 67–82, February 1997.

    Google Scholar 

  5. Shigeru Chiba. A Meta-Object Protocol for C++. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’95), volume 30 of Sigplan Notices, pages 285–299, Austin, Texas, USA, October 1995. ACM.

    Google Scholar 

  6. Shigeru Chiba, Michiaki Tatsubori, Marc-Olivier Killijian and Kozo Itano. Open-Java: A Class-based Macro System for Java. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Reflection and Software Engineering, Lecture Notes in Computer Science 1826. Springer-Verlag, June 2000.

    Google Scholar 

  7. Matthias Felleisen, Matthew Flatt, and Shriram Krishnamurthi. Classes and Mixins. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 171–183, January 1998.

    Google Scholar 

  8. Ira R. Forman. JEM: A Proposal for Extending Java with Metaclasses. to be published.

    Google Scholar 

  9. Ira R. Forman and Scott H. Danforth. Putting Metaclasses to Work. Addison-Wesley, 1999.

    Google Scholar 

  10. Nate B. Forman. Metaclass-Based Implementation of Software Patterns. Masters report, University of Texas at Austin, December 1999.

    Google Scholar 

  11. Adele Goldberg and David Robson. SmallTalk-80: The Language and Its Implementation. Addison-Wesley, Reading, Massachussetts, 1983.

    Google Scholar 

  12. James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series... from the Source. Addison-Wesley, Reading, Massachussetts, 1996.

    MATH  Google Scholar 

  13. William H. Harrison and Harold Ossher. Subject-Oriented Programming (A Critique of Pure Objects). In Proceedings of OOPSLA’93, pages 411–428, September 1993.

    Google Scholar 

  14. IBM. SOMobjects Developer Toolkit Reference Manual. Reference Manual Version 2.1, IBM, October 1994.

    Google Scholar 

  15. Gregor Kickzales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, Massachusetts, 1991.

    Google Scholar 

  16. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. In 11th European Conference on Object Oriented Programming (ECOOP’97), Lecture Notes in Computer Science 1241, pages 220–242, Finland, June 1997. Springer-Verlag.

    Google Scholar 

  17. Bertrand Meyer. Eiffel: The Language. Prentice-Hall, 1994.

    Google Scholar 

  18. Mira Mezini. Variational Object-Oriented Programming Beyond Classes and Inheritance. Kluwer Academic Publisher, 1998.

    Google Scholar 

  19. Andreas Pæpcke Eds. Object-Oriented Programming: The CLOS Perspective. MIT Press, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Forman, I.R. (2000). Declarable Modifiers: A Proposal to Increase the Efficacy of Metaclasses. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds) Reflection and Software Engineering. OORaSE 1999. Lecture Notes in Computer Science, vol 1826. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45046-7_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-45046-7_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67761-1

  • Online ISBN: 978-3-540-45046-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics