A Compilation and Optimization Model for Aspect-Oriented Programs

  • H. Masuhara
  • G. Kiczales
  • C. Dutchyn
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2622)


This paper presents a semantics-based compilation model for an aspect-oriented programming language based on its operational semantics. Using partial evaluation, the model can explain several issues in compilation processes, including how to find places in program text to insert aspect code and how to remove unnecessary run-time checks. It also illustrates optimization of calling-context sensitive pointcuts (cflow), implemented in real compilers.


Operational Semantic Partial Evaluation Advice Body Subject Program Program Text 
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.


  1. 1.
    James H. Andrews. Process-algebraic foundations of aspect-oriented programming. In Yonezawa and Matsuoka [20], pages 187–209.Google Scholar
  2. 2.
    Kenichi Asai, Satoshi Matsuoka, and Akinori Yonezawa. Duplication and partial evaluation-for a better understanding of reflective languages-. Lisp and Symbolic Computation, 9:203–241, 1996.CrossRefGoogle Scholar
  3. 3.
    Lodewijk Bergmans and Mehmet Aksit. Composing crosscutting concerns using composition filters. Communications of the ACM, 44(10):51–57, October 2001.CrossRefGoogle Scholar
  4. 4.
    Anders Bondorf. Improving binding times without explicit CPS-conversion. In ACM Conferenceon Lisp and Functional Programming, pages 1–10, 1992.Google Scholar
  5. 5.
    Yvonne Coady, Gregor Kiczales, Mike Feeley, and Greg Smolyn. Using AspectC to improve the modularity of path-specific customization in operating system code. In FSE-9, pages 88–98, 2001.Google Scholar
  6. 6.
    Rémi Douence, Olivier Motelet, and Mario Südholt. A formal definition of crosscuts. In Yonezawa and Matsuoka [20], pages 170–186.Google Scholar
  7. 7.
    Yoshihiko Futamura. Partial evaluation of computation process-an approach to a compiler-compiler. Higher-Order and Symbolic Computation, 12(4):381–391, 1999. Reprinted from Systems, Computers, Controls, 2(5):45–50, 1971.MATHCrossRefGoogle Scholar
  8. 8.
    Gregor Kiczales, Jim desRivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.Google Scholar
  9. 9.
    Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In ECOOP 2001, pages 327–353, 2001.Google Scholar
  10. 10.
    Gregor Kiczales, John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In ECOOP’ 97, pages 220–242, 1997.Google Scholar
  11. 11.
    Hidehiko Masuhara, Satoshi Matsuoka, Kenichi Asai, and Akinori Yonezawa. Compiling away the meta-level in object-oriented concurrent reflective languages using partial evaluation. In OOPSLA’95, pages 300–315, 1995.Google Scholar
  12. 12.
    Hidehiko Masuhara and Akinori Yonezawa. Design and partial evaluation of metaobjects for a concurrent reflective language. In ECOOP’98, pages 418–439, 1998.Google Scholar
  13. 13.
    Doug Orleans and Karl Lieberherr. DJ: Dynamic adaptive programming in Java. In Yonezawa and Matsuoka [20], pages 73–80.Google Scholar
  14. 14.
    Harold Ossher and Peri Tarr. Multi-dimensional separation of concerns using hyperspaces. Research Report 21452, IBM, April 1999.Google Scholar
  15. 15.
    Damien Sereni and Oege de Moor. Static analysis of aspects. In AOSD2003, 2003.Google Scholar
  16. 16.
    Brian Cantwell Smith. Reflection and semantics in Lisp. In Conference record of Symposium on Principles of Programming Languages, pages 23–35, 1984.Google Scholar
  17. 17.
    Peter J. Thiemann. Cogen in six lines. In ICFP’96, 1996.Google Scholar
  18. 18.
    Mitchell Wand. Final algebra semantics and data type extension. Journal of Computer and System Sciences, 19:27–44, 1979.MATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Mitchell Wand, Gregor Kiczales, and Chris Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. In Proceedings of FOAL2002, pages 1–8, 2002.Google Scholar
  20. 20.
    Akinori Yonezawa and Satoshi Matsuoka, editors. Third International Conference Reflection 2001, volume 2192 of Lecture Notes in Computer Science, 2001.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • H. Masuhara
    • 1
  • G. Kiczales
    • 2
  • C. Dutchyn
    • 3
  1. 1.Graduate School of Arts and SciencesUniversity of TokyoTokyo
  2. 2.Intentional Software CorporationUSA
  3. 3.Department of Computer ScienceUniversity of British ColumbiaColumbia

Personalised recommendations