On-the-fly dynamic dead variable analysis

  • Authors:
  • Joel P. Self;Eric G. Mercer

  • Affiliations:
  • Department of Computer Science, Brigham Young University, Provo, Utah;Department of Computer Science, Brigham Young University, Provo, Utah

  • Venue:
  • Proceedings of the 14th international SPIN conference on Model checking software
  • Year:
  • 2007

Quantified Score

Hi-index 0.01

Visualization

Abstract

State explosion in model checking continues to be the primary obstacle to widespread use of software model checking. The large input ranges of variables used in software is the main cause of state explosion. As software grows in size and complexity, the problem only becomes worse. As such, model checking research into data abstraction as a way of mitigating state explosion has become more and more important. Data abstractions aim to reduce the effect of large input ranges. This work focuses on a static program analysis technique called dead variable analysis. The goal of dead variable analysis is to discover variable assignments that are not used. When applied to model checking, this allows us to ignore the entire input range of dead variables and thus reduce the size of the explored state space. Prior research into dead variable analysis for model checking does not make full use of dynamic run-time information that is present during model checking. We present an algorithm for intraprocedural dead variable analysis that uses dynamic run-time information to find more dead variables on-the-fly and further reduce the size of the explored state space. We introduce a definition for the maximal state space reduction possible through an on-the-fly dead variable analysis and then show that our algorithm produces a maximal reduction in the absence of non-determinism.