|
ABSTRACT
This paper defines PolyAML, a typed functional, aspect-oriented programming language. The main contribution of Poly<SMALL>AML</SMALL> is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, Poly<SMALL>AML</SMALL> allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. Poly<SMALL>AML</SMALL> 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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
J. Aldrich. Open modules: A proposal for modular reasoning in aspect-oriented programming. In Workshop on Foundations of Aspect-Oriented Languages, Mar. 2004.
|
| |
2
|
J. Aldrich. Open modules: Reconciling extensibility and information hiding. In Proceedings of the Software Engineering Properties of Languages for Aspect Technologies, Mar. 2004.
|
 |
3
|
|
| |
4
|
G. Bruns, R. Jagadeesan, A. S. A. Jeffrey, and J. Riely. muABC: A minimal aspect calculus. In Concur, pages 209--224, Apr. 2004.
|
| |
5
|
C. Clifton and G. T. Leavens. Assistants and observers: A proposal for modular aspect-oriented reasoning. In Foundations of Aspect Languages, Apr. 2002.
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
| |
9
|
D. S. Dantas and D. Walker. Aspects, information hiding and modularity. Technical Report TR-696-04, Princeton University, Nov. 2003.
|
| |
10
|
D. S. Dantas and D. Walker. Harmless advice. In Workshop on Foundations of Object-Oriented Languages, Jan. 2005.
|
| |
11
|
D. S. Dantas, D. Walker, G. Washburn, and S. Weirich. Poly<SMALL>AML</SMALL>: A polymorphic aspect-oriented functional programmming language (extended version). Technical Report MS-CIS-05-07, University of Pennsylvania, May 2005.
|
| |
12
|
|
 |
13
|
Rémi Douence , Pascal Fradet , Mario Südholt, Composition, reuse and interaction analysis of stateful aspects, Proceedings of the 3rd international conference on Aspect-oriented software development, p.141-150, March 22-24, 2004, Lancaster, UK
[doi> 10.1145/976270.976288]
|
 |
14
|
|
| |
15
|
|
| |
16
|
D. Evans and A. Twyman. Flexible policy-directed code safety. In IEEE Security and Privacy, Oakland, CA, May 1999.
|
| |
17
|
R. E. Filman and D. P. Friedman. Aspect-Oriented Software Development, chapter Aspect-Oriented Programming is Quantification and Obliviousness. Addison-Wesley, 2005.
|
| |
18
|
M. Fiuczynski, Y. Cody, R. Grimm, and D.Walker. Patch(1) considered harmful. In HotOS, July 2005. To appear.
|
| |
19
|
R. Jagadeesan, A. Jeffrey, and J. Riely. A calculus of typed aspectoriented programs. Unpublished manuscript., 2003.
|
| |
20
|
R. Jagadeesan, A. Jeffrey, and J. Riely. A calculus of untyped aspectoriented programs. In European Conference on Object-Oriented Programming, Darmstadt, Germany, July 2003.
|
| |
21
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
22
|
M. Kim, M. Viswanathan, H. Ben-Abdallah, S. Kannan, I. Lee, and O. Sokolsky. Formally specified monitoring of temporal properties. In European Conference on Real-time Systems, York, UK, June 1999.
|
| |
23
|
I. Lee, S. Kannan, M. Kim, O. Sokolsky, and M. Viswanathan. Runtime assurance based on formal specifications. In International Conference on Parallel and Distributed Processing Techniques and Applications, Las Vegas, June 1999.
|
| |
24
|
X. Leroy. The Objective Caml system: Documentation and user's manual, 2000. With Damien Doligez, Jacques Garrigue, Didier Rémy, and Jérôome Vouillon. Available from http://caml.inria.fr.
|
| |
25
|
K. J. Lieberherr, D. Lorenz, and J. Ovlinger. Aspectual collaborations – combining modules and aspects. The Computer Journal, 46(5):542--565, September 2003.
|
| |
26
|
H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In G. T. Leavens and R. Cytron, editors, Foundations of Aspect-Oriented Languages Workshop, pages 17--25, Apr. 2002.
|
| |
27
|
|
| |
28
|
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3), 1978.
|
| |
29
|
|
| |
30
|
S. Peyton Jones, D. Vytiniotis, S. Weirich, and M. Shields. Practical type inference for arbitrary-rank types. Submitted to the Journal of Functional Programming, 2005.
|
| |
31
|
S. Peyton Jones, G.Washburn, and S.Weirich. Wobbly types: Practical type inference for generalised algebraic dataypes. Available at http://www.cis.upenn.edu/_geoffw/research/, July 2004.
|
 |
32
|
|
| |
33
|
M. Shields and S. Peyton Jones. Lexically scoped type variables. Microsoft Research. Available at http://research.microsoft.com/Users/simonpj/papers/scoped-tyvars, 2002.
|
| |
34
|
V. Simonet and F. Pottier. Constraint-based type inference for guarded algebraic data types. Technical Report Research Report 5462, INRIA, Jan. 2005.
|
| |
35
|
P. J. Stuckey and M. Sulzmann. Type inference for guarded recursive data types. Submitted for publication, Feb. 2005.
|
 |
36
|
|
 |
37
|
|
| |
38
|
D. Vytiniotis, S. Weirich, and S. Peyton Jones. Boxy type inference for higher-rank types and impredicativity. Available at http://www.cis.upenn.edu_dimitriv/boxy/, April 2005.
|
 |
39
|
|
 |
40
|
|
| |
41
|
|
CITED BY 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pavel Avgustinov , Elnar Hajiyev , Neil Ongkingco , Oege de Moor , Damien Sereni , Julian Tibble , Mathieu Verbaere, Semantics of static pointcuts in aspectJ, ACM SIGPLAN Notices, v.42 n.1, January 2007
|
|
|
|
|