Implementing a real computational-environment jump in order to develop a runtime-adaptable reflective platform

  1. Ortín, Francisco 1
  2. Cueva, Juan Manuel 1
  1. 1 Universidad de Oviedo
    info

    Universidad de Oviedo

    Oviedo, España

    ROR https://ror.org/006gksa02

Revista:
ACM Sigplan Notices

ISSN: 0362-1340 1558-1160

Ano de publicación: 2002

Volume: 37

Número: 8

Páxinas: 35-44

Tipo: Artigo

DOI: 10.1145/596992.597002 GOOGLE SCHOLAR

Outras publicacións en: ACM Sigplan Notices

Resumo

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.

Referencias bibliográficas

  • 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.