Title
Modular reasoning in aspect-oriented languages from a substitution perspective Modular reasoning in aspect-oriented languages from a substitution perspective
Author
Faculty/Department
Faculty of Sciences. Mathematics and Computer Science
Publication type
conferenceObject
Publication
Berlin :Springer-verlag berlin ,
Subject
Computer. Automation
Source (journal)
TRANSACTIONS ON ASPECT-ORIENTED SOFTWARE DEVELOPMENT XII
Source (book)
13th International Conference on Modularity (Modularity), APR 22-25, 2014, Lugano, SWITZERLAND
Volume/pages
8989(2015) , p. 3-59
ISSN
0302-9743
ISBN
978-3-662-46734-3
ISI
000359999900001
ISBN
978-3-662-46733-6
Carrier
E
Target language
English (eng)
Full text (Publishers DOI)
Affiliation
University of Antwerp
Abstract
In object-oriented languages, a notion of behavioural subtyping is needed to enable modular reasoning. This is no longer sufficient when such languages are extended with aspects. In general, all aspects need to be inspected in order to understand the behaviour of a single method or proceed call, which complicates reasoning about aspect-oriented programs. In this paper, we present an approach to modular reasoning that consists of two parts. First, the advice substitution principle, based on behavioural subtyping, identifies when it is possible to remain unaware of an advice while preserving modular reasoning. Second, in cases where it is undesired or impossible to be unaware of an advice, a simple specification clause can be used to restore modular reasoning and to become aware of this advice. We show that our approach effectively enables modular reasoning about pre- and postconditions in a minimal aspect-oriented language called ContractAJ. To ensure the approach is used correctly, we also provide a runtime contract enforcement algorithm that is specified in ContractAJ, and implemented in AspectJ.
E-info
http://gateway.webofknowledge.com/gateway/Gateway.cgi?GWVersion=2&SrcApp=PARTNER_APP&SrcAuth=LinksAMR&KeyUT=WOS:000359999900001&DestLinkType=RelatedRecords&DestApp=ALL_WOS&UsrCustomerID=ef845e08c439e550330acc77c7d2d848
http://gateway.webofknowledge.com/gateway/Gateway.cgi?GWVersion=2&SrcApp=PARTNER_APP&SrcAuth=LinksAMR&KeyUT=WOS:000359999900001&DestLinkType=FullRecord&DestApp=ALL_WOS&UsrCustomerID=ef845e08c439e550330acc77c7d2d848
Handle