Aspect Oriented Programming: a language for 2-categories
Résumé
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. However, AOP lacks theoretical foundations to clarify this new idea. % This paper proposes to put a bridge between AOP (and more generally program transformation) and the notion of 2-category to enhance the conceptual understanding of AOP. Starting from the connection between the lambda-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 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. Finally, we advocate for a formalization of more complex AOP languages (eg. with references or exceptions) using the notion of enriched Lawvere theories.
Origine | Fichiers produits par l'(les) auteur(s) |
---|