PolyAML
PolyAML: a polymorphic aspect-oriented functional programming language. This paper defines PolyAML, a typed functional, aspect-oriented programming language. The main contribution of PolyAML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, PolyAML allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. PolyAML also comes equipped with a type inference algorithm that conservatively extends Hindley-Milner type inference. To support first-class polymorphic point-cut designators, a crucial feature for developing aspect-oriented profiling or logging libraries, the algorithm blends the conventional Hindley-Milner type inference algorithm with a simple form of local type inference.We give our language operational meaning via a type-directed translation into an expressive type-safe intermediate language. Many complexities of the source language are eliminated in this translation, leading to a modular specification of its semantics. One of the novelties of the intermediate language is the definition of polymorphic labels for marking control-flow points. These labels are organized in a tree structure such that a parent in the tree serves as a representative for all of its children. Type safety requires that the type of each child is less polymorphic than its parent type. Similarly, when a set of labels is assembled as a pointcut, the type of each label is an instance of the type of the pointcut.
This software is also peer reviewed by journal TOMS.
This software is also peer reviewed by journal TOMS.
Keywords for this software
References in zbMATH (referenced in 5 articles )
Showing results 1 to 5 of 5.
Sorted by year (- Djoko Djoko, Simplice; Douence, Rémi; Fradet, Pascal: Aspects preserving properties (2012)
- Chen, Kung; Weng, Shu-Chun; Wang, Meng; Khoo, Siau-Cheng; Chen, Chung-Hsin: Type-directed weaving of aspects for polymorphically typed functional languages (2010)
- Dutchyn, Christopher; Tucker, David B.; Krishnamurthi, Shriram: Semantics and scoping of aspects in higher-order languages (2006)
- Ligatti, Jay; Walker, David; Zdancewic, Steve: A type-theoretic interpretation of pointcuts and advice (2006)
- Dantas, Daniel S.; Walker, David; Washburn, Geoffrey; Weirich, Stephanie: PolyAML: a polymorphic aspect-oriented functional programming language (2005)