Abstract
Computational reflection is a well-known technique applied in many existing programming languages ranging from functional to object-oriented languages. In this paper we study the possibilities and benefits of introducing and using reflection in a rule-based model transformation language. The paper identifies some language abstractions to achieve structural and behavioral reflection. Reflective features are motivated by examples of problems derived from the experience with currently used transformation languages. Example solutions are given by using an experimental language with reflective capabilities. The paper also outlines possible implementation strategies for adding reflection to a language and discusses their advantages and disadvantages.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Akehurst, D., Bordbar, B., Evans, M.J., Howells, W.G.J., McDonald-Maier, K.D.: SiTra—Simple Transformations in Java. MoDELS 2006, pp. 351–164. Genova, Italy (2006)
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting Object Interactions Using Composition Filters. ECOOP Workshop on Object-based Distributed Programming, pp. 152–184. Darmstadt, Germany (1993)
Budinsky F., Steinberg D., Raymond Ellersick R., Ed Merks E., Brodsky S.A., Grose T.J.: Eclipse Modeling Framework. Addison Wesley, Reading (2003)
Chiba, S.: Load-time structural reflection in Java. ECOOP 2000, pp. 313–336. Sophia Antipolis, France (2000)
Cuadrado, J.S., Molina, J.G., Tortosa, M.M.: RubyTL: A Practical, Extensible Transformation Language. ECMDA-FA 2006, pp. 158–172. Bilbao, Spain (2006)
Domain-Specific Aspect Languages Workshops Series. http://dsal.dcc.uchile.cl
Havinga, W., Nagy, I., Bergmans, L., Aksit, M.: Detecting and Resolving Ambiguities Caused by Inter-dependent Introductions. AOSD 2006, pp. 214–225. Bonn, Germany (2006)
Herzeel, C., Costanza, P., D’Hondt, T.: Reflection for the Masses. Self-Sustaining Systems 2008, pp. 87–122. Potsdam, Germany (2008)
Hudak P.: Building Domain-Specific Embedded Languages. ACM Comput. Surv 28(4es), 196 (1996)
Jouault, F., Kurtev, I.: Transforming Models with ATL. Model Transformations in Practice Workshop, MoDELS 2005 Conference, Montego Bay, Jamaica (2005)
Jouault, F.: Loosely Coupled Traceability for ATL, ECMDA 2005 Workshop on Traceability. Nuremberg, Germany (2005)
Jouault, F., Bézivin, J.: KM3: a DSL for Metamodel Specification. FMOODS 2006, pp. 171–185. Bologna, Italy (2006)
Kiczales G., Rivières J.D., Bobrow D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. EOOP 2001, pp. 327–354. Budapest, Hungary (2001)
Kojarski, S., Lorenz, D. H.: Awesome: an Aspect Co-weaving System for Composing Multiple Aspect-Oriented Extensions. OOPSLA 2007, pp. 515–534. Montreal, Canada (2007)
Kurtev, I.: Adaptability of Model Transformations, PhD thesis, University of Twente, The Netherlands. ISBN 90-365-2184-X (2005)
Kurtev I., van den Berg K., Jouault F.: Rule-based modularization in model transformation languages illustrated with ATL. Sci. Comput. Program 68(3), 138–154 (2007)
Lawley, M., Steel, J.: Practical Declarative Model Transformation with Tefkat. MoDELS Satellite Events. pp. 139–150, Montego Bay, Jamaica (2005)
Leitner, A., Eugster, P., Oriol, M., Ciupa, I.: Reflecting on an Existing Programming Language. TOOLS Europe 2007, JOT 6, (9) (2007)
Lewis, B., Ducassé, M.: Using events to debug Java programs backwards in time. OOPSLA Companion 2003, pp. 96–97. Anaheim, CA, USA (2003)
Maes, P.: Computional reflection. PhD thesis, Artificial intelligence laboratory, Vrije Universiteit, Brussels, Belgium (1987)
McAffer, J.: Engineering the meta-level. Reflection 1996, pp. 39–61. San Francisco, CA, USA (1996)
Mistral web site. http://www.vf.utwente.nl/~kurtev/mistral/
OMG. MOF 2.0 Query/Views/Transformations RFP. OMG document ad/2002-04-10 (2002)
Paakki J.: Attribute Grammar Paradigms—A High-Level Methodology in Language Implementation. ACM Comput. Surv 27(2), 196–255 (1995)
Pawlak, R., Seinturier, L., Duchien, L., Floring, G.: In: JAC: A flexible solution for aspect-oriented programming in Java. 3rd International Conference on Metalevel Architectures and Advanced Separation of Concerns, Japan (2001)
Smith, B.C.: Reflection and Semantics in Lisp. In: 14th Annual ACM Symposium on Principles of Programming Languages 1984, pp. 23–35. Salt lake City, USA (1984)
Tanter, E., Noyé, J., Caromel, D., Cointe, P.: Partial Behavioral Reflection: Spatial and Temporal Selection of Reification. OOPSLA 2003, pp. 27–46. Anaheim, CA, USA (2003)
Tanter, E.: From Metaobject Protocols to Versatile Kernels for Aspect-Oriented Programming. PhD thesis, University of Nantes and University of Chile (2004)
Tisi, M., Jouault, F., Fraternali, P., Ceri, S., Bezivin, J.: On the Use of Higher-Order Model Transformations. ECMDA 2009, pp. 18–32, Enschede, the Netherlands (2009)
Varro, D., Pataricza, A.: Generic and Meta-transformations for Model Transformation Engineering. UML2004, pp. 290–304. Lisbon, Portugal (2004)
Wand, M., Friedman, D.P.: The mystery of the tower revealed: a non-reflective description of the reflective tower. In: ACM Symposium on LISP and Functional Programming 1986, pp. 298–307. Cambridge (1986)
Open Access
This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Jeff Gray.
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Kurtev, I. Application of reflection in a model transformation language. Softw Syst Model 9, 311–333 (2010). https://doi.org/10.1007/s10270-009-0138-z
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-009-0138-z