skip to main content
research-article

Composition of dynamic analysis aspects

Published:10 October 2010Publication History
Skip Abstract Section

Abstract

Aspect-oriented programming provides a convenient high-level model to define several kinds of dynamic analyses, in particular thanks to recent advances in exhaustive weaving in core libraries. Casting dynamic analyses as aspects allows the use of a single weaving infrastructure to apply different analyses to the same base program, simultaneously. However, even if dynamic analysis aspects are mutually independent, their mere presence perturbates the observations of others: this is due to the fact that aspectual computation is potentially visible to all aspects. Because current aspect composition approaches do not address this kind of computational interference, combining different analysis aspects yields at best unpredictable results. It is also impossible to flexibly combine various analyses, for instance to analyze an analysis aspect. In this paper we show how the notion of execution levels makes it possible to effectively address these composition issues. In order to realize this approach, we explore the practical and efficient integration of execution levels in a mainstream aspect language, AspectJ. We report on a case study of composing two out-of-the-box analysis aspects in a variety of ways, highlighting the benefits of the approach.

References

  1. }}D. Ansaloni, W. Binder, A. Villazon, and P. Moret. Parallel Dynamic Analysis on Multicores with Aspect-Oriented Programming. In AOSD 2010 {3}, pages 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}D. Ansaloni, W. Binder, A. Villazon, and P. Moret. Rapid Development of Extensible Profilers for the Java Virtual Machine with Aspect-Oriented Programming. In WOSP/SIPEW 2010: Proceedings of the First Joint International Conference on Performance Engineering, pages 57--62. ACM Press, Jan. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}Proceedings of the 9th ACM International Conference on Aspect-Oriented Software Development (AOSD 2010), Rennes and Saint Malo, France, Mar. 2010. ACM Press.Google ScholarGoogle Scholar
  4. }}A. Assaf and J. Noye. Dynamic AspectJ. In Proceedings of the 4th ACM Dynamic Languages Symposium (DLS 2008), Paphos, Cyprus, July 2008. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}L. Bergmans, M. Aks'it, and B. Tekinerdogan. Aspect composition using composition filters. In Software Architectures and Component Technology: The State of the Art in Research and Practice, pages 357--382. Kluwer Academic Publishers, 2001.Google ScholarGoogle Scholar
  6. }}W. Binder, D. Ansaloni, A. Villazon, and P. Moret. Parallelizing Calling Context Profiling in Virtual Machines on Multicores. In PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, pages 111--120, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}W. Binder, J. Hulaas, and P. Moret. Advanced Java Bytecode Instrumentation. In PPPJ'07: Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, pages 135--144, New York, NY, USA, 2007. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}E. Bodden, F. Forster, and F. Steimann. Avoiding infinite recursion with stratified aspects. In Proceedings of Net.ObjectDays 2006, Lecture Notes in Informatics, pages 49--54. GI-Edition, 2006.Google ScholarGoogle Scholar
  9. }}E. Bodden and K. Havelund. Racer: Effective Race Detection Using AspectJ. In International Symposium on Software Testing and Analysis (ISSTA), Seattle, WA, July 20--24 2008, pages 155--165, New York, NY, USA, 07 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}L. Bussard, L. Carver, E. Ernst, M. Jung, M. Robillard, and A. Speck. Safe aspect composition. In J. Malenfant, S. Moisan, and A. Moreira, editors, Object-Oriented Technology: ECOOP 2000 Workshop Reader, volume 1964 of Lecture Notes in Computer Science, pages 205--210. Springer-Verlag, 2000.Google ScholarGoogle Scholar
  11. }}B. C. d. S. Oliveira, T. Schrijvers, and W. R. Cook. EffectiveAdvice: discplined advice with explicit effects. In AOSD 2010 {3}, pages 109--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}S. Chiba, G. Kiczales, and J. Lamping. Avoiding confusion in metacircularity: The meta-helix. In Proceedings of the 2nd International Symposium on Object Technologies for Advanced Software (ISOTAS'96), volume 1049 of Lecture Notes in Computer Science, pages 157--172. Springer-Verlag, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}R. Chitchyan, J. Fabry, S. Katz, and A. Rensink. Editorial for special section on dependencies and interactions with aspects. In Transactions on Aspect-Oriented Software Development V, volume 5490 of Lecture Notes in Computer Science, pages 133--134. Springer-Verlag, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}D. S. Dantas, D. Walker, G. Washburn, and S. Weirich. AspectML: A polymorphic aspect-oriented functional programming language. ACM Transactions on Programming Languages and Systems, 30(3):Article No. 14, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}O. Danvy and K. Malmkjaer. Intensions and extensions in a reflective tower. In Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, pages 327--341, Snowbird, Utah, USA, July 1988. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}R. Douence, P. Fradet, and M. Sudholt. A framework for the detection and resolution of aspect interactions. In D. Batory, C. Consel, and W. Taha, editors, Proceedings of the 1st ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE2002), volume 2487 of Lecture Notes in Computer Science, pages 173--188, Pittsburgh, PA, USA, Oct. 2002. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}C. Dutchyn, D. B. Tucker, and S. Krishnamurthi. Semantics and scoping of aspects in higher-order languages. Science of Computer Programming, 63(3):207--239, Dec. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}M. Factor, A. Schuster, and K. Shagin. Instrumentation of standard libraries in object-oriented languages: The twin class hierarchy approach. In OOPSLA '04: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 288--300, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}J. Gosling, B. Joy, G. L. Steele, and G. Bracha. The Java Language Specification, Third Edition. The Java Series. Addison-Wesley, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In K. Lieberherr, editor, Proceedings of the 3rd ACM International Conference on Aspect-Oriented Software Development (AOSD 2004), pages 26--35, Lancaster, UK, Mar. 2004. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}C. Kung and C. Ju-Bing. Aspect-Based Instrumentation for Locating Memory Leaks in Java Programs. In Computer Software and Applications Conference, 2007. COMPSAC 2007, pages 23--28, Beijing, China, 2007. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, Reading, MA, USA, second edition, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}R. Lopez-Herrejon, D. Batory, and C. Lengauer. A disciplined approach to aspect composition. In PEPM '06: Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 68--77, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}H. Masuhara, G. Kiczales, and C. Dutchyn. A compilation and optimization model for aspect-oriented programs. In G. Hedin, editor, Proceedings of Compiler Construction (CC 2003), volume 2622 of Lecture Notes in Computer Science, pages 46--60. Springer-Verlag, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}I. Nagy, L. Bergmans, and M. Aksit. Composing aspects at shared join points. In NetObjectDays (NODe 2005), Lecture Notes in Informatics 69, pages 19--38, Erfurt, Germany, Sept. 2005.Google ScholarGoogle Scholar
  26. }}D. J. Pearce, M. Webster, R. Berry, and P. H. J. Kelly. Profiling with AspectJ. Software: Practice and Experience, 37(7):747--777, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}M. Rinard, A. Salcianu, and S. Bugrara. A classification system and analysis for aspect-oriented programs. In Proceedings of the 12th ACM Symposium on Foundations of Software Engineering (FSE 12), pages 147--158. ACM Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}F. Sanen, E. Truyen, B. D. Win, W. Joosen, N. Loughran, G. Coulson, A. Rashid, A. Nedos, A. Jackson, and S. Clarke. Study on interaction issues. Technical Report AOSD-Europe Deliverable D44, AOSD- Europe-KUL-7, Katholieke Universiteit Leuven, 28 February 2006 2006.Google ScholarGoogle Scholar
  29. }}S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Trans. Comput. Syst., 15(4):391--411, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. }}E. Tanter. Aspects of composition in the Reflex AOP kernel. In W. Lowe and M. Sudholt, editors, Proceedings of the 5th International Symposium on Software Composition (SC 2006), volume 4089 of Lecture Notes in Computer Science, pages 98--113, Vienna, Austria, Mar. 2006. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. }}E. Tanter. Execution levels for aspect-oriented programming. In AOSD 2010 {3}, pages 37--48. Best Paper Award. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}E. Tilevich and Y. Smaragdakis. Transparent program transformations in the presence of opaque code. In GPCE '06: Proceedings of the 5th International Conference on Generative Programming and Component Engineering, pages 89--94, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. }}R.Toledo,P.Leger,and E.Tanter. AspectScript: Expressive aspects for the Web. In AOSD 2010 {3}. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. }}A. Villazon, W. Binder, D. Ansaloni, and P. Moret. Advanced Runtime Adaptation for Java. In GPCE '09: Proceedings of the Eighth International Conference on Generative Programming and Component Engineering, pages 85--94. ACM, Oct. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. }}A. Villazon, W. Binder, P. Moret, and D. Ansaloni. Comprehensive Aspect Weaving for Java. Science of Computer Programming, 2010. http://dx.doi.org/10.1016/j.scico.2010.04.007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. }}A. Zambrano, S. Gordillo, and J. Fabry. A fine grained aspect coordination mechanism. International Journal of Software Engineering and Knowledge Engineering (IJSEKE), December 2010. To appear.Google ScholarGoogle Scholar

Index Terms

  1. Composition of dynamic analysis aspects

    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

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 46, Issue 2
      GPCE '10
      Febuary 2011
      185 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1942788
      Issue’s Table of Contents
      • cover image ACM Conferences
        GPCE '10: Proceedings of the ninth international conference on Generative programming and component engineering
        October 2010
        198 pages
        ISBN:9781450301541
        DOI:10.1145/1868294
        • General Chair:
        • Eelco Visser,
        • Program Chair:
        • Jaakko Järvi

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 10 October 2010

      Check for updates

      Qualifiers

      • research-article

    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!