AOSD.net
Conference archive · Edition 9 · Best Paper
2010

Execution Levels For Aspect-Oriented Programming

Best Paper Award · Éric Tanter · Rennes & Saint-Malo, France

The authorAbout Éric Tanter

Portrait of Prof. Éric Tanter of the University of Chile

Éric Tanter

Professor · Computer Science Department, University of Chile

Éric Tanter is a professor in the Computer Science Department at the University of Chile. For his excellent work on the paper titled Execution Levels For Aspect-Oriented Programming, he was awarded the Best Paper Award at AOSD 2010. His research interests include programming, software adaptation, and modularity, among others.

The paperEscaping Infinite Regression

The paper seeks to address the various levels of complexity in aspect-oriented programming — where advice evaluation, the base-level computation specific to AOP that separates it from reflection, comes at a price: infinite regression.The problem in brief

In AOP, advice evaluation is regarded as one of the foundations of program evaluation. This base-level computation is what differentiates reflection from AOP — but it comes at a price. Infinite regression can be raised by the evaluation of pointcuts, by advice at the base level, and by computation at the base level.

Illustration of execution levels stacked above a base program
Execution levels let aspects run and observe at specific, separate levels.

The paper addresses this problem by introducing execution levels into the programming language concerned. This ensures that aspects run — and observe — at specific, different levels. The method adopts defensive tactics that circumvent infinite regression, while affording advanced programmers the skill to override the default via level-shifting operators.

Theoretical and practical execution levels are then studied. First comes the relevance of the issues handled by execution levels in current aspect-oriented programs; afterwards, the formalization of the semantics of execution levels — with proof given that the default semantics are genuinely free of the infinite regression known as aspect loops. The paper then reports current implementations of execution levels in aspect-oriented extensions of JavaScript, Scheme, and Java — opening the way to a discussion of their implementation methods and existing applications.