Reachability analysis of program variables

  • Authors:
  • Đurica Nikolić;Fausto Spoto

  • Affiliations:
  • Dipartimento di Informatica, University of Verona, Italy, Centre for Computational and Systems Biology, Microsoft Research - University of Trento, Italy;Dipartimento di Informatica, University of Verona, Italy

  • Venue:
  • IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

A variable v reaches a variable w if there is a path from the memory location bound to v to the one bound to w. This information is important for improving the precision of other static analyses, such as side-effects, field initialization, cyclicity and path-length, as well as of more complex analyses built upon them, such as nullness and termination. We present a provably correct constraint-based reachability analysis for Java bytecode. Our constraint is a graph whose nodes are program points and whose arcs propagate reachability information according to the semantics of bytecodes. The analysis has been implemented in the Julia static analyzer. Experiments that we performed on non-trivial Java and Android programs show a gain in precision due to a reachability information, whose presence also reduces the cost of nullness and termination analyses.