Advertisement

abc: The AspectBench Compiler for AspectJ

  • Chris Allan
  • Pavel Avgustinov
  • Aske Simon Christensen
  • Laurie Hendren
  • Sascha Kuzins
  • Jennifer Lhoták
  • Ondřej Lhoták
  • Oege de Moor
  • Damien Sereni
  • Ganesh Sittampalam
  • Julian Tibble
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Keywords

Workshop Proceeding Abstract Syntax Tree Extra Code Virtual Type Modular Reasoning 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    abc. The AspectBench Compiler. Home page with downloads, FAQ, documentation, support mailing lists, and bug database, http://aspectbench.org
  2. 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)CrossRefGoogle Scholar
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  20. 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. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  26. 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. 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)CrossRefGoogle Scholar
  28. 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. 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)CrossRefGoogle Scholar
  30. 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. 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)CrossRefGoogle Scholar
  32. 32.
    Walker, R., Viggers, K.: Implementing protocols via declarative event patterns. In: Foundations of Software Engineering (FSE), pp. 159–169 (2004)Google Scholar
  33. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Chris Allan
    • 1
  • Pavel Avgustinov
    • 1
  • Aske Simon Christensen
    • 2
  • Laurie Hendren
    • 3
  • Sascha Kuzins
    • 1
  • Jennifer Lhoták
    • 3
  • Ondřej Lhoták
    • 3
  • Oege de Moor
    • 1
  • Damien Sereni
    • 1
  • Ganesh Sittampalam
    • 1
  • Julian Tibble
    • 1
  1. 1.Programming Tools GroupOxford UniversityUnited Kingdom
  2. 2.BRICSUniversity of AarhusDenmark
  3. 3.Sable Research GroupMcGill UniversityMontrealCanada

Personalised recommendations