ABSTRACT
Aspect-Oriented Programming (AOP) started ten years ago with the remark that modularization of so-called crosscutting functionalities is a fundamental problem for the engineering of large-scale applications. Originating at Xerox PARC, this observation has sparked the development of a new style of programming featured that is gradually gaining traction, as it is the case for the related concept of code injection, in the guise of frameworks such as Swing and Google Guice. However, AOP lacks theoretical foundations to clarify this new idea. This paper proposes to put a bridge between AOP and the notion of 2-category to enhance the conceptual understanding of AOP. Starting from the connection between the !-calculus and the theory of categories, we propose to see an aspect as a morphism between morphisms'that is as a program that transforms the execution of a program. To make this connection precise, we develop an advised !-calculus that provides an internal language for 2-categories and show how it can be used as a base for the definition of the weaving mechanism of a realistic functional AOP language, called MinAML
- D. Dantas and D. Walker. Harmless advice. In 8th, volume 41, page 396, 2006. Google ScholarDigital Library
- B. Hilken. Towards a proof theory of rewriting: the simply typed 2!-calculus. Theoretical Computer Science, 170(1-2):407--444, 1996. Google ScholarDigital Library
- M. Hyland, G. Plotkin, and J. Power. Combining effects: sum and tensor. Theoretical Computer Science, 357(1):70--99, 2006. Google ScholarDigital Library
- R. Jagadeesan, A. Jeffrey, and J. Riely. A calculus of untyped aspect-oriented programs. In Proceedings of ECOOP, pages 54--73. Springer-Verlag, 2003.Google ScholarCross Ref
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of ECOOP, volume 1241. Springer-Verlag, 1997.Google Scholar
- S. Kovalyov. Modeling Aspects by Category Theory. FOAL 2010 Proceedings, page 63, 2010.Google Scholar
- J. Lambek. Cartesian closed categories and typed lambda-calculi. In 13th Spring School on Combinators and Functional Programming Languages, page 175. Springer-Verlag, 1985. Google ScholarDigital Library
- J. Lambek and P. Scott. Introduction to higher order categorical logic. Cambridge University Press, 1988. Google ScholarDigital Library
- R. Lopez-Herrejon, D. Batory, and C. Lengauer. A disciplined approach to aspect composition. In Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, page 77. ACM, 2006. Google ScholarDigital Library
- E. Moggi. Notions of computation and monads. Information and Computation, 93:55--92, 1991. Google ScholarDigital Library
- P. Scott. Some aspects of categories in computer science. Handbook of algebra, 2:3--77, 2000.Google ScholarCross Ref
- R. Seely. Modelling computations: a 2-categorical framework. In 2nd, pages 65--71, 1987.Google Scholar
- N. Tabareau. Aspect oriented programming: a language for 2-categories (long version). Technical Report RR-7527, INRIA, 2011. http://hal.inria.fr/inria-00470400.Google Scholar
- É. Tanter. Execution levels for aspect-oriented programming. In Proceedings of the 9th conference on AOSD, pages 37--48, Rennes and Saint Malo, France, Mar. 2010. ACM Press. Google ScholarDigital Library
- D. Walker, S. Zdancewic, and J. Ligatti. A theory of aspects. In 8th, volume 38, pages 127--139, 2003. Google ScholarDigital Library
- M. Wand, G. Kiczales, and C. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. ACM Transactions on Programming Languages and Systems, 26(5):890--910, 2004. Google ScholarDigital Library
Index Terms
- Aspect oriented programming: a language for 2-categories
Recommendations
Cooperative aspect-oriented programming
Aspect-oriented programming (AOP) seeks to improve software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where programmers write the main application (base code), ignoring cross-cutting ...
Aspect-oriented programming
ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineeringAspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use ...
Aspect-oriented programming
Aspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use ...
Comments