Compositional reasoning about aspect interference

Oliveira and colleagues recently developed a powerful model to reason about mixin-based composition of effectful components and their interference, exploiting a wide variety of techniques such as equational reasoning, parametricity, and algebraic laws about monadic effects. This work addresses the issue of reasoning about interference with effectful aspects in the presence of unrestricted quantification through pointcuts. While global reasoning isrequired, we show that it is possible to reason in a compositional manner, which is key for the scalability of the approach in the face of large and evolving systems. We establish a general equivalence theorem that is based on a few conditions that can be established, reused, and adapted separately as the system evolves. Interestingly, one of these conditions, local harmlessness, can be proven by a translation to the mixin setting, making it possible to directly exploit previously established results about certain kinds of harmless extensions.

[1]  Jonathan Aldrich,et al.  Open Modules: Modular Reasoning About Advice , 2005, ECOOP.

[2]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[3]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.

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

[5]  Martin C. Rinard,et al.  A classification system and analysis for aspect-oriented programs , 2004, SIGSOFT '04/FSE-12.

[6]  David Walker,et al.  Harmless advice , 2006, POPL '06.

[7]  Christian Prehofer,et al.  Semantic reasoning about feature composition via multiple aspect-weavings , 2006, GPCE '06.

[8]  Gary T. Leavens,et al.  Ptolemy: A Language with Quantified, Typed Events , 2008, ECOOP.

[9]  Eric Bodden,et al.  Join point interfaces for safe and flexible decoupling of aspects , 2014, TSEM.

[10]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[11]  Shriram Krishnamurthi,et al.  Semantics and scoping of aspects in higher-order languages , 2006, Sci. Comput. Program..

[12]  Shmuel Katz,et al.  Specification and verification of event detectors and responses , 2013, AOSD.

[13]  David Walker,et al.  AspectML: A polymorphic aspect-oriented functional programming language , 2008, TOPL.

[14]  Gary T. Leavens,et al.  Translucid contracts: expressive specification and modular verification for aspect-oriented interfaces , 2011, AOSD '11.

[15]  Rémi Douence,et al.  Aspects preserving properties , 2008, PEPM '08.

[16]  Éric Tanter,et al.  AspectScript: expressive aspects for the web , 2010, AOSD.

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

[18]  Paul Hudak,et al.  Monad transformers and modular interpreters , 1995, POPL '95.

[19]  Shmuel Katz,et al.  A superimposition control construct for distributed systems , 1993, TOPL.

[20]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[21]  Bruno C. d. S. Oliveira,et al.  MRI: Modular reasoning about interference in incremental programming , 2012, J. Funct. Program..

[22]  Gary T. Leavens,et al.  Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning , 2002 .

[23]  Bruno C. d. S. Oliveira,et al.  EffectiveAdvice: disciplined advice with explicit effects , 2010, AOSD.

[24]  Nicolas Tabareau,et al.  A typed monadic embedding of aspects , 2013, AOSD.

[25]  Gary T. Leavens,et al.  MAO: Ownership and Effects for More Effective Reasoning About Aspects , 2007, ECOOP.

[26]  Shmuel Katz Aspect Categories and Classes of Temporal Properties , 2006, LNCS Trans. Aspect Oriented Softw. Dev..