An Extensible Kernel Language for AOP

Éric Tanter · 2006

Reflex is a versatile kernel for AOP in Java; as such, it provides a number of core abstractions based on both structural and behavioral reflection to implement a variety of aspectoriented approaches. In this paper, we introduce an extensible concrete syntax for Reflex, leading to a concise kernel language for AOP that can be extended to cover new features integrated in the kernel framework. We illustrate this extensibility with both control flow abstractions and declarative aspect composition. Furthermore, since we use the MetaBorg approach based on the syntax definition formalism SDF and the transformation language Stratego, we can embed the Reflex kernel language into the Java language and further (syntactic) extensions based on Reflex can similarly be embedded in Java+Reflex. 1. BACKGROUND Reflex is a versatile kernel for multi-language AOP in Java [3]. It is a Java framework that extends Java with structural and behavioral reflective abilities. The generality of these abilities makes it a suitable backend for implementing several AOP frameworks and languages. A fundamental feature of such a kernel is its ability to detect interactions between aspects written in dierent

Read the paper · More papers on PaperTik