Proceedings Article10.1145/1086365.1086404
PolyAML: a polymorphic aspect-oriented functional programming language
Daniel S. Dantas,David Walker,Geoffrey Washburn,Stephanie Weirich +3 more
- 12 Sep 2005
- Vol. 40, Iss: 9, pp 306-319
TL;DR: PolyAML is defined, a typed functional, aspect-oriented programming language that allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points and comes equipped with a type inference algorithm that conservatively extends Hindley-Milner type inference.
read more
Abstract: 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Journal Article
An overview of AspectJ
TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.
2.9K
Self-tuning experience weighted attraction learning in games
TL;DR: Self-tuning experience weighted attraction does as well as EWA in predicting behavior in new games, even though it has fewer parameters, and fits reliably better than the QRE equilibrium benchmark.
286
Semantics and scoping of aspects in higher-order languages
TL;DR: The subtleties of pointcuts and advice for higher-order languages, particularly Scheme are described and resolved by alluding to traditional notions of scope, and programmers can now define both dynamic aspects traditional to AOP and static aspects that can capture common security-control paradigms.
67
Typed parametric polymorphism for aspects
TL;DR: This work believes its work is the first source-level typing scheme for an aspect-based extension of a parametric object-oriented language with aspects and proves progress and preservation properties.
50
Semantics of static pointcuts in aspectJ
Pavel Avgustinov,Elnar Hajiyev,Neil Ongkingco,Oege de Moor,Damien Sereni,Julian Tibble,Mathieu Verbaere +6 more
- 17 Jan 2007
TL;DR: This work presents the first rigorous semantics of the AspectJ pointcut language, by translating static patterns into safe Datalog queries, and indicates that direct execution of the semantics is not prohibitively expensive.
References
•Book
Compilers: Principles, Techniques, and Tools
Alfred V. Aho,Ravi Sethi,Jeffrey D. Ullman +2 more
- 01 Jan 1986
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
9.7K
•Journal Article
An overview of AspectJ
TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.
2.9K
•Book
The Lambda Calculus. Its Syntax and Semantics
Henk Barendregt
- 30 Apr 2012
TL;DR: In this article, the Lambda-Calculus has been studied as a theory of composition and reduction, and the theory of reduction has been used to construct models of Lambda Theories.
2.9K
•Book
The Definition of Standard ML
Robin Milner,Mads Tofte,Robert Harper +2 more
- 01 Jan 1990
TL;DR: This book provides a formal definition of Standard ML for the benefit of all concerned with the language, including users and implementers, and the authors have defined their semantic objects in mathematical notation that is completely independent of StandardML.
2.7K
A theory of type polymorphism in programming
TL;DR: This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline.
2.6K
Related Papers (5)
[...]
David Walker,Steve Zdancewic,Jay Ligatti +2 more
- 25 Aug 2003
Radha Jagadeesan,Alan Jeffrey,James Riely +2 more
- 21 Jul 2003
Robert E. Filman,Daniel Friedman +1 more
- 01 Jan 2000