Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2451598.2451600acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Taming aspects with monads and membranes

Published: 26 March 2013 Publication History

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.

References

[1]
Proceedings of the 9th ACM International Conference on Aspect-Oriented Software Development (AOSD 2010), Rennes and Saint Malo, France, Mar. 2010. ACM Press.
[2]
C. Clifton and G. Leavens. Observers and assistants: A proposal for modular aspect-oriented reasoning. In Proc. of the nternational Workshop on Foundations of Aspect-Oriented Languages (FOAL 2002), 2002.
[3]
C. Disenfeld and S. Katz. A closer look at aspect interference and cooperation. In Proceedings of the 11th International Conference on Aspect-oriented Software Development (AOSD), 2012.
[4]
R. Douence, P. Fradet, and M. Südholt. A framework for the detection and resolution of aspect interactions. In D. Batory, C. Consel, and W. Taha, editors, Proceedings of the 1st ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE 2002), volume 2487 of Lecture Notes in Computer Science, pages 173--188, Pittsburgh, PA, USA, Oct. 2002. Springer-Verlag.
[5]
S. Liang, P. Hudak, and M. Jones. Monad transformers and modular interpreters. In Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL '95, pages 333--343, New York, NY, USA, 1995. ACM.
[6]
H. Masuhara, G. Kiczales, and C. Dutchyn. A compilation and optimization model for aspect-oriented programs. In G. Hedin, editor, Proceedings of Compiler Construction (CC2003), volume 2622 of Lecture Notes in Computer Science, pages 46--60. Springer-Verlag, 2003.
[7]
B. C. d. S. Oliveira, T. Schrijvers, and W. R. Cook. EffectiveAdvice: discplined advice with explicit effects. In AOSD 2010citeaosd2010, pages 109--120.
[8]
M. Rinard, A. Salcianu, and S. Bugrara. A classification system and analysis for aspect-oriented programs. In Proceedings of the 12th ACM Symposium on Foundations of Software Engineering (FSE 12), pages 147--158. ACM Press, 2004.
[9]
T. Schrijvers and B. C. Oliveira. Monads, zippers and views: virtualizing the monad stack. In Proceedings of the 16th ACM SIGPLAN Conference on Functional Programming (ICFP 2011), pages 32--44, Tokyo, Japan, Sept. 2011. ACM Press.
[10]
M. Störzer, R. Sterr, and F. Forster. Detecting precedence-related advice interference. In Proc. of the 21st International Conference on Automated Software Engineering (ASE 2006), 2006.
[11]
N. Tabareau, I. Figueroa, and É. Tanter. A typed monadic embedding of aspects. In J. Kinzle, editor, Proceedings of the 12th International Conference on Aspect-Oriented Software Development (AOSD 2013), Fukuoka, Japan, Mar. 2013. ACM Press.
[12]
É. Tanter. Execution levels for aspect-oriented programming. In AOSD 2010citeaosd2010, pages 37--48. Best Paper Award.
[13]
É. Tanter, P. Moret, W. Binder, and D. Ansaloni. Composition of dynamic analysis aspects. In Proceedings of the 9th ACM SIGPLAN International Conference on Generative Programming and Component Engineering (GPCE 2010), pages 113--122, Eindhoven, The Netherlands, Oct. 2010. ACM Press.
[14]
É. Tanter, N. Tabareau, and R. Douence. Taming aspects with membranes. In Proceedings of the 11th Workshop on Foundations of Aspect-Oriented Languages (FOAL 2012), pages 3--8, Potsdam, Germany, Mar. 2012. ACM Press.
[15]
K. Tian, K. Cooper, K. Zhang, and S. Liu. Towards a new understanding of advice interference. In Proceedings of the 4th International Conference on Secure Software Integration and Reliability Improvement (SSIRI), 2010.
[16]
K. Tian, K. Cooper, K. Zhang, and H. Yu. A classification of aspect composition problems. In Proceedings of the 3th International Conference on Secure Software Integration and Reliability Improvement (SSIRI), 2009.

Cited By

View all
  • (2014)Execution levels for aspect-oriented programmingScience of Computer Programming10.5555/2748144.274839480:PB(311-342)Online publication date: 1-Feb-2014
  • (2014)Effective Aspects: A Typed Monadic Embedding of Pointcuts and AdviceTransactions on Aspect-Oriented Software Development XI10.1007/978-3-642-55099-7_5(145-192)Online publication date: 2014
  • (2013)Taming aspectsProceedings of the 4th international workshop on Variability & composition10.1145/2451617.2451623(19-19)Online publication date: 26-Mar-2013

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
FOAL '13: Proceedings of the 12th workshop on Foundations of aspect-oriented languages
March 2013
32 pages
ISBN:9781450318655
DOI:10.1145/2451598
  • Program Chair:
  • Erik Ernst
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 March 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect-oriented programming
  2. interference
  3. membranes
  4. monad views
  5. monads

Qualifiers

  • Research-article

Conference

AOSD '13
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 5 of 6 submissions, 83%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2014)Execution levels for aspect-oriented programmingScience of Computer Programming10.5555/2748144.274839480:PB(311-342)Online publication date: 1-Feb-2014
  • (2014)Effective Aspects: A Typed Monadic Embedding of Pointcuts and AdviceTransactions on Aspect-Oriented Software Development XI10.1007/978-3-642-55099-7_5(145-192)Online publication date: 2014
  • (2013)Taming aspectsProceedings of the 4th international workshop on Variability & composition10.1145/2451617.2451623(19-19)Online publication date: 26-Mar-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media