A Logic for Bytecode

Fabian Yves Bannwart, Péter Müller · Repository for Publications and Research Data (ETH Zurich) · 2004

Firstly, this technical report presents a Hoare-style programming logic (“axiomatic semantics”) for a sequential, stack-based bytecode language with unstructured control flow and OO-features similar to the JVM or the CLI languages. We prove soundness and completeness with respect to the operational semantics and derive a weakest precondition calculus that does not sacrifice modular reasoning. We then extend the bytecode language and its logic to include structured exception handling and class initialization and we show how the weakest precondition calculus can be used to trivially derive provably correct rules for most JVM and many CLI instructions.

Read the paper · More papers on PaperTik