A Formal Specification of Java Virtual Machine Instructions for Objects, Methods and Subrountines

  • Authors:
  • Zhenyu Qian

  • Affiliations:
  • -

  • Venue:
  • Formal Syntax and Semantics of Java
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this chapter we formally specify a subset of Java Virtual Machine (JVM) instructions for objects, methods and subroutines based on the official JVM Specification, the official Java Language Specification and Sun's JDK 1.1.4 implementation of the JVM. Our formal speci fication describes the runtime behaviors of the instructions in relevant memory areas as state transitions and most structural and linking constraints on the instructions as a static typing system. The typing system includes a core of the Bytecode Verifier and resembles data-flow analysis. We state some properties based on our formal Specification and sketch the proofs. One of these properties is that if a JVM program is statically well-typed with respect to the typing system, then the runtime data of the program will be type-correct. Our formal Specification clarifies some ambiguities and incompleteness and removes some (in our view) unnecessary restrictions in the description of the official JVM Specification.