A Fine-Grained Join Point Model for More Reusable Aspects

We propose a new join point model for aspect-oriented programming (AOP) languages. In most AOP languages including AspectJ, a join point is a time interval of an action in execution. While those languages are widely accepted, they have problems in aspects reusability, and awkwardness when designing advanced features such as tracematches. Our proposed join point model, namely the point-in-time join point model redefines join points as the moments both at the beginning and end of actions. Those finer-grained join points enable us to design AOP languages with better reusability and flexibility of aspects. In this paper, we designed an AspectJ-like language based on the point-in-time model. We also give a denotational semantics of a simplified language in a continuation passing style, and demonstrate that we can straightforwardly model advanced language features such as exception handling and cflow pointcuts.

[1]  Jonas Bonér,et al.  What are the key issues for commercial AOP use: how does AspectWerkz address them? , 2004, AOSD '04.

[2]  Olivier Danvy,et al.  Abstracting control , 1990, LISP and Functional Programming.

[3]  John R. Gurd,et al.  A join point for loops in AspectJ , 2006, AOSD '06.

[4]  Hridesh Rajan,et al.  Aspect language features for concern coverage profiling , 2005, AOSD '05.

[5]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[6]  Arie van Deursen,et al.  AJHotDraw : A showcase for refactoring to aspects — Current Status and Invitation to Join — , 2005 .

[7]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[8]  Akinori Yonezawa,et al.  Continuation Join Points , 2006 .

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

[10]  Shigeru Chiba,et al.  Bugdel: an aspect-oriented debugging system , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[11]  Mitchell Wand A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming , 2001, SAIG.

[12]  Gary T. Leavens,et al.  Investigating the Semantics of Proceed , 2005 .

[13]  Robert J. Walker,et al.  Implicit context: easing software evolution and reuse , 2000, SIGSOFT '00/FSE-8.

[14]  David Walker,et al.  A theory of aspects , 2003, ICFP '03.

[15]  Mario Südholt,et al.  An expressive aspect language for system applications with Arachne , 2005, AOSD '05.

[16]  Hidehiko Masuhara,et al.  Dataflow Pointcut in Aspect-Oriented Programming , 2003, APLAS.

[17]  Rémi Douence,et al.  A Pointcut Language for Control-Flow , 2004, GPCE.