|
project summary
|
A Bytecode Logic for JML and Types
| Title: |
A Bytecode Logic for JML and Types
|
| Author: |
Lennart
Beringer and Martin Hofmann
|
| Submission date: |
2008-12-12 |
| Abstract: |
This document contains the Isabelle/HOL sources underlying the paper
A bytecode logic for JML and types by Beringer and Hofmann,
updated to Isabelle
2008. We present a program logic for a subset of sequential Java
bytecode that is suitable for representing both, features found in
high-level specification language JML as well as interpretations of
high-level type systems. To this end, we introduce a fine-grained
collection of assertions, including strong invariants, local
annotations and VDM-reminiscent partial-correctness specifications.
Thanks to a goal-oriented structure and interpretation of
judgements, verification may proceed without recourse to an
additional control flow analysis. The suitability for interpreting
intensional type systems is illustrated by the proof-carrying-code
style encoding of a type system for a first-order functional
language which guarantees a constant upper bound on the number of
objects allocated throughout an execution, be the execution
terminating or non-terminating.
Like the published paper, the formal development is restricted to a
comparatively small subset of the JVML, lacking (among other
features) exceptions, arrays, virtual methods, and static fields.
This shortcoming has been overcome meanwhile, as our paper has
formed the basis of the Mobius base logic, a program logic for the full
sequential fragment of the JVML. Indeed, the present formalisation
formed the basis of a subsequent formalisation of the Mobius
base logic in the proof assistant Coq, which includes a proof of
soundness with respect to the Bicolano operational
semantics by Pichardie.
|
| Status: [ok] | This is the development
version of this entry generated for Isabelle-25-Dec-2009. The development version might change over time and is only
permanently archived at Isabelle release points. It is provided as a
preview of the next upcoming release. Please refer to release
versions only in citations. If the status shows [FAIL], the links below
will point to the last working version if any. |
|