Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Dynamic weaving for aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
The Java Language Specification
The Java Language Specification
Just-in-time aspects: efficient dynamic weaving for Java
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
AspectS - Aspect-Oriented Programming with Squeak
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
Profiling Java applications using code hotswapping and dynamic call graph revelation
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Proceedings of the 3rd international conference on Aspect-oriented software development
Virtual machine support for dynamic join points
Proceedings of the 3rd international conference on Aspect-oriented software development
IBM Systems Journal
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Proceedings of the 4th international conference on Aspect-oriented software development
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Accurate, efficient, and adaptive calling context profiling
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Flexible and efficient measurement of dynamic bytecode metrics
Proceedings of the 5th international conference on Generative programming and component engineering
Software—Practice & Experience
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Controlled, systematic, and efficient code replacement for running java programs
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Platform-independent profiling in a virtual execution environment
Software—Practice & Experience
CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Debugging and Testing Middleware with Aspect-Based Control-Flow and Causal Patterns
Middleware '08 Proceedings of the ACM/IFIP/USENIX 9th International Middleware Conference
Flexible calling context reification for aspect-oriented programming
Proceedings of the 8th ACM international conference on Aspect-oriented software development
A compilation and optimization model for aspect-oriented programs
CC'03 Proceedings of the 12th international conference on Compiler construction
@J: towards rapid development of dynamic analysis tools for the Java Virtual Machine
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
Parallel dynamic analysis on multicores with aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
A programming model for adaptable Java applications
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
A meta-aspect protocol for developing dynamic analyses
RV'10 Proceedings of the First international conference on Runtime verification
Polymorphic bytecode instrumentation
Proceedings of the tenth international conference on Aspect-oriented software development
Self-refining aspects for dynamic program analysis
Proceedings of the tenth international conference on Aspect-oriented software development companion
Towards a domain-specific aspect language for dynamic program analysis: position paper
Proceedings of the sixth annual workshop on Domain-specific aspect languages
Distributed dynamic weaving is a crosscutting concern
Proceedings of the 2011 ACM Symposium on Applied Computing
Comprehensive aspect weaving for Java
Science of Computer Programming
Safe and atomic run-time code evolution for Java and its application to dynamic AOP
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
A hybrid approach for resource-based comparison of adaptable Java applications
Science of Computer Programming
Dynamic optimization of bytecode instrumentation
Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages
Hi-index | 0.00 |
Dynamic aspect-oriented programming (AOP) enables runtime adaptation of aspects, which is important for building sophisticated, aspect-based software engineering tools, such as adaptive profilers or debuggers that dynamically modify instrumentation code in response to user interactions. Today, many AOP frameworks for Java, notably AspectJ, focus on aspect weaving at compile-time or at load-time, and offer only limited support for aspect adaptation and reweaving at runtime. In this paper, we introduce HotWave, an AOP framework based on AspectJ for standard Java Virtual Machines (JVMs). HotWave supports dynamic (re)weaving of previously loaded classes, and it ensures that all classes loaded in a JVM can be (re)woven, including the classes of the standard Java class library. HotWave features a novel mechanism for inter-advice communication, enabling efficient data passing between advices that are woven into the same method. We explain HotWave's programming model and discuss our implementation techniques. As case study, we present an adaptive, aspect-based profiler that leverages HotWave's distinguishing features.