Translating Java for Multiple Model Checkers: The Bandera Back-End

  • Authors:
  • Radu Iosif;Matthew B. Dwyer;John Hatcliff

  • Affiliations:
  • Department of Computing and Information Sciences, Kansas State University, Manhattan, USA 66506;Department of Computing and Information Sciences, Kansas State University, Manhattan, USA 66506;Department of Computing and Information Sciences, Kansas State University, Manhattan, USA 66506

  • Venue:
  • Formal Methods in System Design
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

One approach to model checking program source code is to view a model checker as a target machine. In this setting, program source code is translated to a model checker's input language using a process that shares much in common with program compilation. For example, well-defined intermediate program representations are used to stage the translation through a series of analyses and optimizing transformations and target-specific details are isolated in code generation modules.In this paper, we present the Bandera Intermediate Representation (BIR)--a guarded-assignment transformation system language that has been designed to support the translation of Java programs to a variety of model checkers. BIR includes constructs, such as inheritance, dynamic creation of data, and locking primitives, that are designed to model the semantics of Java primitives. BIR also includes several non-deterministic choice constructs that support abstraction in modeling and specification of properties of dynamic heap structures.We have developed a BIR-based tool infrastructure that has been applied to develop customized analysis frameworks for several different input languages using different model checking tools. We present BIR's type system and operational semantics in sufficient detail to support similar applications by other researchers. This semantics details several state space reductions and state space search variations. We describe the translation of Java to BIR and how BIR is translated to the input languages of several model checkers.