Abstract
This article defines AspectML, a typed functional, aspect-oriented programming language. The main contribution of AspectML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, AspectML allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. AspectML 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. When a set of labels is assembled as a pointcut, the type of each label is an instance of the type of the pointcut.
| Original language | English (US) |
|---|---|
| Article number | 14 |
| Journal | ACM Transactions on Programming Languages and Systems |
| Volume | 30 |
| Issue number | 3 |
| DOIs | |
| State | Published - May 1 2008 |
All Science Journal Classification (ASJC) codes
- Software
Keywords
- Aspect-oriented programming
- Functional languages
- Parametric and ad-hoc polymorphism
- Type inference
- Type systems
Fingerprint
Dive into the research topics of 'AspectML: A polymorphic aspect-oriented functional programming language'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver