Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Composition of dynamic analysis aspects

Published: 10 October 2010 Publication History

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.
[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.
[3]
}}Proceedings of the 9th ACM International Conference on Aspect-Oriented Software Development (AOSD 2010), Rennes and Saint Malo, France, Mar. 2010. ACM Press.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[19]
}}J. Gosling, B. Joy, G. L. Steele, and G. Bracha. The Java Language Specification, Third Edition. The Java Series. Addison-Wesley, 2005.
[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.
[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.
[22]
}}T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, Reading, MA, USA, second edition, 1999.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[31]
}}E. Tanter. Execution levels for aspect-oriented programming. In AOSD 2010 {3}, pages 37--48. Best Paper Award.
[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.
[33]
}}R.Toledo,P.Leger,and E.Tanter. AspectScript: Expressive aspects for the Web. In AOSD 2010 {3}.
[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.
[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.
[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.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 October 2010
Published in SIGPLAN Volume 46, Issue 2

Check for updates

Author Tags

  1. AspectJ
  2. aspect composition
  3. aspect-oriented programming
  4. dynamic program analysis
  5. execution levels

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Nov 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media