Abstract
abc is an extensible, optimising compiler for AspectJ. It has been designed as a workbench for experimental research in aspect-oriented programming languages and compilers. We outline a programme of research in these areas, and we review how abc can help in achieving those research goals.
This work was supported, in part, by IBM, and by EPSRC in the United Kingdom, and NSERC in Canada.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
abc. The AspectBench Compiler. Home page with downloads, FAQ, documentation, support mailing lists, and bug database, http://aspectbench.org
Aldrich, J.: Open modules: modular reasoning about advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005) (to appear)
Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, New York (2005) (to appear)
Aotani, T., Masuhara, H.: Compiling conditional pointcuts for user-level semantic pointcuts. In: Proceedings of the SPLAT workshop at AOSD (2005), Workshop proceedings available from, http://www.daimi.au.dk/~eernst/splat05/papers/
Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: abc: An extensible AspectJ compiler. In: Aspect-Oriented Software Development (AOSD), pp. 87–98. ACM Press, New York (2005)
Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Optimising AspectJ. In: Programming Language Design and Implementation (PLDI), pp. 117–128. ACM Press, New York (2005)
Batory, D.: A tutorial on feature-oriented programming and the AHEAD tool suite. In: Summer school on Generative and Transformation Techniques in Software Engineering. LNCS (2005) (to appear)
Bruce, K.B., Odersky, M., Wadler, P.: A statically safe alternative to virtual types. In: European Conference on Object-oriented Programming (ECOOP), pp. 523–549 (1998)
Clifton, C., Leavens, G.T., Wand, M.: Parameterized aspect calculus: A core calculus for the direct study of aspect-oriented languages. Technical Report 03-13, Department of Computer Science, Iowa State University, Ames, Iowa (2003), Available from: http://www.cs.iastate.edu/~cclifton/papers/TR03-13.pdf
Dantas, D.S., Walker, D.: Harmless advice. In: Foundations of Object-Oriented Languages, FOOL 2005 (2005), Workshop proceedings available from: http://homepages.inf.ed.ac.uk/wadler/fool/program/
Das, M., Lerner, S., Seigle, M.: ESP: path-sensitive program verification in polynomial time. In: Programming Language Design and Implementation (PLDI), pp. 56–68 (2002)
Douence, R., Fradet, P., Südholt, M.: Trace-based aspects. In: Aspect-oriented Software Development, pp. 141–150. Addison-Wesley, Reading (2004)
Dufour, B., Goard, C., Hendren, L., de Moor, O., Sittampalam, G., Verbrugge, C.: Measuring the dynamic behaviour of AspectJ programs. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pp. 150–169 (2004)
Goldsmith, S., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: Object-Oriented Programming, Systems, Languages and Applications, OOPSLA (2005) (to appear)
Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Aspect-Oriented Software Development (AOSD), pp. 60–69. ACM Press, New York (2003)
Hallem, S., Chelf, B., Xie, Y., Engler, D.: A system and language for building system-specific, static analyses. In: Programming Language Design and Implementation (PLDI), pp. 69–82. ACM Press, New York (2002)
Harbulot, B., Gurd, J.R.: Using AspectJ to separate concerns in parallel scientific Java code. In: Aspect-Oriented Software Development (AOSD), pp. 122–131. ACM Press, New York (2004)
Kiczales, G.: The fun has just begun. Keynote address at AOSD (2003), Available at: http://aosd.net/archive/2003/kiczales-aosd-2003.ppt
Kiczales, G., Lamping, J., Menhdekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: International Conference on Software Engineering (ICSE 2005), pp. 49–58 (2005)
Klose, K., Ostermann, K.: Back to the future: pointcuts as predicates over traces. In: Workshop on Foundations of Aspect-Oriented Languages (FOAL 2005), pp. 33–38 (2005), Workshop proceedings available from: http://archives.cs.iastate.edu/documents/disk0/00/00/03/61/
Kniesel, G., Rho, T., Hanenberg, S.: Evolvable pattern implementations need generic aspects. In: Proc. of ECOOP 2004 Workshop on Reflection, AOP and Meta-Data for Software Evolution, pp. 111–126 (June 2004), Workshop proceedings available from: http://www.disi.unige.it/person/CazzolaW/RAM-SE04.html
Lopez-Herrejon, R., Batory, D.: Improving incremental development in AspectJ by bounding quantification. In: Software Engineering Properties of Languages and Aspect Technologies, SPLAT (2005), Workshop proceedings available from: http://www.daimi.au.dk/~eernst/splat05/papers/
Martian, M., Benjamin Livshits, V., Lam, M.S.: Finding application errors using PQL: A program query language. In: Object-Oriented Programming, Systems, Languages and Applications, OOPSLA (2005) (to appear)
Masuhara, H., Kiczales, G., Dutchyn, C.: A compilation and optimization model for aspect-oriented programs. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 46–60. Springer, Heidelberg (2003)
Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. In: Object-Oriented Programming, Systems, and Languages (OOPSLA), pp. 99–115 (2004)
Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An extensible compiler framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)
Rinard, M., Salcianu, A., Bugrara, S.: A classification system and analysis for aspect-oriented programs. In: Proceedings of the Twelfth International Symposium on the Foundations of Software Engineering, pp. 147–158 (2004)
Skotiniotis, T., Lorenz, D.H.: Cona: aspects for contracts and contracts for aspects. In: OOPSLA 2004: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pp. 196–197. ACM Press, New York (2004)
Stolz, V., Bodden, E.: Temporal Assertions using AspectJ. In: Fifth Workshop on Runtime Verification (RV 2005), Electronic Notes in Theoretical Computer Science. Edinburgh, Scotland, UK. Elsevier Science Publishers, Amsterdam (2005) (to appear)
Vallée-Rai, R., Gagnon, E., Hendren, L.J., Lam, P., Pominville, P., Sundaresan, V.: Optimizing Java bytecode using the Soot framework: Is it feasible? In: Watt, D.A. (ed.) CC 2000. LNCS, vol. 1781, pp. 18–34. Springer, Heidelberg (2000)
Walker, R., Viggers, K.: Implementing protocols via declarative event patterns. In: Foundations of Software Engineering (FSE), pp. 159–169 (2004)
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. ACM Transactions on Programming Languages and Systems 26(5), 890–910 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Allan, C. et al. (2005). abc: The AspectBench Compiler for AspectJ. In: Glück, R., Lowry, M. (eds) Generative Programming and Component Engineering. GPCE 2005. Lecture Notes in Computer Science, vol 3676. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561347_2
Download citation
DOI: https://doi.org/10.1007/11561347_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29138-1
Online ISBN: 978-3-540-31977-1
eBook Packages: Computer ScienceComputer Science (R0)