The Java Virtual Machine (JVM) postpones running classinitialization methods until their classes are first referenced, such as by a new or static instruction. This process is called dynamic class initialization. Jinj...
详细信息
ISBN:
(纸本)9781450362221
The Java Virtual Machine (JVM) postpones running classinitialization methods until their classes are first referenced, such as by a new or static instruction. This process is called dynamic class initialization. Jinja is a semantic framework for Java and JVM developed in the theorem prover Isabelle that includes several semantics: Java-level big-step and small-step semantics, JVM-level small-step semantics, and an intermediate compilation step, J1, between these two levels. In this paper, we extend Jinja to include support for static instructions and dynamic class initialization. We also extend and re-prove related proofs, including Java-level type safety, equivalence between Java-level big-step and small-step semantics, and the correctness of a compilation from the Java level to the JVM level through J1. This work is based on the Java SE 8 specification.
暂无评论