Trace-Based Aspects

This chapter presents trace-based aspects which take into account the history of program executions in deciding what aspect behavior to invoke. Such aspects are defined in terms of execution traces and may express relations between different events. Weaving is accomplished through an execution monitor which modifies the base program execution as defined by the aspects. We motivate trace-based aspects and explore the trade-off between expressiveness and property enforcement/analysis. More concretely, we first present an expressive model of trace-based aspects enabling proofs of aspect properties by equational reasoning. Using a restriction of the aspect language to regular expressions, we show that it becomes possible to address the difficult problem of interactions between conflicting aspects. Finally, by restricting the actions performed by aspects, we illustrate how to keep the semantic impact of aspects under control and to implement weaving statically.

[1]  Flemming Nielson,et al.  Semantics with applications - a formal introduction , 1992, Wiley professional computing.

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

[3]  Radha Jagadeesan,et al.  A Calculus of Untyped Aspect-Oriented Programs , 2003, ECOOP.

[4]  Rémi Douence,et al.  A Framework for the Detection and Resolution of Aspect Interactions , 2002, GPCE.

[5]  Shmuel Katz,et al.  Superimpositions and Aspect-oriented Programming , 2003, Comput. J..

[6]  Hubert Comon-Lundh,et al.  Disunification: A Survey , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[7]  Thomas Colcombet,et al.  Enforcing trace properties by program transformation , 2000, POPL '00.

[8]  Oege de Moor,et al.  Static analysis of aspects , 2003, AOSD '03.

[9]  Robert E. Filman,et al.  Realizing Aspects by Transforming for Events , 2002 .

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

[11]  Olivier Motelet,et al.  A Formal Definition of Crosscuts , 2001, Reflection.

[12]  Don Cohen,et al.  Automatic Monitoring of Software Requirements , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[13]  Patrice Godefroid,et al.  Model checking for programming languages using VeriSoft , 1997, POPL '97.

[14]  Ralf Lämmel,et al.  A semantical approach to method-call interception , 2002, AOSD '02.

[15]  Ralf Lämmel,et al.  Semantics of Method Call Interception , 2000 .

[16]  Fred B. Schneider,et al.  Enforceable security policies , 2000, TSEC.

[17]  James H. Andrews,et al.  Process-Algebraic Foundations of Aspect-Oriented Programming , 2001, Reflection.

[18]  Shriram Krishnamurthi,et al.  Pointcuts and advice in higher-order languages , 2003, AOSD '03.

[19]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

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

[21]  Kris De Volder Aspect-Oriented Logic Meta Programming , 1998, ECOOP Workshops.

[22]  Amy P. Felty,et al.  Feature specification and automated conflict detection , 2003, TSEM.

[23]  Gregor Kiczales,et al.  A semantics for advice and dynamic join points in aspect-oriented programming , 2001, TOPL.