Simple verification technique for complex Java bytecode subroutines: Research Articles

  • Authors:
  • Alessandro Coglio

  • Affiliations:
  • Kestrel Institute, 3260 Hillview Avenue, Palo Alto, CA 94304, U.S.A.

  • Venue:
  • Concurrency and Computation: Practice & Experience - Formal Techniques for Java-like Programs
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Java is normally compiled to bytecode, which is verified and then executed by the Java Virtual Machine. Bytecode produced via compilation must pass verification. The main cause of complexity for bytecode verification is subroutines, used by compilers to generate more compact code. The techniques to verify subroutines proposed in the literature reject certain programs produced by mundane compilers, are difficult to realize within an implementation of the Java Virtual Machine or are relatively complicated. This paper presents a novel technique which is very simple to understand, implement and prove sound. It is also very powerful: the set of accepted programs has a simple characterization which most likely includes all the code produced by current compilers and which enables future compilers to make more extensive use of subroutines. Copyright © 2004 John Wiley & Sons, Ltd.