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 条
[41]   Aspect-oriented model-driven code generation: A systematic mapping study [J].
Mehmood, Abid ;
Jawawi, Dayang N. A. .
INFORMATION AND SOFTWARE TECHNOLOGY, 2013, 55 (02) :395-411
[42]   A novel aspect-oriented BPEL framework for the dynamic enforcement of web services security [J].
Mourad, Azzam ;
Ayoubi, Sara ;
Yahyaoui, Hamdi ;
Otrok, Hadi .
INTERNATIONAL JOURNAL OF WEB AND GRID SERVICES, 2012, 8 (04) :361-385
[43]   PolyTOIL: A type-safe polymorphic object-oriented language [J].
Bruce, KB ;
Schuett, A ;
Van Gent, R ;
Fiech, A .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2003, 25 (02) :225-290
[44]   Investigating the Effect of Aspect-Oriented Refactoring on the Unit Testing Effort of Classes: An Empirical Evaluation [J].
Badri, Mourad ;
Kout, Aymen ;
Badri, Linda .
INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2017, 27 (05) :749-789
[45]   Aspect-Oriented Space Containers for Efficient Publish/Subscribe Scenarios in Intelligent Transportation Systems [J].
Kuehn, Eva ;
Mordinyi, Richard ;
Keszthelyi, Laszlo ;
Schreiber, Christian ;
Bessler, Sandford ;
Tomic, Slobodanka .
ON THE MOVE TO MEANINGFUL INTERNET SYSTEMS: OTM 2009, PT 1, 2009, 5870 :432-+
[46]   AES High-Level SystemC Modeling using Aspect Oriented Programming Approach [J].
Mestiri, Hassen ;
Barraj, Imen ;
Machhout, Mohsen .
ENGINEERING TECHNOLOGY & APPLIED SCIENCE RESEARCH, 2021, 11 (01) :6719-6723
[47]   A method engineering approach to developing aspect-oriented modelling processes based on the OPEN process framework [J].
Henderson-Sellers, B. ;
France, R. ;
Georg, G. ;
Reddy, R. .
INFORMATION AND SOFTWARE TECHNOLOGY, 2007, 49 (07) :761-773
[48]   Predicting availability of systems using BBN in aspect-oriented risk-driven development (AORDD) [J].
Houmb, Siv Hilde ;
Georg, Geri ;
France, Robert ;
Reddy, Raghu ;
Bieman, James .
WMSCI 2005: 9th World Multi-Conference on Systemics, Cybernetics and Informatics, Vol 10, 2005, :394-403
[49]   POP-PL: A Patient-Oriented Prescription Programming Language [J].
Florence, Spencer P. ;
Fetscher, Burke ;
Flatt, Matthew ;
Temps, William H. ;
Kiguradze, Tina ;
West, Dennis P. ;
Niznik, Charlotte ;
Yarnold, Paul R. ;
Findler, Robert Bruce ;
Belknap, Steven M. .
ACM SIGPLAN NOTICES, 2016, 51 (03) :131-140
[50]   Attribute Grammars Fly First-Class How to do Aspect Oriented Programming in Haskell [J].
Viera, Marcos ;
Swierstra, S. Doaitse ;
Swierstra, Wouter .
ACM SIGPLAN NOTICES, 2009, 44 (8-9) :245-256