@J: towards rapid development of dynamic analysis tools for the Java Virtual Machine

  • Authors:
  • Walter Binder;Alex Villazón;Danilo Ansaloni;Philippe Moret

  • Affiliations:
  • University of Lugano, Switzerland;University of Lugano, Switzerland;University of Lugano, Switzerland;University of Lugano, Switzerland

  • Venue:
  • Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many software-engineering tools for the Java Virtual Machine that perform some form of dynamic program analysis, such as profilers or debuggers, are implemented with low-level bytecode instrumentation techniques. While program manipulation at the bytecode level is very flexible, because the possible bytecode transformations are not restricted, tool development is tedious and error-prone. Specifying bytecode instrumentation at a higher level using aspect-oriented programming (AOP) is a promising alternative in order to reduce tool development time and cost. However, prevailing AOP frameworks lack some features that are essential for certain dynamic analyses. In this paper, we focus on three common shortcomings in AOP frameworks with respect to the development of aspect-based tools -- (1) the lack of mechanisms for passing data between woven advices in local variables, (2) the support for user-defined static analyses at weaving time, and (3) the absence of pointcuts at the level of individual basic blocks of code. We propose @J, an annotation-based AOP language and weaver that integrates support for these three features. We illustrate the benefits of the proposed features with two examples.