Introduction to higher order categorical logic
Introduction to higher order categorical logic
Notions of computation and monads
Information and Computation
Towards a proof theory of rewriting: the simply typed 2&lgr;-calculus
Theoretical Computer Science
Cartesian Closed Categories and Typed Lambda- calculi
Proceedings of the Thirteenth Spring School of the LITP on Combinators and Functional Programming Languages
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A semantics for advice and dynamic join points in aspect-oriented programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A disciplined approach to aspect composition
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The Objects and Arrows of Computational Design
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
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
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
A semantics for execution levels with exceptions
Proceedings of the 10th international workshop on Foundations of aspect-oriented languages
Aspect oriented programming: a language for 2-categories
Proceedings of the 10th international workshop on Foundations of aspect-oriented languages
A practical monadic aspect weaver
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
A practical monadic aspect weaver
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
Membranes for AOP: from vision to practice
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
A typed monadic embedding of aspects
Proceedings of the 12th annual international conference on Aspect-oriented software development
Science of Computer Programming
Hi-index | 0.00 |
Aspect-Oriented Programming (AOP) started fifteen 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 features that is gradually gaining traction. However, theoretical foundations of AOP have been much less studied than its applicability. 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 provide an internal language for 2-categories and show how it can be used to define the first categorical semantics for a realistic functional AOP language, called MinAML. We then take advantage of this new categorical framework to introduce the notion of computational 2-monads for AOP. We illustrate their conceptual power by defining a 2-monad for Éric Tanter's execution levels---which constitutes the first algebraic semantics for execution levels---and then introducing the first exception monad transformer specific to AOP that gives rise to a non-flat semantics for exceptions by taking levels into account.