skip to main content
research-article

Delegation-based semantics for modularizing crosscutting concerns

Published:19 October 2008Publication History
Skip Abstract Section

Abstract

We describe semantic mappings of four high-level programming languages to our delegation-based machine model for aspect-oriented programming. One of the languages is a class-based object-oriented one. The other three represent extensions thereof that support various approaches to modularizing crosscutting concerns. We explain informally that an operational semantics expressed in terms of the model's concepts preserves the behavior of a program written in one of the high-level languages. We hence argue our model to be semantically sound in that sense, as well as sufficiently expressive in order to correctly support features such as class-based object-oriented programming, the open-classes and pointcut-and-advice flavors of aspect-oriented programming, and dynamic layers. For the latter, being a core feature of context-oriented programming, we also provide a formal semantics.

References

  1. Jonathan Aldrich. Open Modules: A Proposal for Modular Reasoning in Aspect-oriented Programming. In Foundations of Aspect Languages, 2004.Google ScholarGoogle Scholar
  2. Christopher Anderson and Sophia Drossopoulou. An Imperative Object--based Calculus with Delegation. In Proc. USE'02, Malaga, 2002.Google ScholarGoogle Scholar
  3. Lodewijk Bergmans and Mehmet Aksit. Composing Crosscutting Concerns Using Composition Filters. Commun. ACM, 44(10):51--57, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Curtis Clifton and Gary T. Leavens. MiniMAO1 -- An Imperative Core Language for Studying Aspect-oriented Reasonings. Sci. Comput. Program., 63(3):321--374, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Pascal Costanza and Robert Hirschfeld. Language Constructs for Context-oriented Programming: An Overview of ContextL. In Dynamic Languages Symposium (DLS) '05, co-organised with OOPSLA'05. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Pascal Costanza, Robert Hirschfeld, and Wolfgang De Meuter. Efficient Layer Activation for Switching Context-dependent Behavior. In JMLC, pages 84--103, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Daniel S. Dantas, David Walker, Geoffrey Washburn, and Stephanie Weirich. AspectML: A polymorphic aspect-oriented functional programming language. ACM Trans. Program. Lang. Syst., 30(3):1--60, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Simplice Djoko Djoko, Remi Douence, Pascal Fradet, and Didier Le Botlan. CASB: Common Aspect Semantics Base. Technical Report AOSD-Europe Deliverable D41, AOSD-Europe-INRIA-7, INRIA, France, 10 February 2006.Google ScholarGoogle Scholar
  9. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns -- Elements of Reusable Object-oriented Software. Addison-Wesley, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Michael Haupt. Virtual Machine Support for Aspect-oriented Programming Languages. PhD thesis, Software Technology Group, Darmstadt University of Technology, 2006.Google ScholarGoogle Scholar
  11. Michael Haupt, Mira Mezini, Christoph Bockisch, Tom Dinkelaker, Michael Eichberg, and Michael Krebs. An Execution Layer for Aspect-oriented Programming Languages. In Proc. VEE 2005. ACM Press, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Michael Haupt and Hans Schippers. A Machine Model for Aspect-oriented Programming. In ECOOP 2007 - Object-oriented Programming, 21st European Conference, Berlin, Germany, July 30 -- August 3, 2007, Proceedings, volume 4609 of Lecture Notes in Computer Science, pages 501--524. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Robert Hirschfeld, Pascal Costanza, and Oscar Nierstrasz. Context-oriented Programming. Journal of Object Technology (JOT), 7(3):125--151, March-April 2008.Google ScholarGoogle ScholarCross RefCross Ref
  14. Ralf Lämmel. A Semantical Approach to Method-call Interception. In Proc. AOSD'02, pages 41--55. ACM Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hidehiko Masuhara and Gregor Kiczales. Modeling Crosscutting in Aspect-oriented Mechanisms. In Luca Cardelli, editor, ECOOP, volume 2743 of Lecture Notes in Computer Science, pages 2--28. Springer, 2003.Google ScholarGoogle Scholar
  16. Hidehiko Masuhara, Hideaki Tatsuzawa, and Akinori Yonezawa. Aspectual Caml -- An Aspect-oriented Functional Language. In ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, pages 320--330, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Todd D. Millstein and Craig Chambers. Modular Statically Typed Multimethods. In ECOOP '99: Proceedings of the 13th European Conference on Object-oriented Programming, pages 279--303, London, UK, 1999. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Harold Ossher. A Direction for Research on Virtual Machine Support for Concern Composition. In Proc. Workshop VMIL'07. ACM Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Andrei Popovici, Thomas Gross, and Gustavo Alonso. Dynamic Weaving for Aspect-oriented Programming. In Gregor Kiczales, editor, Proc. AOSD 2002. ACM Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Andrei Popovici, Thomas Gross, and Gustavo Alonso. Just-in-Time Aspects. In Proc. AOSD 2003. ACM Press, 2003.Google ScholarGoogle Scholar
  21. Mark C. Skipper. Formal Models for Aspect-oriented Software Development. PhD thesis, Imperial College, London, 2004.Google ScholarGoogle Scholar
  22. Eric Tanter and Jacques Noyé. A Versatile Kernel for Multi-Language AOP. In Proc. GPCE'05. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. David Walker, Steve Zdancewic, and Jay Ligatti. A Theory of Aspects. In ICFP '03: Proceedings of the eighth ACM SIGPLAN international conference on Functional programming, pages 127--139, New York, NY, USA, 2003. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Mitchell Wand, Gregor Kiczales, and Christopher Dutchyn. A Semantics for Advice and Dynamic Join Points in Aspect--oriented Programming. ACM Trans. Program. Lang. Syst., 26(5):890--910, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Delegation-based semantics for modularizing crosscutting concerns

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!