ABSTRACT
Current approaches to compiling aspect-oriented programs are inefficient. This inefficiency has negative effects on the productivity of the development process and is especially prohibitive for dynamic aspect deployment. In this work, we present how well-known virtual machine techniques can be used with only slight modifications to support fast aspect deployment while retaining runtime performance. Our implementation accelerates dynamic aspect deployment by several orders of magnitude relative to mainstream aspect-oriented environments. We also provide a detailed comparison of alternative implementations of execution environments with support for dynamic aspect deployment.
- Homepage of the aspect-oriented extension of the SPEC JVM98 Benchmarks suite. http://www.st.informatik.tu-darmstadt.de/DeployBench.]]Google Scholar
- Homepage of the Envelope-Aware Jikes RVM. http://www.st.informatik.tu-darmstadt.de/EBW-aware.]]Google Scholar
- Jasco homepage. http://ssel.vub.ac.be/jasco/.]]Google Scholar
- Javassist homepage. http://www.csg.is.titech.ac.jp/~chiba/javassist/.]]Google Scholar
- abc (AspectBench Compiler) homepage. http://aspectbench.org/.]]Google Scholar
- A.-R. Adl-Tabatabai, J. Bharadwaj, D.-Y. Chen, A. Ghuloum, V. Menon, B. Murphy, M. Serrano, and T. Shpeisman. The StarJIT compiler: A dynamic compiler for managed runtime environments. Intel Technology Journal, 7(1):19--31, Feb. 2003.]]Google Scholar
- I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. Overview of caesarj. Transactions on AOSD I, LNCS, 3880:135--173, 2006.]] Google Scholar
Digital Library
- M. Arnold, M. Hind, and B. G. Ryder. Online feedback-directed optimization of Java. ACM SIG-PLAN Notices, 37(11):111--129, Nov. 2002. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).]] Google Scholar
Digital Library
- M. Arnold and B. G. Ryder. Thin guards: A simple and effective technique for reducing the penalty of dynamic class loading. In 16th European Conference on Object-Oriented Programming (ECOOP), volume 2374 of LNCS, June 2002.]] Google Scholar
Digital Library
- AspectJ homepage. http://www.eclipse.org/aspectj/.]]Google Scholar
- AspectWerkz homepage. http://aspectwerkz.codehaus.org/.]]Google Scholar
- BAT homepage. http://www.st.informatik.tu-darmstadt.de/BAT.]]Google Scholar
- C. Bockisch, M. Haupt, M. Mezini, and R. Mitschke. Evenelope-based Weaving for Faster Aspect Compilers. In In Net.ObjectDays, 2005.]]Google Scholar
- C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In AOSD 2004 Proceedings. ACM Press, 2004.]] Google Scholar
Digital Library
- J. Bonér. AspectWerkz - Dynamic AOP for Java. http://codehaus.org/~jboner/papers/aosd2004_aspectwerkz.pdf, 2003.]]Google Scholar
- J. Brichau, M. Haupt, N. Leidenfrost, A. Rashid, L. Bergmans, T. Staijen, A. Charfi, C. Bockisch, I. Aracic, V. Gasiunas, K. Ostermann, L. Seinturier, R. Pawlak, M. Südholt, J. Noyé, D. Suvée, M. D'Hondt, P. Ebraert, W. Vanderperren, M. Pinto, L. Fuentes, E. Truyen, A. Moors, M. Bynens, W. Joosen, S. Katz, A. Coyler, H. Hawkins, A. Clement, and O. Spinczyk. Report describing survey of aspect languages and models. Technical Report AOSD-Europe Deliverable D12, AOSD-Europe-VUB-01, Vrije Universiteit Brussel, 17 May 2005 2005]]Google Scholar
- CaesarJ homepage. http://caesarj.org/.]]Google Scholar
- Api specification for package java.lang.instrument. http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/package-summary.html.]]Google Scholar
- D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming (ECOOP), volume 1628 of LNCS, pages 258--278, June 1999.]] Google Scholar
Digital Library
- S. J. Fink and F. Qian. Design, implementation and evaluation of adaptive recompilation with on-stack replacement. In International Symposium on Code Generation and Optimization (CGO), pages 241--252, 2003.]] Google Scholar
Digital Library
- N. Grcevski, A. Kilstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In 3rd Virtual Machine Research and Technology Symposium (VM), May 2004.]] Google Scholar
Digital Library
- D. Gu, C. Verbrugge, and E. Gagnon. Code layout as a source of noise in JVM performance. In Component And Middleware Performance workshop, OOPSLA 2004, 2004.]]Google Scholar
- M. Haupt, M. Mezini, C. Bockisch, T. Dinkelaker, M. Eichberg, and M. Krebs. An Execution Layer for Aspect-Oriented Programming Languages. In J. Vitek, editor, Proceedings of the First International Conference on Virtual Execution Environments (VEE'05), pages 142--152. ACM Press, June 2005.]] Google Scholar
Digital Library
- E. Hilsdale and J. Hugunin. Advice weaving in aspectj. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 26--35, New York, NY, USA, 2004. ACM Press.]] Google Scholar
Digital Library
- U. Hölzle, C. Chambers, and D. Ungar. Debugging optimized code with dynamic deoptimization. In Proceedings of the ACM SIGPLAN'92 Conference on Programming Language Design and Implementation (PLDI), pages 32--43, San Francisco, California, 17-19 June 1992. SIGPLAN Notices 27(7), July 1992.]] Google Scholar
Digital Library
- K. Ishizaki, M. Takeuchi, K. Kawachiya, T. Suganuma, O. Gohda, T. Inagaki, A. Koseki, K. Ogata, M. Kawahito, T. Yasue, T. Ogasawara, T. Onodera, H. Komatsu, and T. Nakatani. Effectiveness of cross-platform optimizations for a Java just-in-time compiler. ACM SIG-PLAN Notices, 38(11):187--204, Nov. 2003.]] Google Scholar
Digital Library
- The Java Reflection API. http://java.sun.com/j2se/1.4.2/docs/api/index.html.]]Google Scholar
- The Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net/.]]Google Scholar
- Jni (java native interface) homepage. http://java.sun.com/j2se/1.4.2/docs/guide/jni/.]]Google Scholar
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In J. Lindskov Knudsen, editor, Proc. ECOOP 2001, volume 2072 of LNCS, pages 327--353. Springer, 2001.]] Google Scholar
Digital Library
- T. Lindholm and F. Yellin, editors. The Java(TM) Virtual Machine Specification (2nd Edition). Addison-Wesley, 1999.]] Google Scholar
Digital Library
- H. Masuhara and G. Kiczales. Modeling crosscutting in aspect-oriented mechanisms. In 17th European Conference on Object-Oriented Programming (ECOOP), pages 2--28, 2003.]]Google Scholar
Cross Ref
- H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In Foundations Of Aspect-Oriented Languages (Workshop at AOSD 2002), April 2002.]]Google Scholar
- H. Masuhara, G. Kiczales, and C. Dutchyn. A Compilation and Optimization Model for Aspect-Oriented Programs. In G. Hedin, editor, Proc. CC 2003, volume 2622 of LNCS, pages 46--60. Springer, 2003.]]Google Scholar
- M. Paleczny, C. Vick, and C. Click. The Java Hotspot server compiler. In Java Virtual Machine Research and Technology Symposium (JVM), pages 1--12, Apr. 2001.]] Google Scholar
Digital Library
- A. Popovici, G. Alonso, and T. Gross. Just-In-Time Aspects: Efficient Dynamic Weaving for Java. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pages 100--109. ACM Press, 2003.]] Google Scholar
Digital Library
- A. Popovici, T. Gross, and G. Alonso. Dynamic Homogenous AOP with PROSE. Technical report, Department of Computer Science, ETH Zürich, Zürich, Switzerland, March 2001.]]Google Scholar
- A. Popovici, T. Gross, and G. Alonso. Dynamic Weaving for Aspect-Oriented Programming. In AOSD '02: Proceedings of the 1st International Conference on Aspect-Oriented Software Development, pages 141--147. ACM Press, 2002.]] Google Scholar
Digital Library
- The PROSE Homepage. http://prose.ethz.ch/Wiki.jsp.]]Google Scholar
- H. Rajan and K. Sullivan. Eos: instance-level aspects for integrated system design. In ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering, pages 297--306, New York, NY, USA, 2003. ACM Press.]] Google Scholar
Digital Library
- K. Sakurai, H. Masuhara, N. Ubayashi, S. Matsuura, and S. Komiya. Association aspects. In AOSD, pages 16--25, 2004.]] Google Scholar
Digital Library
- SPEC JVM98 homepage. http://www.spec.org/osg/jvm98/.]]Google Scholar
- The Steamloom Homepage. http://www.st.informatik.tu-darmstadt.de/static/pages/projects/AORTA/Steamloom.jsp.]]Google Scholar
- T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A dynamic optimization framework for a Java just-in-time compiler. ACM SIG- PLAN Notices, 36(11):180--195, Nov. 2001. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).]] Google Scholar
Digital Library
- T. Suganuma, T. Yasue, and T. Nakatani. An empirical study of method in-lining for a Java just-in-time compiler. In Java Virtual Machine Research and Technology Symposium (JVM), pages 91--104, Aug. 2002.]] Google Scholar
Digital Library
- D. Suvée, W. Vanderperren, and V. Jonckers. JAsCo: an Aspect-Oriented Approach Tailored for Component Based Software Development. In Proc. AOSD 2003, pages 21--29, 2003.]] Google Scholar
Digital Library
- W. Vanderperren and D. Suvee. Optimizing jasco dynamic aop through hotswap and jutta. In Proceedings of the 2004 Dynamic Aspects Workshop, 2004.]]Google Scholar
- W. Vanderperren, D. Suvée, M. A. Cibrán, and B. D. Fraine. Stateful Aspects in JAsCo. http://ssel.vub.ac.be/jasco/media/sc2005.pdf.]]Google Scholar
- W. Vanderperren, D. Suvée, B. Verheecke, M. A. Cibrán, and V. Jonckers. Adaptive programming in jasco. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 75--86, New York, NY, USA, 2005. ACM Press.]] Google Scholar
Digital Library
- A. Vasseur. Dynamic AOP and Runtime Weaving for Java - How does AspectWerkz Address It? http://aspectwerkz.codehaus.org/downloads/papers/aosd2004-daw-aspectwerkz.pdf, 2004.]]Google Scholar
- A. Vasseur, J. Bonér, and J. Dahlstedt. JRockit JVM Support for AOP. http://dev2dev.bea.com/pub/a/2005/08/jvm_aop_1.html.]]Google Scholar
- Xalan-Java version 2.6.0. http://xml.apache.org/xalan-j/.]]Google Scholar
Index Terms
Adapting virtual machine techniques for seamless aspect support
Recommendations
Adapting virtual machine techniques for seamless aspect support
Proceedings of the 2006 OOPSLA ConferenceCurrent approaches to compiling aspect-oriented programs are inefficient. This inefficiency has negative effects on the productivity of the development process and is especially prohibitive for dynamic aspect deployment. In this work, we present how ...
Comprehensive aspect weaving for Java
Aspect-oriented programming (AOP) has been successfully applied to application code thanks to techniques such as Java bytecode instrumentation. Unfortunately, with existing AOP frameworks for Java such as AspectJ, aspects cannot be woven into the ...
Aspect weaving in standard Java class libraries
PPPJ '08: Proceedings of the 6th international symposium on Principles and practice of programming in JavaAspect-oriented programming (AOP) has been successfully applied to application code thanks to techniques such as Java bytecode instrumentation. Unfortunately, with current technology, such as AspectJ, aspects cannot be woven into standard Java class ...







Comments