Implementing a real computational-environment jump in order to develop a runtime-adaptable reflective platform
-
1
Universidad de Oviedo
info
ISSN: 0362-1340, 1558-1160
Année de publication: 2002
Volumen: 37
Número: 8
Pages: 35-44
Type: Article
D'autres publications dans: ACM Sigplan Notices
Résumé
Different techniques are emerging in order to build adaptable computing systems and software engineering methods. Two examples in the software engineering field are aspect-oriented programming and multi-dimensional separation of concerns. They distinguish functional code from reusable crosscutting aspects, creating the final application by weaving the program and its specific aspects. They lack runtime adaptability, simply offering design-time adaptation.Dynamic adaptability is offered by MOP-based reflective systems. However, meta-object protocols (MOPs) restrict the amount of features an application may customize, and the way they can express this customization. Furthermore, this kind of systems uses a fixed programming language.What we present in this paper is a non-restrictive reflective system that achieves a real computational jump, making every application and language feature adaptable at runtime-without any previous restriction. Moreover, the reflection mechanism is independent of the language selected by the programmer.
Références bibliographiques
- Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J. M., and Irwin, J. 1997. Aspect Oriented Programming. Proceedings of European Conference on Object-Oriented Programming Conference, Finland, June 1997.
- Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. Getting Started with AspectJ. 2001. Communications of the ACM, volume 44 issue 10, 59-65.
- Kiczales, G., Des Rivieres, J., and Bobrow, D. G. 1992. The Art of Metaobject Protocol. MIT Press.
- Ortín, F., and Cueva, J. M. Building a Completely Adaptable Reflective System. 2001. European Conference on Object Oriented Programming ECOOP'2001. Workshop on Adaptive Object-Models and Metamodeling Techniques, Budapest, Hungary, June 2001.
- Tatsubori, M., and Chiba, S. 1998. Programming Support of Design Patterns with Compile-time Reflection. OOPSLA '98 Workshop on Reflective Programming, Vancouver, Canada, October 1998.
- Chiba S., and Tatsubori, M. 1998. A Yet Another java.lang.Class. 1998. ECOOP '98 Workshop on Reflective Object Oriented Programming and Systems, Brussels, Belgium, July 1998.
- Kleinöder J., and Golm M. MetaJava: An Efficient Run-Time Meta Architecture for Java™. 1996. International Workshop on Object Orientation in Operating Systems, IWOOOS'96, Seattle, Washington, October 1996.
- Douence, R., and Südholt, M. The next Reflective 700 Object-Oriented Languages. 1999. Technical Report 99-1-INFO, École des Mines de Nantes, Dept. Informatique, France.
- Rossum, G. Python Reference Manual. 2001. Fred L. Drake Jr. Editor. Relesase 2.1.
- Andersen, A. A note on reflection in Python 1.5. 1998. Distributed Multimedia Research Group Report, MPG-98-05, Lancaster University, UK, March 1998.
- Smith, B. C. Reflection and Semantics a Procedural Language. 1982. Ph. D. Thesis. Massachusetts Institute of Technology MIT/LCS/TR-272.
- Hürsch, W. L., and Videira Lopes, C. Separation of Concerns. 1995. Technical Report UN-CCS-95-03, Northeastern University, Boston, January 1995.