ACM Home Page
Please provide us with feedback. Feedback
PolyAML: a polymorphic aspect-oriented functional programming language
Full text PdfPdf (1.01 MB)
Source International Conference on Functional Programming archive
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming table of contents
Tallinn, Estonia
SESSION: Session 11 table of contents
Pages: 306 - 319  
Year of Publication: 2005
ISBN:1-59593-064-7
Also published in ...
Authors
Daniel S. Dantas  Princeton University, Princeton, NJ
David Walker  Princeton University, Princeton, NJ
Geoffrey Washburn  University of Pennsylvania
Stephanie Weirich  University of Pennsylvania
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 36,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1086365.1086404
What is a DOI?

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
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
 
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  12

Collaborative Colleagues:
Daniel S. Dantas: colleagues
David Walker: colleagues
Geoffrey Washburn: colleagues
Stephanie Weirich: colleagues