skip to main content
10.1145/1167473.1167483acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Adapting virtual machine techniques for seamless aspect support

Published:16 October 2006Publication History

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.

References

  1. Homepage of the aspect-oriented extension of the SPEC JVM98 Benchmarks suite. http://www.st.informatik.tu-darmstadt.de/DeployBench.]]Google ScholarGoogle Scholar
  2. Homepage of the Envelope-Aware Jikes RVM. http://www.st.informatik.tu-darmstadt.de/EBW-aware.]]Google ScholarGoogle Scholar
  3. Jasco homepage. http://ssel.vub.ac.be/jasco/.]]Google ScholarGoogle Scholar
  4. Javassist homepage. http://www.csg.is.titech.ac.jp/~chiba/javassist/.]]Google ScholarGoogle Scholar
  5. abc (AspectBench Compiler) homepage. http://aspectbench.org/.]]Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. Overview of caesarj. Transactions on AOSD I, LNCS, 3880:135--173, 2006.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. AspectJ homepage. http://www.eclipse.org/aspectj/.]]Google ScholarGoogle Scholar
  11. AspectWerkz homepage. http://aspectwerkz.codehaus.org/.]]Google ScholarGoogle Scholar
  12. BAT homepage. http://www.st.informatik.tu-darmstadt.de/BAT.]]Google ScholarGoogle Scholar
  13. C. Bockisch, M. Haupt, M. Mezini, and R. Mitschke. Evenelope-based Weaving for Faster Aspect Compilers. In In Net.ObjectDays, 2005.]]Google ScholarGoogle Scholar
  14. C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In AOSD 2004 Proceedings. ACM Press, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Bonér. AspectWerkz - Dynamic AOP for Java. http://codehaus.org/~jboner/papers/aosd2004_aspectwerkz.pdf, 2003.]]Google ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. CaesarJ homepage. http://caesarj.org/.]]Google ScholarGoogle Scholar
  18. Api specification for package java.lang.instrument. http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/package-summary.html.]]Google ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. The Java Reflection API. http://java.sun.com/j2se/1.4.2/docs/api/index.html.]]Google ScholarGoogle Scholar
  28. The Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net/.]]Google ScholarGoogle Scholar
  29. Jni (java native interface) homepage. http://java.sun.com/j2se/1.4.2/docs/guide/jni/.]]Google ScholarGoogle Scholar
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. T. Lindholm and F. Yellin, editors. The Java(TM) Virtual Machine Specification (2nd Edition). Addison-Wesley, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarCross RefCross Ref
  33. 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 ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle Scholar
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. The PROSE Homepage. http://prose.ethz.ch/Wiki.jsp.]]Google ScholarGoogle Scholar
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. K. Sakurai, H. Masuhara, N. Ubayashi, S. Matsuura, and S. Komiya. Association aspects. In AOSD, pages 16--25, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. SPEC JVM98 homepage. http://www.spec.org/osg/jvm98/.]]Google ScholarGoogle Scholar
  43. The Steamloom Homepage. http://www.st.informatik.tu-darmstadt.de/static/pages/projects/AORTA/Steamloom.jsp.]]Google ScholarGoogle Scholar
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. W. Vanderperren and D. Suvee. Optimizing jasco dynamic aop through hotswap and jutta. In Proceedings of the 2004 Dynamic Aspects Workshop, 2004.]]Google ScholarGoogle Scholar
  48. 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 ScholarGoogle Scholar
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle Scholar
  51. 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 ScholarGoogle Scholar
  52. Xalan-Java version 2.6.0. http://xml.apache.org/xalan-j/.]]Google ScholarGoogle Scholar

Index Terms

  1. Adapting virtual machine techniques for seamless aspect support

    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

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!