Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
A framework for reducing the cost of instrumented code
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
ACM Transactions on Software Engineering and Methodology (TOSEM)
Java Virtual Machine Specification
Java Virtual Machine Specification
Load-Time Structural Reflection in Java
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Avoiding Confusion in Metacircularity: The Meta-Helix
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
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
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Transparent program transformations in the presence of opaque code
Proceedings of the 5th international conference on Generative programming and component engineering
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Semantics and scoping of aspects in higher-order languages
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
Software—Practice & Experience
BIT: a tool for instrumenting java bytecodes
USITS'97 Proceedings of the USENIX Symposium on Internet Technologies and Systems on USENIX Symposium on Internet Technologies and Systems
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Statistically rigorous java performance evaluation
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Racer: effective race detection using aspectj
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Flexible calling context reification for aspect-oriented programming
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Advanced runtime adaptation for Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Runtime bytecode transformation for Smalltalk
Computer Languages, Systems and Structures
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
Execution levels for aspect-oriented programming
Proceedings of the 9th 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
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Efficient layer activation for switching context-dependent behavior
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
General composition of software artifacts
SC'06 Proceedings of the 5th international conference on Software Composition
Towards a domain-specific aspect language for dynamic program analysis: position paper
Proceedings of the sixth annual workshop on Domain-specific aspect languages
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
JP2: collecting dynamic bytecode metrics in JVMs
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Complete and Platform-Independent Calling Context Profiling for the Java Virtual Machine
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
DiSL: a domain-specific language for bytecode instrumentation
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Proceedings of the 34th International Conference on Software Engineering
Challenges for refinement and composition of instrumentations: position paper
SC'12 Proceedings of the 11th international conference on Software Composition
The JVM is not observable enough (and what to do about it)
Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
ShadowVM: robust and comprehensive dynamic program analysis for the java platform
Proceedings of the 12th international conference on Generative programming: concepts & experiences
JP2: Call-site aware calling context profiling for the Java Virtual Machine
Science of Computer Programming
Science of Computer Programming
Hi-index | 0.00 |
Bytecode instrumentation is a widely used technique to implement aspect weaving and dynamic analyses in virtual machines such as the Java Virtual Machine. Aspect weavers and other instrumentations are usually developed independently and combining them often requires significant engineering effort, if at all possible. In this paper we introduce polymorphic bytecode instrumentation (PBI), a simple but effective technique that allows dynamic dispatch amongst several, possibly independent instrumentations. PBI enables complete bytecode coverage, that is, any method with a bytecode representation can be instrumented. We illustrate further benefits of PBI with three case studies. First, we provide an implementation of execution levels for AspectJ, which avoid infinite regression and unwanted interference between aspects. Second, we present a framework for adaptive dynamic analysis, where the analysis to be performed can be changed at runtime by the user. Third, we describe how PBI can be used to support a form of dynamic mixin layers. We provide thorough performance evaluations with dynamic analysis aspects applied to standard benchmarks. We show that PBI-based execution levels are much faster than control flow pointcuts to avoid interference between aspects, and that their efficient integration in a practical aspect language is possible. We also demonstrate that PBI enables adaptive dynamic analysis tools that are more reactive to user inputs than existing tools that rely on dynamic aspect-oriented programming with runtime weaving.