AspectML: A polymorphic aspect-oriented functional programming language

被引:15
作者
Dantas, Daniel S. [1 ]
Walker, David [1 ]
Washburn, Geoffrey [2 ]
Weirich, Stephanie [2 ]
机构
[1] Princeton Univ, Princeton, NJ 08544 USA
[2] Univ Penn, Philadelphia, PA 19104 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2008年 / 30卷 / 03期
关键词
design; languages; security; theory;
D O I
10.1145/1353445.1353448
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:60
相关论文
共 50 条
[21]   Enforcing Access Control Models in System Applications by using Aspect-Oriented Programming: A Literature Review [J].
Thulnoon, Akeel A. ;
Kifayat, Kashif .
2017 10TH INTERNATIONAL CONFERENCE ON DEVELOPMENTS IN ESYSTEMS ENGINEERING (DESE 2017), 2017, :100-105
[22]   An Aspect-Oriented Approach to Securing Distributed Systems [J].
Jakob, Henner ;
Loriant, Nicolas ;
Consel, Charles .
INTERNATIONAL CONFERENCE ON PERVASIVE SERVICES (ICPS 2009), 2009, :21-30
[23]   Cedalion: A Language for Language Oriented Programming [J].
Lorenz, David H. ;
Rosenan, Boaz .
ACM SIGPLAN NOTICES, 2011, 46 (10) :733-752
[24]   Game Semantics for a Polymorphic Programming Language [J].
Laird, J. .
JOURNAL OF THE ACM, 2013, 60 (04)
[25]   Applications of Enhanced Dynamic Code Evolution for Java']Java in GUI Development and Dynamic Aspect-Oriented Programming [J].
Wuerthinger, Thomas ;
Binder, Walter ;
Ansaloni, Danilo ;
Moret, Philippe ;
Moessenboeck, Hanspeter .
ACM SIGPLAN NOTICES, 2011, 46 (02) :123-126
[26]   An aspect-oriented approach to mobile agent access control [J].
Xu, DX ;
Goel, V .
ITCC 2005: INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY: CODING AND COMPUTING, VOL 1, 2005, :668-673
[27]   DECOUPLING CONFIGURATION AND DEPLOYMENT PROCEDURES BY ASPECT-ORIENTED POLICIES [J].
Englmeier, Kurt ;
Koinig, Ricki .
ICSOFT 2009: PROCEEDINGS OF THE 4TH INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES, VOL 1, 2009, :321-+
[28]   Investigating the Effect of Aspect-Oriented Refactoring on Software Maintainability [J].
Al-Jamimi, Hamdi A. ;
Alshayeb, Mohammad ;
Elish, Mahmoud O. .
SOFTWARE ENGINEERING AND COMPUTER SYSTEMS, PT 3, 2011, 181 :611-623
[29]   Specifying aspect-oriented architectures in AO-ADL [J].
Pinto, Monica ;
Fuentes, Lidia ;
Maria Troya, Jose .
INFORMATION AND SOFTWARE TECHNOLOGY, 2011, 53 (11) :1165-1182
[30]   An aspect-oriented framework for specification and enforcement of non-functional concerns in WS-BPEL [J].
Charfi, Anis ;
Schmeling, Benjamin ;
Mezini, Mira .
INTERNATIONAL JOURNAL OF WEB AND GRID SERVICES, 2012, 8 (04) :386-424