Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Framework for the Detection and Resolution of Aspect Interactions
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
A classification system and analysis for aspect-oriented programs
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Detecting Precedence-Related Advice Interference
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
A Classification of Aspect Composition Problems
SSIRI '09 Proceedings of the 2009 Third IEEE International Conference on Secure Software Integration and Reliability Improvement
Execution levels for aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
EffectiveAdvice: disciplined advice with explicit effects
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
A compilation and optimization model for aspect-oriented programs
CC'03 Proceedings of the 12th international conference on Compiler construction
Towards a New Understanding of Advice Interference
SSIRI '10 Proceedings of the 2010 Fourth International Conference on Secure Software Integration and Reliability Improvement
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Monads, zippers and views: virtualizing the monad stack
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
A closer look at aspect interference and cooperation
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
A typed monadic embedding of aspects
Proceedings of the 12th annual international conference on Aspect-oriented software development
Proceedings of the 4th international workshop on Variability & composition
Science of Computer Programming
Hi-index | 0.00 |
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.