On dynamically-scoped crosscutting mechanisms

Many crosscutting mechanisms proposed in the literature offer means to restrain aspects to some dynamically-defined scopes. Dynamically-scoped mechanisms are particularly interesting because of the flexibility, expressiveness, and control they give over structural and behavioral changes made by aspects. Since the nature of dynamic scopes as well as the scoping mechanisms themselves greatly vary among proposals, It is relatively complex to compare them. This paper aims at filling this gap by proposing a first characterization of dynamically-scoped crosscutting mechanisms, hence providing a reference frame for comparing different approaches. As a result, this work clarifies some differences between related approaches, suggests possible tracks for further exploration of the design space of such mechanisms, and discusses some issues raised by dynamically-scoped aspects.

[1]  Hidehiko Masuhara,et al.  A Compilation and Optimization Model for Aspect-Oriented Programs , 2003, CC.

[2]  Wim Vanderperren,et al.  Stateful Aspects in JAsCo , 2005, SC@ETAPS.

[3]  Alexandre Bergel,et al.  Context-Aware Aspects , 2006, SC@ETAPS.

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

[5]  Ramnivas Laddad,et al.  Aspect-Oriented Programming Will Improve Quality / Aspect-Oriented Programming: the Real Costs? , 2003, IEEE Softw..

[6]  Alexandre Bergel,et al.  Classboxes: A Minimal Module Model Supporting Local Rebinding , 2003, JMLC.

[7]  Robert Hirschfeld,et al.  Extending Advice Activation in AspectS , 2006 .

[8]  Gail C. Murphy,et al.  Proceedings of the 3rd international conference on Aspect-oriented software development , 2004 .

[9]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

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

[11]  Denis Caromel,et al.  Partial behavioral reflection: spatial and temporal selection of reification , 2003, OOPSLA '03.

[12]  Rémi Douence,et al.  Composition, reuse and interaction analysis of stateful aspects , 2004, AOSD '04.

[13]  Jim Hugunin,et al.  Advice weaving in AspectJ , 2004, AOSD '04.

[14]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[15]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

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

[17]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[18]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[19]  Rémi Douence,et al.  Trace-Based Aspects , 2004 .

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

[21]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.

[22]  LhotákOndřej,et al.  Adding trace matching with free variables to AspectJ , 2005 .

[23]  Éric Tanter,et al.  A versatile kernel for multi-language AOP , 2005, GPCE'05.

[24]  Robert Hirschfeld,et al.  Language constructs for context-oriented programming: an overview of ContextL , 2005, DLS '05.

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

[26]  Oscar Nierstrasz,et al.  Classbox/J: controlling the scope of change in Java , 2005, OOPSLA '05.