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.
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Proceedings of the 9th ACM International Conference on Aspect-Oriented Software Development (AOSD 2010), Rennes and Saint Malo, France, Mar. 2010. ACM Press.Google Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}J. Gosling, B. Joy, G. L. Steele, and G. Bracha. The Java Language Specification, Third Edition. The Java Series. Addison-Wesley, 2005. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, Reading, MA, USA, second edition, 1999. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}E. Tanter. Execution levels for aspect-oriented programming. In AOSD 2010 {3}, pages 37--48. Best Paper Award. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}R.Toledo,P.Leger,and E.Tanter. AspectScript: Expressive aspects for the Web. In AOSD 2010 {3}. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Index Terms
Composition of dynamic analysis aspects
Recommendations
Composition of dynamic analysis aspects
GPCE '10: Proceedings of the ninth international conference on Generative programming and component engineeringAspect-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 ...
Composition Analysis of Multiple Aspects in Aspect-Oriented Programs
APSEC '09: Proceedings of the 2009 16th Asia-Pacific Software Engineering ConferenceThis paper presents a classification of widely studied approaches that focus interaction analysis and composition of multiple aspect(s) in aspect-oriented programs (AOP). It is evident that AOP has an ability to distort semantics of base-programs and ...
Composing aspects with aspects
AOSD '10: Proceedings of the 9th International Conference on Aspect-Oriented Software DevelopmentAspect-oriented programming languages modularize crosscutting concerns by separating the concerns from a base program in aspects. What they do not modularize well is the code needed to manage interactions between the aspects themselves. Therefore ...







Comments