Taming aspects with monads and membranes

Ismael Figueroa 1 Nicolas Tabareau 2, 3 Éric Tanter 1
2 ASCOLA - Aspect and composition languages
LINA - Laboratoire d'Informatique de Nantes Atlantique, Département informatique - EMN, Inria Rennes – Bretagne Atlantique
Abstract : When a software system is developed using several aspects, special care must be taken to ensure that the resulting behavior is correct. This is known as the aspect interference problem, and existing approaches essentially aim to detect whether a system exhibits problematic interferences of aspects. In this paper we describe how to control aspect interference by construction by relying on the type system. More precisely, we combine a monadic embedding of the pointcut/advice model in Haskell with the notion of membranes for aspect-oriented programming. Aspects must explicitly declare the side effectsa nd the context they can act upon. Allowed patterns of control flow interference are declared at the membrane level and statically enforced. Finally, computational interference between aspects is controlled by the membrane topology. To combine independent and reusable aspects and monadic components into a program specification we use monad views, a recent technique for conveniently handling the monadic stack.
Document type :
Conference papers
FOAL'13: Foundations of aspect-oriented languages, Mar 2013, Fukuoka, Japan. ACM, 2013, <10.1145/2451598.2451600>
Liste complète des métadonnées

Contributor : Nicolas Tabareau <>
Submitted on : Monday, April 8, 2013 - 12:31:47 PM
Last modification on : Monday, April 8, 2013 - 2:27:43 PM
Document(s) archivé(s) le : Monday, April 3, 2017 - 1:45:29 AM


Files produced by the author(s)




Ismael Figueroa, Nicolas Tabareau, Éric Tanter. Taming aspects with monads and membranes. FOAL'13: Foundations of aspect-oriented languages, Mar 2013, Fukuoka, Japan. ACM, 2013, <10.1145/2451598.2451600>. <hal-00808983>



Record views


Document downloads