Skip to Main content Skip to Navigation

A Common Aspect Languages Interpreter

Ali Assaf 1, 2, 3
1 ASCOLA - Aspect and composition languages
Inria Rennes – Bretagne Atlantique , Département informatique - EMN, LINA - Laboratoire d'Informatique de Nantes Atlantique
Abstract : The value of using different (possibly domain-specific) aspect languages to deal with a variety of crosscutting concerns in the development of complex software systems is well recognized. One should be able to use several of these languages together in a single program. However, on the one hand, developing a new Domain-Specific Aspect Language (DSAL) in order to capture all common programming patterns of the domain takes a lot of time, and on the other hand, the designer of a new language should manage the interactions with the other languages when they are used together.
In this thesis, we introduce support for rapid prototyping and composing aspect languages based on interpreters. We start from a base interpreter of a subset of Java and we analyze and present a solution for its modular extension to support AOP based on a common semantics aspect base defined once and for all. The extension, called the aspect interpreter, implements a common aspect mechanism and leaves holes to be defined when developing concrete languages. The power of this approach is that the aspect languages are directly implemented from their operational semantics. This is illustrated by implementing a lightweight version of AspectJ. To apply the same approach and the same architecture to full Java without changing its interpreter (JVM), we reuse AspectJ to perform a first step of static weaving, which we complement by a second step of dynamic weaving, implemented through a thin interpretation layer. This can be seen as an interesting example of reconciling interpreters and compilers. We validate our approach by describing prototypes for AspectJ, EAOP, COOL and a couple of other DSALs and demonstrating the openness of our AspectJ implementation with two extensions, one dealing with dynamic scheduling of aspects and another with alternative pointcut semantics. Different aspect languages implemented with our framework can be easily composed. Moreover, we provide support for customizing this composition.
Complete list of metadatas

Cited literature [88 references]  Display  Hide  Download
Contributor : Noyé Jacques <>
Submitted on : Thursday, August 30, 2012 - 2:40:06 PM
Last modification on : Thursday, March 5, 2020 - 5:47:33 PM
Long-term archiving on: : Friday, December 16, 2016 - 8:45:53 AM


  • HAL Id : tel-00726510, version 1


Ali Assaf. A Common Aspect Languages Interpreter. Software Engineering [cs.SE]. Université de Nantes, 2011. English. ⟨tel-00726510⟩



Record views


Files downloads