abc: an extensible AspectJ compiler
abc: an extensible AspectJ compiler
复制标题
DOI:
10.1145/1052898.1052906
复制
发表时间:
2005-03
期刊:
影响因子:
--
通讯作者:
Pavel Avgustinov;Aske Simon Christensen;L. Hendren;Sascha Kuzins;Jennifer Lhoták;Ondřej Lhoták;O. Moor;D. Sereni;Ganesh Sittampalam;J. Tibble
中科院分区:
文献类型:
--
作者:
Pavel Avgustinov;Aske Simon Christensen;L. Hendren;Sascha Kuzins;Jennifer Lhoták;Ondřej Lhoták;O. Moor;D. Sereni;Ganesh Sittampalam;J. Tibble
Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new features for AspectJ have been proposed that require extensions in many dimensions: syntax, type checking and code generation, as well as data flow and control flow analyses.The AspectBench Compiler (abc) is an implementation of such a workbench. The base version of abc implements the full AspectJ language. Its frontend is built, using the Polyglot framework, as a modular extension of the Java language. The use of Polyglot gives flexibility of syntax and type checking. The backend is built using the Soot framework, to give modular code generation and analyses.In this paper, we outline the design of abc, focusing mostly on how the design supports extensibility. We then provide a general overview of how to use abc to implement an extension. Finally, we illustrate the extension mechanisms of abc through a number of small, but non-trivial, examples. abc is freely available under the GNU LGPL.