Affiliation:
1. University of Oxford, United Kingdom
2. University of Aarhus, Denmark
3. McGill University, Montreal, Canada
Abstract
An aspect observes the execution of a base program; when certain actions occur, the aspect runs some extra code of its own. In the AspectJ language, the observations that an aspect can make are confined to the
current
action: it is not possible to directly observe the
history
of a computation.Recently, there have been several interesting proposals for new history-based language features, most notably by Douence
et al.
and by Walker and Viggers. In this paper, we present a new history-based language feature called
tracematches
that enables the programmer to trigger the execution of extra code by specifying a regular pattern of events in a computation trace. We have fully designed and implemented tracematches as a seamless extension of AspectJ.A key innovation in our tracematch approach is the introduction of free variables in the matching patterns. This enhancement enables a whole new class of applications in which events can be matched not only by the event kind, but also by the values associated with the free variables. We provide several examples of applications enabled by this feature.After introducing and motivating the idea of tracematches via examples, we present a detailed semantics of our language design, and we derive an implementation from that semantics. The implementation has been realised as an extension of the
abc
compiler for AspectJ.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference31 articles.
1. abc. The AspectBench Compiler. Home page with downloads FAQ documentation support mailing lists and bug database. http://aspectbench.org.]] abc. The AspectBench Compiler. Home page with downloads FAQ documentation support mailing lists and bug database. http://aspectbench.org.]]
2. SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft
Cited by
143 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献