Skip to main content

Reflection for statically typed languages

  • Conference paper
  • First Online:
ECOOP’98 — Object-Oriented Programming (ECOOP 1998)

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

Included in the following conference series:

Abstract

An object-oriented language that permits changing the behavior of a class or of a single object is said to support computational reflection. Existing reflective facilities in object-oriented languages are either complex, type unsafe, or have a large performance penalty. We propose a simple, easy-to-understand, and statically typed model that captures much of the functionalities of other reflective facilities. It brings the power of reflection to the world of type safe and efficient languages.

This work was partially supported by CNPq, the Brazilian financial agency for scientific projects under process number 200466-94.1

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. Aksit, Mehmetl Wakita, Ken; Bosch, Jan; Bergmans, Lodewijk, and Yonezawa, Akinori. Abstracting Object Interactions Using Composition Filters. Proceedings of ECOOP'93. Workshop on Object-Based Distributed Programming. Lecture Notes in Computer Science No. 791, 1993.

    Google Scholar 

  2. Borning A. and O'Shea, T. DeltaTalk: An Empirically and Aesthetical Motivated Simplification of the Smalltalk-80 Language. Proceedings of ECOOP 88. Lecture Notes in Computer Science No. 322.

    Google Scholar 

  3. Chambers, Craig. Predicate Classes. Proceedings of ECOOP'93. Lecture Notes in Computer Science No. 707.

    Google Scholar 

  4. Chiba, Shigeru and Masuda, Takashi. Designing an Extensible Distributed Language with a Meta-Level Architecture. Proceeding of ECOOP'93. Lecture Notes in Computer Science No. 707, 1993.

    Google Scholar 

  5. Chiba, S. Open C++ Programmer's Guide. Technical Report 93-3, Department of Information Science, University of Tokyo, Tokyo, Japan, 1993.

    Google Scholar 

  6. Chiba, S. A Metaobject Protocol for C++. SIGPLAN Notices, Vol. 30, No. 10, October 1995, pg. 285–299, OOPSLA'95.

    Google Scholar 

  7. Cointe, Pierre. Metaclasses are First Class: the ObjVlisp Model. SIGPLAN Notices, Vol. 22, No. 12, December 1987. OOPSLA 87.

    Google Scholar 

  8. Cook, W. and Bracha, G. Mixin-based Inheritance. SIGPLAN Notices, Vol. 25, No. 10, October 1990, OOPSLA 90.

    Google Scholar 

  9. Ferber, Jacques. Computational Reflection in Class Based Object Oriented Languages. SIGPLAN Notices, Vol. 24, No. 10, October 1989. OOPSLA 89.

    Google Scholar 

  10. Foote, Brian and Johnson, Ralph. Reflective Facilities in Smalltalk-80. SIGPLAN Notices, Vol. 24, No. 10, October 1989. OOPSLA 89.

    Google Scholar 

  11. Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John. Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing Series, Addison-Wesley, Reading, MA, 1994.

    Google Scholar 

  12. Gil, Joseph and Lorenz, David. Environmental Acquisition: A new Inheritance-Like Abstraction Mechanism. SIGPLAN Notices, Vol. 31, No. 10, October 1996, OOPSLA'96.

    Google Scholar 

  13. Goldberg, Adele and Robson, D. Smalltalk-80: The Language and its Implementation. Addison-Wesley, 1983.

    Google Scholar 

  14. Golm, M. Design and Implementation of a Meta Architecture for Java. Diplomarbeit im Fach Informatik, Friedrich-Alexander Uniersität, Erlangen-Nürnberg, Jan 1997.

    Google Scholar 

  15. GuimarÃes, José de Oliveira. Filtros para Objetos. PhD thesis, 1996. An English version of the thesis is also available with the title Shells to Objects.

    Google Scholar 

  16. GuimarÃes, José de Oliveira. Shells: The Green Metaobjects. http://www.dc.ufscar.br/~jose/shell.html.

    Google Scholar 

  17. GuimarÃes, José de Oliveira. The Green Language. http://www.dc.ufscar.br/~jose/green.html.

    Google Scholar 

  18. Ibrahim, Mamdouh and Bejcek, W. and Cummins, F. Instance Specialization without Delegation. Journal of Object-Oriented Programming, June 1991.

    Google Scholar 

  19. Ibrahim, Mamdouh. Reflection in Object-Oriented Programming. International Journal on Artificial Intelligence Tools, Vol. 1, No. 1, 1992.

    Google Scholar 

  20. Maes, Pattie. Concepts and Experiments in Computational Reflection. SIGPLAN Notices, Vol. 22, No. 12, December 1987. OOPSLA 87.

    Google Scholar 

  21. Mezini, Mira. Dynamic Object Evolution without Name Collisions. Proceedings of ECOOP'97. Lecture Notes in Computer Science No. 1241, 1997.

    Google Scholar 

  22. Oliva, Alexandre. The Reflexive Architecture of Guaraná. http://www.dcc.unicamp.br/~oliva/guarana.ps.gz.

    Google Scholar 

  23. O'Shea, Tim. Panel: The Learnability of Object-Oriented Programming Systems. SIGPLAN Notices, Vol. 21, No. 11, November 1986, OOPSLA 86.

    Google Scholar 

  24. Ossher, Harold and Harrison, Willian. Combination of Inheritance Hierarchies. SIGPLAN Notices, Vol. 27, No. 10, October 1992, OOPSLA'92.

    Google Scholar 

  25. Prehofer, Christian. Feature-Oriented Programming: A Fresh Look at Objects. Proceedings of ECOOP'97. Lecture Notes in Computer Science No. 1241, 1997.

    Google Scholar 

  26. Seiter, Linda; Palsberg, Jeans, and Lieberherr, Karl. Evolution of Object Behavior using Context Relations. Accepted to publication in IEEE Transactions on Software Engineering. Available at http://www.ccs.neu.edu/research/demeter/biblio/context.html.

    Google Scholar 

  27. Steyaert, Patrick at al. Nested Mixin-Methods in Agora. Proceedings of ECOOP'93. Lecture Notes in Computer Science No. 707, 1993.

    Google Scholar 

  28. Templ, Joseph. Reflection in Oberon. In ECOOP'92 Workshop on Object-Oriented Reflection and Metalevel Architectures.

    Google Scholar 

  29. Templ, Joseph. Metaprogramming in Oberon. Swiss Federal Institute of Technology, Zurich, 1994.

    Google Scholar 

  30. Tomioka, Elisa; GuimarÃes, José de Oliveira; Prado, AntÔnio Francisco do. R-Java: uma ExtensÃo de Java com Metaobjetos. In English: R-Java, a Java Extension with Metaobjects. Federal University of SÃo Carlos, SP, Brazil. Unpublished report, 1998.

    Google Scholar 

  31. Wu, Z. and Schwiderski, S. Reflective Java: Making Java Even More Flexible. FTP: Architecture Projects Management Limited (apm@ansa.co.uk), Cambridge, UK, 1997.

    Google Scholar 

  32. Java Core Reflection: API and Specification. Java Soft, Mountain View, CA, USA, October 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

de Oliveira GuimarÃes, J. (1998). Reflection for statically typed languages. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054103

Download citation

  • DOI: https://doi.org/10.1007/BFb0054103

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64737-9

  • Online ISBN: 978-3-540-69064-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics