ABSTRACT
Aspect-oriented programming (AOP) is increasingly gaining in popularity. However, the focus of aspect-oriented language research has been mostly on language design issues; efficient implementation techniques have been less popular. As a result, the performance of certain AOP constructs is still poor. This is in particular true for constructs that rely on dynamic properties of the execution (e.g., the cflow construct).In this paper, we present efficient implementation techniques for cflow that exploit direct access to internal structures of the virtual machine running an application, such as the call stack, as well as the integration of these techniques into the just-in-time compiler code generation process.Our results show that AOP has the potential to make programs that need to define control flow-dependent behavior not only more modular but also more efficient. By making means for control flow-dependent behavior part of the language, AOP opens the possibility of applying sophisticated compiler optimizations that are out of reach for application programmers.
- abc (AspectBench Compiler) Home Page. http://aspectbench.org/.Google Scholar
- B. Alpern, D. Attanasio, J. J. Barton, A. Cocchi, S. F. Hummel, D. Lieber, M. Mergen, T. Ngo, J. Shepherd, and S. Smith. Implementing Jalapeño in Java. In 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'99). ACM Press, 1999. Google Scholar
Digital Library
- B. Alpern et al. The Jalapeño Virtual Machine. IBM Systems Journal, 39(1):211--238, February 2000. Google Scholar
Digital Library
- Matthew Arnold and Barbara G. Ryder. Thin guards: A simple and effective technique for reducing the penalty of dynamic class loading. In ECOOP '02: Proceedings of the 16th European Conference on Object-Oriented Programming, pages 498--524, London, UK, 2002. Springer-Verlag. Google Scholar
Digital Library
- AspectJ Home Page. http://www.eclipse.org/aspectj/.Google Scholar
- AspectS Home Page. http://www-ia.tu-ilmenau.de/~hirsch/Projects/Squeak/AspectS/.Google Scholar
- AspectWerkz Home Page. http://aspectwerkz.codehaus.org/.Google Scholar
- P. Avgustinov et al. Optimising AspectJ. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 117--128. ACM Press, 2005. Google Scholar
Digital Library
- C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In Proc. AOSD 2004. ACM Press, 2004. Google Scholar
Digital Library
- J. Bonér. What Are the Key Issues for Commercial AOP Use: how Does AspectWerkz Address Them? In Proc. AOSD 2004, pages 5--6. ACM Press, 2004. Google Scholar
Digital Library
- 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 2005Google Scholar
- T. Dinkelaker, M. Haupt, R. Pawlak, L. D. Benavides Navarro, and V. Gasiunas. Inventory of aspect-oriented execution models. Technical Report AOSD-Europe Deliverable D40, AOSD-Europe-TUD-4, Darmstadt University of Technology, 28 February 2006.Google Scholar
- B. Dufour, C. Goard, L. Hendren, C. Verbrugge, O. de Moor, and G. Sittampalam. Measuring the Dynamic Behaviour of AspectJ Programs. In Proc. OOPSLA 2004, 2004. Google Scholar
Digital Library
- R. E. Filman, T. Elrad, S. Clarke, and M. Akcşit, editors. Aspect-Oriented Software Development. Addison-Wesley, 2005. Google Scholar
Digital Library
- Glassbox-Inspector Home Page. https://glassbox-inspector.dev.java.net/.Google Scholar
- B. Harbulot and J. R. Gurd. Using aspectj to separate concerns in parallel scientific java code. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 122--131. ACM Press, 2004. Google Scholar
Digital Library
- M. Haupt, M. Mezini, C. Bockisch, T. Dinkelaker, M. Eichberg, and M. Krebs. An Execution Layer for Aspect-Oriented Programming Languages. In Proc. VEE 2005. ACM Press, June 2005. Google Scholar
Digital Library
- R. Hirschfeld. AspectS - Aspect-Oriented Programming with Squeak. In M. Aksit, M. Mezini, and R. Unland, editors, Objects, Components, Architectures, Services, and Applications for a Networked World, volume 2591 of LNCS, pages 216--232. Springer, 2003. Google Scholar
Digital Library
- JAsCo Home Page. http://ssel.vub.ac.be/jasco/.Google Scholar
- JBoss AOP Home Page. http://www.jboss.com/products/aop.Google Scholar
- The Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net/.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
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In M. Aksit and S. Matsuoka, editors, ECOOP '97: Object-Oriented Programming, volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer, 1997.Google Scholar
- Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co., Greenwich, CT, USA, 2003. Google Scholar
Digital Library
- Karl Lieberherr, David H. Lorenz, and Pengcheng Wu. A case for statically executable advice: checking the law of demeter with aspectj. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 40--49, New York, NY, USA, 2003. ACM Press. Google Scholar
Digital Library
- H. Masuhara and G. Kiczales. Modeling Crosscutting in Aspect-Oriented Mechanisms. In Proc. ECOOP 2003, 2003.Google Scholar
Cross Ref
- 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
Digital Library
- P. Avgustinov and others. abc: an Extensible AspectJ Compiler. In Proc. AOSD'05, pages 87--98. ACM Press, 2005. Google Scholar
Digital Library
- P. Costanza and R. Hirschfeld. Language Constructs for Context-Oriented Programming: an Overview of ContextL. In Dynamic Languages Symposium (DLS) '05, co-organized with OOPSLA'05. ACM Press, 2005. Google Scholar
Digital Library
- P. Costanza and R. Hirschfeld and W. de Meuter. Efficient Layer Activation for Switching Context-Dependent Behavior. In Joint Modular Languages Conference 2006 (JMLC2006). Springer, 2006. Google Scholar
Digital Library
- D. Sereni and O. de Moor. Static analysis of aspects. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 30--39. ACM Press, 2003. 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
Index Terms
Efficient control flow quantification
Recommendations
Efficient control flow quantification
Proceedings of the 2006 OOPSLA ConferenceAspect-oriented programming (AOP) is increasingly gaining in popularity. However, the focus of aspect-oriented language research has been mostly on language design issues; efficient implementation techniques have been less popular. As a result, the ...
Adapting virtual machine techniques for seamless aspect support
OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsCurrent 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 ...
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 ...







Comments