Skip to main content

abc: The AspectBench Compiler for AspectJ

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3676))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. abc. The AspectBench Compiler. Home page with downloads, FAQ, documentation, support mailing lists, and bug database, http://aspectbench.org

  2. 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)

    Chapter  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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/

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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

  10. 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/

  11. 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)

    Google Scholar 

  12. Douence, R., Fradet, P., Südholt, M.: Trace-based aspects. In: Aspect-oriented Software Development, pp. 141–150. Addison-Wesley, Reading (2004)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Goldsmith, S., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: Object-Oriented Programming, Systems, Languages and Applications, OOPSLA (2005) (to appear)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Kiczales, G.: The fun has just begun. Keynote address at AOSD (2003), Available at: http://aosd.net/archive/2003/kiczales-aosd-2003.ppt

  19. 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)

    Chapter  Google Scholar 

  20. Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: International Conference on Software Engineering (ICSE 2005), pp. 49–58 (2005)

    Google Scholar 

  21. 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/

  22. 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

  23. 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/

  24. 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)

    Google Scholar 

  25. 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)

    Chapter  Google Scholar 

  26. Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. In: Object-Oriented Programming, Systems, and Languages (OOPSLA), pp. 99–115 (2004)

    Google Scholar 

  27. 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)

    Chapter  Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Chapter  Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Chapter  Google Scholar 

  32. Walker, R., Viggers, K.: Implementing protocols via declarative event patterns. In: Foundations of Software Engineering (FSE), pp. 159–169 (2004)

    Google Scholar 

  33. 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)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics