skip to main content
10.1145/1052898.1052906acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

abc: an extensible AspectJ compiler

Published:14 March 2005Publication History

ABSTRACT

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.

References

  1. abc. The AspectBench Compiler. Home page with downloads, FAQ, documentation, support mailing lists, and bug database. http://aspectbench.org.]]Google ScholarGoogle Scholar
  2. Jonathan Aldrich. Open modules: A proposal for modular reasoning in aspect-oriented programming. Technical Report CMU-ISRI-04-108, Institute for Software Research, Carnegie Mellon University, 2004.]]Google ScholarGoogle ScholarCross RefCross Ref
  3. Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Ondrej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibble. Building the abc AspectJ compiler with Polyglot and Soot. Technical Report abc-2004-4, aspectbench.org, 2004.]]Google ScholarGoogle Scholar
  4. Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Ondrej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibble. Optimising AspectJ. Technical Report abc-2004-3, aspectbench.org, 2004.]]Google ScholarGoogle Scholar
  5. Michael Brukman and Andrew C. Myers. PPG: a parser generator for extensible grammars, 2003. Available at www.cs.cornell.edu/Projects/polyglot/ppg.html.]]Google ScholarGoogle Scholar
  6. Shigeru Chiba and Kiyoshi Nakagawa. Josh: an open AspectJ-like language. In K. Lieberherr, editor, 3rd International Conference on AOSD, pages 102--111, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Shigeru Chiba and Muga Nishizawa. An easy-to-use toolkit for efficient Java bytecode translators. In 2nd International coference on Generative Programming and Component Engineering (GPCE '03), volume 2830 of LNCS, pages 364--376, 2003.]] Google ScholarGoogle Scholar
  8. Adrian Colyer and Andrew Clement. Large-scale AOSD for middleware. In 3rd International Conference on AOSD, pages 56--65. Association for Computing Machinery, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Kris de Volder. Aspect-oriented logic meta-programming. In Pierre Cointe, editor, 2nd International Conference on Meta-level Architectures and Reflection, volume 1616 of LNCS, pages 250--272, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Rémi Douence, Pascal Fradet, and Mario Südholt. Composition, reuse and interaction analysis of stateful aspects. In Karl Lieberherr, editor, 3rd International Conference on AOSD, pages 141--150, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Chris Dutchyn, Gregor Kiczales, and Hidehiko Masuhara. Tutorial: AOP language exploration using the Aspect Sand Box. In 1st International Conference on AOSD, 2002.]]Google ScholarGoogle Scholar
  12. Michael Eichberg, Mira Mezini, and Klaus Ostermann. Pointcuts as functional queries. In Second ASIAN Symposium on Programming Languages and Systems (APLAS 2004), Springer Lecture Notes in Computer Science, 2004.]]Google ScholarGoogle ScholarCross RefCross Ref
  13. Etienne Gagnon, Laurie J. Hendren, and Guillaume Marceau. Efficient inference of static types for Java bytecode. In Static Analysis Symposium, pages 199--219, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kris Gybels and Johan Brichau. Arranging language features for more robust pattern-based crosscuts. In 2nd International Conference on AOSD, pages 60--69. ACM Press, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Stefan Hanenberg and Rainer Unland. Parametric introductions. In Mehmet Aksit, editor, 2nd International Conference on AOSD, pages 80--89, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. David Hanson and Todd Proebsting. A research C# compiler. Software --- Practice and Experience, to appear, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Bruno Harbulot and John R. Gurd. Using AspectJ to separate concerns in parallel scientific Java code. In Proceedings of the 3rd international conference on AOSD, pages 122--131. ACM Press, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Jim Hugunin. Guide for developers of the AspectJ compiler and weaver, 2004. Available at http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/org.aspectj/modules/docs/developer/compiler-weaver/index.html? rev=1.1&content-type=text/html&cvsroot=Technology_Project.]]Google ScholarGoogle Scholar
  19. Gregor Kiczales. The fun has just begun. Keynote address at AOSD. Available at aosd.net/archive/2003/kiczales-aosd-2003.ppt, 2003.]]Google ScholarGoogle Scholar
  20. Shriram Krishnamurthi, Kathi Fisler, and Michael Greenberg. Verifying aspect advice modularly. In ACM SIGSOFT International Symposium on the Foundations of Software Engineering, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Hidehiko Masuhara and Kazunori Kawauchi. Dataflow pointcut in aspect-oriented programming. In 1st Asian Symposium on Programming Languages and Systems, volume 2895 of LNCS, pages 105--121, 2003.]]Google ScholarGoogle ScholarCross RefCross Ref
  22. Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. A compilation and optimization model for aspect-oriented programs. In Compiler Construction, volume 2622 of LNCS, pages 46--60, 2003.]] Google ScholarGoogle ScholarCross RefCross Ref
  23. Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. Polyglot: An extensible compiler framework for Java. In 12th International Conference on Compiler Construction, volume 2622 of LNCS, pages 138--152, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kouhei Sakurai, Hidehiko Masuhara, Naoyasu Ubayashi, Saeko Matsuura, and Seiichi Komiya. Association aspects. In Karl Lieberherr, editor, 3rd International Conference on AOSD, pages 16--25, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Damien Sereni and Oege de Moor. Static analysis of aspects. In Proceedings of the 2nd International Conference on AOSD, pages 30--39, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Raja Vallée-Rai, Etienne Gagnon, Laurie J. Hendren, Patrick Lam, Patrice Pominville, and Vijay Sundaresan. Optimizing Java bytecode using the Soot framework: Is it feasible? In Compiler Construction, 9th International Conference (CC 2000), pages 18--34, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Kris De Volder. The TyRuBa metaprogramming system. Available at http://tyruba.sourceforge.net/.]]Google ScholarGoogle Scholar
  28. Robert Walker and Kevin Viggers. Implementing protocols via declarative event patterns. In ACM Sigsoft International Symposium on Foundations of Software Engineering (FSE-12), 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. abc: an extensible AspectJ compiler

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development
      March 2005
      210 pages
      ISBN:1595930426
      DOI:10.1145/1052898
      • General Chair:
      • Mira Mezini,
      • Program Chair:
      • Peri Tarr

      Copyright © 2005 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 14 March 2005

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate41of139submissions,29%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader