Taming aspects with membranes

In most aspect-oriented languages, aspects have an unrestricted global view of computation. Several approaches for aspect scoping and more strongly encapsulated modules have been formulated to restrict this controversial power of aspects. This paper leverages the concept of programmable membranes of Boudol, Schmitt and Stefani, as a means to tame aspects by customizing the semantics of aspect weaving locally. Membranes have the potential to subsume previous proposals in a uniform framework. Because membranes give structure to computation, they enable flexible scoping of aspects; because they are programmable, they enable visibility and safety constraints, both for the advised program and for the aspects. The power and simplicity of membranes open interesting perspectives to unify multiple approaches that tackle the unrestricted power of aspects.

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

[2]  Éric Tanter,et al.  Beyond static and dynamic scope , 2009, DLS '09.

[3]  Eric Bodden,et al.  Racer: effective race detection using aspectj , 2008, ISSTA '08.

[4]  Gérard Boudol A Generic Membrane Model (Note) , 2004, Global Computing.

[5]  Eric Bodden,et al.  Join point interfaces for modular reasoning in aspect-oriented programs , 2011, ESEC/FSE '11.

[6]  Walter Binder,et al.  Composition of dynamic analysis aspects , 2010, GPCE '10.

[7]  Johan Fabry,et al.  PHANtom: a modern aspect language for Pharo Smalltalk , 2011, IWST '11.

[8]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[9]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[10]  Nicolas Tabareau,et al.  Exploring Membranes for Controlling Aspects , 2011 .

[11]  Shigeru Chiba,et al.  Avoiding Confusion in Metacircularity: The Meta-Helix , 1996, ISOTAS.

[12]  Alan Schmitt,et al.  An Abstract Machine for the Kell Calculus , 2005, FMOODS.

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

[14]  Sven Apel,et al.  Types and modularity for implicit invocation with implicit announcement , 2010, TSEM.

[15]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

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

[17]  Alan Schmitt,et al.  The Kell Calculus: A Family of Higher-Order Distributed Process Calculi , 2004, Global Computing.

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

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

[20]  Éric Tanter Execution levels for aspect-oriented programming , 2010, AOSD.

[21]  Éric Tanter Expressive scoping of dynamically-deployed aspects , 2008, AOSD.