Jinja: Towards a Comprehensive Formal Semantics for a Java-like Language

Jinja is a Java-like programming language with a formal semantics designed to exhibit core features of Java. It is a compromise between realism of the language and tractability and clarity of the formal semantics. A big and a small step operational semantics are defined and shown equivalent. A type system and a definite initialization analysis are defined and type safety of the small step semantics is shown. The whole development has been carried out in the theorem prover Isabelle/HOL.

[1]  Tobias Nipkow,et al.  Machine-Checking the Java Specification: Proving Type-Safety , 1999, Formal Syntax and Semantics of Java.

[2]  Tobias Nipkow,et al.  Veried Bytecode Veriers , 2002 .

[3]  Sophia Drossopoulou,et al.  Describing the Semantics of Java and Proving Type Soundness , 1999, Formal Syntax and Semantics of Java.

[4]  Markus Wenzel,et al.  Isabelle, Isar - a versatile environment for human readable formal proof documents , 2002 .

[5]  Egon Börger,et al.  Java and the Java Virtual Machine: Definition, Verification, Validation , 2001 .

[6]  Norbert Schirmer Java Definite Assignment in Isabelle/HOL , 2003 .

[7]  Matthias Felleisen,et al.  A Programmer's Reduction Semantics for Classes and Mixins , 1999, Formal Syntax and Semantics of Java.

[8]  Don Syme,et al.  Proving Java Type Soundness , 1999, Formal Syntax and Semantics of Java.

[9]  Tobias Nipkow,et al.  Javalight is type-safe—definitely , 1998, POPL '98.

[10]  Tobias Nipkow,et al.  Structured Proofs in Isar/HOL , 2002, TYPES.

[11]  Tobias Nipkow,et al.  Verified Bytecode Verifiers , 2001, FoSSaCS.

[12]  Martin Strecker,et al.  Formal Verification of a Java Compiler in Isabelle , 2002, CADE.

[13]  Gary T. Leavens,et al.  Formal Techniques for Java-Like Programs , 2003, ECOOP Workshops.

[14]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[15]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[16]  Andrew M. Pitts,et al.  MJ: An imperative core calculus for Java and Java with effects , 2003 .

[17]  G. Winskel The formal semantics of programming languages , 1993 .

[18]  David von Oheimb Analyzing Java in Isabelle-HOL: formalization, type safety and Hoare logic , 2001 .