Abstract
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.
An early version of the paper was presented at FOAL 2002, Workshop on Foundations of Aspect-Oriented Languages at AOSD 2002.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
James H. Andrews. Process-algebraic foundations of aspect-oriented programming. In Yonezawa and Matsuoka [20], pages 187–209.
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.
Lodewijk Bergmans and Mehmet Aksit. Composing crosscutting concerns using composition filters. Communications of the ACM, 44(10):51–57, October 2001.
Anders Bondorf. Improving binding times without explicit CPS-conversion. In ACM Conferenceon Lisp and Functional Programming, pages 1–10, 1992.
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.
Rémi Douence, Olivier Motelet, and Mario Südholt. A formal definition of crosscuts. In Yonezawa and Matsuoka [20], pages 170–186.
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.
Gregor Kiczales, Jim desRivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.
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.
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.
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.
Hidehiko Masuhara and Akinori Yonezawa. Design and partial evaluation of metaobjects for a concurrent reflective language. In ECOOP’98, pages 418–439, 1998.
Doug Orleans and Karl Lieberherr. DJ: Dynamic adaptive programming in Java. In Yonezawa and Matsuoka [20], pages 73–80.
Harold Ossher and Peri Tarr. Multi-dimensional separation of concerns using hyperspaces. Research Report 21452, IBM, April 1999.
Damien Sereni and Oege de Moor. Static analysis of aspects. In AOSD2003, 2003.
Brian Cantwell Smith. Reflection and semantics in Lisp. In Conference record of Symposium on Principles of Programming Languages, pages 23–35, 1984.
Peter J. Thiemann. Cogen in six lines. In ICFP’96, 1996.
Mitchell Wand. Final algebra semantics and data type extension. Journal of Computer and System Sciences, 19:27–44, 1979.
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.
Akinori Yonezawa and Satoshi Matsuoka, editors. Third International Conference Reflection 2001, volume 2192 of Lecture Notes in Computer Science, 2001.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Masuhara, H., Kiczales, G., Dutchyn, C. (2003). A Compilation and Optimization Model for Aspect-Oriented Programs. In: Hedin, G. (eds) Compiler Construction. CC 2003. Lecture Notes in Computer Science, vol 2622. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36579-6_4
Download citation
DOI: https://doi.org/10.1007/3-540-36579-6_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00904-7
Online ISBN: 978-3-540-36579-2
eBook Packages: Springer Book Archive