Prototyping and Composing Aspect Languages

Domain specific aspect languages (DSALs) are becoming more popular because they can be designed to represent recurring concerns in a way that is optimized for a specific domain. However, the design and implementation of even a limited domain-specific aspect language can be a tedious job. To address this, we propose a framework that offers a fast way to prototype implementations of domain specific aspect languages. A particular goal of the framework is to be general enough to support a wide range of aspect language concepts, such that existing language concepts can be easily used, and new language concepts can be quickly created. We briefly introduce the framework and its underlying model, as well as the workflow used when implementing DSALs. Subsequently, we show mappings of several domain specific aspect languages to demonstrate the framework. Since in our approach the DSALs are mapped to a common model, the framework provides an integrating platform allowing us to compose programs that use aspects written in multiple DSALs. The framework also provides explicit mechanisms to specify composition of advices written in multiple DSALs.

[1]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[2]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[3]  Luca Cardelli,et al.  ECOOP 2003 – Object-Oriented Programming , 2003, Lecture Notes in Computer Science.

[4]  Naoyasu Ubayashi,et al.  Association aspects , 2004, AOSD '04.

[5]  David H. Lorenz,et al.  Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions , 2007, OOPSLA.

[6]  Éric Tanter,et al.  Aspects of Composition in the Reflex AOP Kernel , 2006, SC@ETAPS.

[7]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[8]  Anya Helene,et al.  DSAL = library+notation: Program Transformation for Domain-Specific Aspect Languages , 2006 .

[9]  Theo D'Hondt,et al.  Is Domain Knowledge an Aspect? , 1999, ECOOP Workshops.

[10]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[11]  Lodewijk Bergmans,et al.  Composing Aspects at Shared Join Points , 2005, NODe/GSEM.

[12]  Rémi Douence,et al.  Composition, reuse and interaction analysis of stateful aspects , 2004, AOSD '04.

[13]  Ondrej Lhoták,et al.  abc: an extensible AspectJ compiler , 2005, AOSD '05.

[14]  Éric Tanter,et al.  A versatile kernel for multi-language AOP , 2005, GPCE'05.

[15]  Mira Mezini,et al.  A flexible architecture for pointcut-advice language implementations , 2007, VMIL.

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[17]  Istvan Nagy On the Design of Aspect-Oriented Composition Models for Software Evolution , 2006 .

[18]  Ankit Shah,et al.  XAspects: an extensible system for domain-specific aspect languages , 2003, OOPSLA '03.

[19]  Kim Mens,et al.  Building Composable Aspect-Specific Languages with Logic Metaprogramming , 2002, GPCE.

[20]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[21]  David H. Lorenz,et al.  Identifying Feature Interactions in Multi-Language Aspect-Oriented Frameworks , 2007, 29th International Conference on Software Engineering (ICSE'07).

[22]  Lodewijk Bergmans,et al.  An Abstract Metamodel for Aspect Languages , 2006 .