Building Composable Aspect-Specific Languages with Logic Metaprogramming

The goal of aspect-oriented programming is to modularize crosscutting concerns (or aspects) at the code level. These aspects can be defined in either a general-purpose language or in a language that is fine-tuned to a specific aspect in consideration. Aspect-specific languages provide more concise and more readable aspect declarations but are limited to a specific domain. Moreover, multiple aspects may be needed in a single application and composing aspects written in different aspect languages is not an easy task.To solve this composition problem, we represent both aspects and aspect languages as modularized logic metaprograms. These logic modules can be composed in flexible ways to achieve combinations of aspects written in different aspect-specific languages. As such, the advantages of both general-purpose and aspect-specific languages are combined.

[1]  Ian D. Benest,et al.  Chapter 3 – An Overview of Aspect , 1991 .

[2]  Gregor Kiczales,et al.  RG: A Case-Study for Aspect-Oriented Programming , 1997 .

[3]  Kim Mens,et al.  Supporting software development through declaratively codified programming patterns , 2002, Expert Syst. Appl..

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  Roel Wuyts,et al.  Declarative reasoning about the structure of object-oriented systems , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[6]  Elke Pulvermüller,et al.  Aspect Composition Applying the Design by Contract Principle , 2000, GCSE.

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

[8]  Stanley M. Sutton,et al.  Hyper/J™: multi-dimensional separation of concerns for Java™ , 2001, ICSE '02.

[9]  Tom Mens,et al.  A declarative evolution framework for object-oriented design patterns , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[10]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[11]  Kris De Volder Aspect-Oriented Logic Meta Programming , 1998, ECOOP Workshops.

[12]  Theo D'Hondt,et al.  Aspect-Orientated Logic Meta Programming , 1999, Reflection.

[13]  Laurence Duchien,et al.  JAC: A Flexible Solution for Aspect-Oriented Programming in Java , 2001, Reflection.

[14]  Bedir Tekinerdogan,et al.  Aspect Composition using Comparition Filters , 2002 .

[15]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[16]  Roel Wuyts,et al.  A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation , 2001 .

[17]  Mehmet Aksit,et al.  Software Architectures and Component Technology , 2001 .

[18]  John R. Gilbert,et al.  Aspect-Oriented Programming of Sparse Matrix Code , 1997, ISCOPE.

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

[20]  Cristina V. Lopes,et al.  Workshop on Aspects and Dimensions of Concern: Requirements on, and Challenge Problems for, Advanced Separation of Concerns , 2000, ECOOP Workshops.

[21]  Awais Rashid,et al.  A Hybrid Approach to Separation of Concerns: The Story of SADES , 2001, Reflection.