Completeness of a Bytecode Verifier and a Certifying Java-to-JVM Compiler

  • Authors:
  • Robert F. Stärk;Joachim Schmid

  • Affiliations:
  • ETH Zürich. e-mail: staerk@inf.ethz.ch;Siemens AG, Munich. e-mail: joachim.schmid@tydo.de

  • Venue:
  • Journal of Automated Reasoning
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

During an attempt to prove that the Java-to-JVM compiler generates code that is accepted by the bytecode verifier, we found examples of legal Java programs that are rejected by the verifier. We propose therefore to restrict the rules of definite assignment for the try-finally statement as well as for the labeled statement so that the example programs are no longer allowed. Then we can prove, using the framework of Abstract State Machines, that each program from the slightly restricted Java language is accepted by the Bytecode Verifier. In the proof we use a new notion of bytecode type assignment without subroutine call stacks.