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
    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
    Jakob, Henner
    Loriant, Nicolas
    Consel, Charles
    INTERNATIONAL CONFERENCE ON PERVASIVE SERVICES (ICPS 2009), 2009, : 21 - 30
  • [23] Cedalion: A Language for Language Oriented Programming
    Lorenz, David H.
    Rosenan, Boaz
    ACM SIGPLAN NOTICES, 2011, 46 (10) : 733 - 752
  • [24] Game Semantics for a Polymorphic Programming Language
    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
    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
    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
    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
    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
    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
    Charfi, Anis
    Schmeling, Benjamin
    Mezini, Mira
    INTERNATIONAL JOURNAL OF WEB AND GRID SERVICES, 2012, 8 (04) : 386 - 424