Generating Verification Conditions from BIRS Code using Basic Paths for Java Bytecode Verification

BIRS is an intermediate representation for verifying Java program. Java program in the form of bytecode could be translated into BIRS code. Verification conditions are generated from the BIRS code to verify the program. We propose a method generating verification conditions for BIRS code. Generating verification conditions is composed of constructing control flow graph for BIRS code, depth first searching for the control flow graph to generate basic paths, and calculating weakest preconditions of the basic paths.

[1]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[2]  K. Rustan M. Leino,et al.  Weakest-precondition of unstructured programs , 2005, PASTE '05.

[3]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[4]  David Detlefs,et al.  Simplify: a theorem prover for program checking , 2005, JACM.

[5]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[6]  Jean-Marc Jézéquel,et al.  Design by Contract: The Lessons of Ariane , 1997, Computer.

[7]  김제민,et al.  Implementation of Stackless Intermediate Representation Language for Java Bytecode , 2011 .

[8]  Yoo Weon-Hee,et al.  Static Type Inference Based on Static Single Assignment for Bytecode , 2006 .

[9]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[10]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[11]  Kyung-Soo Kim,et al.  A Study on Informediated code for Analyzing Bytecodes , 2006 .

[12]  Zohar Manna,et al.  Mathematical Theory of Computation , 2003 .

[13]  Peter Müller,et al.  Formal Translation of Bytecode into BoogiePL , 2007, Electron. Notes Theor. Comput. Sci..

[14]  John G. P. Barnes,et al.  High Integrity Software - The SPARK Approach to Safety and Security , 2003 .

[15]  Cormac Flanagan,et al.  Avoiding exponential explosion: generating compact verification conditions , 2001, POPL '01.

[16]  Jean-Louis Lanet,et al.  JACK - A Tool for Validation of Security and Behaviour of Java Applications , 2006, FMCO.

[17]  Marieke Huisman,et al.  Preliminary Design of BML: A Behavioral Interface Specification Language for Java Bytecode , 2007, FASE.