[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

A Generic Reification Technique for Object-Oriented Reflective Languages

Published: 01 March 2001 Publication History

Abstract

Computational reflection is gaining interest in practical applications as witnessed by the use of reflection in the Java programming environment and recent work on reflective middleware. Reflective systems offer many different reflection programming interfaces, the so-called Meta-Object Protocols (MOPs). Their design is subject to a number of constraints relating to, among others, expressive power, efficiency and security properties. Since these constraints are different from one application to another, it would be desirable to easily provide specially-tailored MOPs.
In this paper, we present a generic reification technique based on program transformation. It enables the selective reification of arbitrary parts of object-oriented meta-circular interpreters. The reification process is of fine granularity: individual objects of the run-time system can be reified independently. Furthermore, the program transformation can be applied to different interpreter definitions. Each resulting reflective implementation provides a different MOP directly derived from the original interpreter definition.

References

[1]
1. McAffer, J. Meta-level programming with CODA. In Proceedings of ECOOP, LNCS Vol. 952, Springer Verlag, 1995, pp. 190-214.
[2]
2. Asai, K., Matsuoka, S., and Yonezawa, A. Duplication and partial evaluation--For a better understanding of reflective languages. Lisp and Symbolic Computation 9(2/3) (1996) 203-241.
[3]
3. Blair, G. and Campbell, R. (chairs). Workshop on Reflective Middleware, 2000. http://www.comp. lancs.ac.uk/computing/RM2000/.
[4]
4. Braux, M. and Noyé, J. Towards partial evaluating reflection in JAVA. In Proceedings of Workshop on Partial Evaluation and Semantics-Based Program Manipulation, 2000. ACM Press, pp. 2-11.
[5]
5. Briot, J.P. and Cointe, P. Programming with explicit metaclasses in SMALLTALK. Proceedings of OOPSLA, ACM SIGPLAN Notices 24(10) (1989) 419-431.
[6]
6. Chiba, S. A metaobject protocol for C++. Proceedings of OOPSLA, ACM SIGPLAN Notices 30(10) (1995) 285-299.
[7]
7. Cointe, P. Metaclasses are first class objects: The OBJVLISP model. Proceedings of OOPSLA, ACM SIGPLAN Notices 22(12) (1987) 156-162.
[8]
8. Cointe, P. CLOS and SMALLTALK: A comparison. In Object-Oriented Programming: The CLOS perspectives? , A. Päpcke (Ed.). MIT Press, 1993, Ch. 9, pp. 215-274.
[9]
9. Cointe, P. (Ed.). Proceedings of Reflection'99, LNCS Vol. 1616, Springer Verlag, 1999.
[10]
10. Danvy, O. and Malmkjær, K. Intensions and extensions in a reflective tower. In Proceedings of the ACM Conference on Lisp and Functional Programming, 1988, pp. 327-341.
[11]
11. Douence, R. and Südholt, M. On the lightweight and selective introduction of reflective capabilities in applications. International Workshop on Reflection and Metalevel Architectures at ECOOP, 2000. ftp://ftp.disi.unige.it/person/CazzolaW/EWRMA/sudholt.ps.gz
[12]
12. Gamma, E., Helms, R., Johnson, R., and Vlissides, J. Design Patterns. Addison-Wesley, 1995.
[13]
13. Goldberg, A. and Robson, D. SMALLTALK 80, The Language and its Implementation. Addison-Wesley, 1983.
[14]
14. Golm, M. Design and implementation of a meta architecture for Java. Master's Thesis, Universität Erlangen, 1997.
[15]
15. Gowing, B. and Cahill, V. Meta-object protocols for C++: The IGUANA approach. In Informal Proceedings of Reflection'96, 1996, pp. 137-152.
[16]
16. Itoh, J.-I., Yokote, Y., and Lea, R. Using meta-objects to support optimisation in the Apertos operating system. In Proceedings of the USENIX Conference on Object-Oriented Technologies (COOTS), 1995. USENIX Association, pp. 147-158.
[17]
17. JAVA home page. Sun Microsystems, Inc. http://java.sun.com.
[18]
18. Kiczales, G., des Rivières, J., and Bobrow, D. The Art of the Metaobject Protocol. MIT Press, 1991.
[19]
19. Maes, P. Concepts and experiments in computational reflection. Proceedings of OOPSLA, ACM SIGPLAN Notices 22(12) (1987) 147-155.
[20]
20. Malenfant, J., Dony, C., and Cointe, P. A semantics of introspection in a reflective prototype-based language. Lisp and Symbolic Computation 9(2/3) (1996) 153-180.
[21]
21. Mendhekar, A. and Friedman, D.P. Towards a theory of reflective programming languages. In Informal Proceedings of the Third Workshop on Reflection and Metalevel Architectures in Object-Oriented Programming at OOPSLA, 1993.
[22]
22. METAJ (version 1.1), http://www.emn.fr/sudholt/research/metaj/.
[23]
23. De Meuter, W. AGORA: The story of the simplest MOP in the world. In Prototype-based Programming, J. Noble et al. (Eds.), Springer Verlag, 1998.
[24]
24. Muller, R. M-LISP: A representation-independant dialect of LISP with reduction semantics. ACM TOPLAS 14(4) (1992) 589-616.
[25]
25. Rivard, F. SMALLTALK: A reflective language. In Informal Proceedings of Reflection'96, 1996, pp. 21-38.
[26]
26. Smith, B.C. Reflection and semantics in LISP. In Proceedings of POPL, 1984. ACM Press, pp. 23-35.
[27]
27. Wand, M. The theory of Fexprs is trivial. Lisp and Symbolic Computation 10(3) (1998) 189-199.
[28]
28. Wand, M. and Friedman, D.P. The mystery of the tower revealed: A non-reflective description of the reflective tower. Lisp and Symbolic Computation 1(1) (1988) 11-38.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Higher-Order and Symbolic Computation
Higher-Order and Symbolic Computation  Volume 14, Issue 1
March 2001
85 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 March 2001

Author Tags

  1. OO languages
  2. language implementation
  3. program transformation
  4. reflection

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)A Survey of Metaprogramming LanguagesACM Computing Surveys10.1145/335458452:6(1-39)Online publication date: 16-Oct-2019
  • (2016)Static meta-object protocols: towards efficient reflective object-oriented languagesCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892694(160-167)Online publication date: 14-Mar-2016
  • (2010)PinocchioACM SIGPLAN Notices10.1145/1932682.186952245:10(774-789)Online publication date: 17-Oct-2010
  • (2010)PinocchioProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869522(774-789)Online publication date: 17-Oct-2010
  • (2007)Reflection in membership equational logic, many-sorted equational logic, Horn logic with equality, and rewriting logicTheoretical Computer Science10.1016/j.tcs.2006.12.009373:1-2(70-91)Online publication date: 10-Mar-2007
  • (2001)Aspect-oriented programming using reflection and metaobject protocolsCommunications of the ACM10.1145/383845.38386544:10(95-97)Online publication date: 1-Oct-2001

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media