TY - JOUR
T1 - A type-theoretic interpretation of pointcuts and advice
AU - Ligatti, Jay
AU - Walker, David
AU - Zdancewic, Steve
N1 - Funding Information:
The third author’s research is sponsored in part by the NSF Trusted Computing program, grant number CCR-0311204 “Dynamic Security Policies” and by the NSF CAREER award, grant number CNS03-46939 “Language-based Distributed System Security”. Any opinions, findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF.
Funding Information:
The second author’s research was supported in part by National Science Foundation CAREER grant No. CCR-0238328, by ARDA Grant no. NBCHC030106, and by a Sloan Fellowship. Any opinions, findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF, ARDA or Sloan Foundation.
PY - 2006/12/15
Y1 - 2006/12/15
N2 - This article defines the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from a user-friendly external language to a compact, well-defined core language. We argue that our framework is an effective way to give semantics to aspect-oriented programming languages in general because the translation eliminates shallow syntactic differences between related constructs and permits definition of an elegant and extensible core language. The core language extends the simply-typed lambda calculus with two central new abstractions: explicitly labeled program points and first-class advice. The labels serve both to trigger advice and to mark continuations that the advice may return to. These constructs are defined orthogonally to the other features of the language and we show that our abstractions can be used in both functional and object-oriented contexts. We prove Preservation and Progress lemmas for our core language and show that the translation from MinAML source into core is type-preserving. Together these two results imply that the source language is type safe. We also consider several extensions to our basic framework including a general mechanism for analyzing the current call stack.
AB - This article defines the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from a user-friendly external language to a compact, well-defined core language. We argue that our framework is an effective way to give semantics to aspect-oriented programming languages in general because the translation eliminates shallow syntactic differences between related constructs and permits definition of an elegant and extensible core language. The core language extends the simply-typed lambda calculus with two central new abstractions: explicitly labeled program points and first-class advice. The labels serve both to trigger advice and to mark continuations that the advice may return to. These constructs are defined orthogonally to the other features of the language and we show that our abstractions can be used in both functional and object-oriented contexts. We prove Preservation and Progress lemmas for our core language and show that the translation from MinAML source into core is type-preserving. Together these two results imply that the source language is type safe. We also consider several extensions to our basic framework including a general mechanism for analyzing the current call stack.
KW - Aspect-oriented programming languages
KW - Aspects
KW - Operational semantics
KW - Type theory
UR - http://www.scopus.com/inward/record.url?scp=33749995768&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=33749995768&partnerID=8YFLogxK
U2 - 10.1016/j.scico.2006.01.004
DO - 10.1016/j.scico.2006.01.004
M3 - Article
AN - SCOPUS:33749995768
SN - 0167-6423
VL - 63
SP - 240
EP - 266
JO - Science of Computer Programming
JF - Science of Computer Programming
IS - 3
ER -