Authors
Gerwin Klein, Tobias Nipkow
Publication date
2006/7/1
Journal
ACM Transactions on Programming Languages and Systems (TOPLAS)
Volume
28
Issue
4
Pages
619-695
Publisher
ACM
Description
We introduce Jinja, a Java-like programming language with a formal semantics designed to exhibit core features of the Java language architecture. Jinja is a compromise between the realism of the language and the tractability and clarity of its formal semantics. The following aspects are formalised: a big and a small step operational semantics for Jinja and a proof of their equivalence, a type system and a definite initialisation analysis, a type safety proof of the small step semantics, a virtual machine (JVM), its operational semantics and its type system, a type safety proof for the JVM; a bytecode verifier, that is, a data flow analyser for the JVM, a correctness proof of the bytecode verifier with respect to the type system, and a compiler and a proof that it preserves semantics and well-typedness. The emphasis of this work is not on particular language features but on providing a unified model of the source language, the …
Total citations
2005200620072008200920102011201220132014201520162017201820192020202120222023202410161937323519292132191719181188725
Scholar articles