Executable JVM model for analytical reasoning: a study
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extraction in Coq: An Overview
CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
Imperative Functional Programming with Isabelle/HOL
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
The MOBIUS Proof Carrying Code Infrastructure
Formal Methods for Components and Objects
Turning Inductive into Equational Specifications
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Formalising FinFuns --- Generating Code for Functions as Data from Isabelle/HOL
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Certification of Termination Proofs Using CeTA
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
CoqJVM: an executable specification of the Java virtual machine using dependent types
TYPES'07 Proceedings of the 2007 international conference on Types for proofs and programs
Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL
Theoretical Computer Science
Interpretation of locales in isabelle: theories and proof contexts
MKM'06 Proceedings of the 5th international conference on Mathematical Knowledge Management
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Code generation via higher-order rewrite systems
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Verifying a compiler for java threads
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
The isabelle collections framework
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Java and the java memory model -- a unified, machine-checked formalisation
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
An executable semantics for compcert c
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Making the java memory model safe
ACM Transactions on Programming Languages and Systems (TOPLAS)
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Data refinement in Isabelle/HOL
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Light-Weight containers for isabelle: efficient, extensible, nestable
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
Considerable effort has gone into the techniques of extracting executable code from formal specifications and animating them. We show how to apply these techniques to the large JinjaThreads formalisation. It models a substantial subset of multithreaded Java source and bytecode in Isabelle/HOL and focuses on proofs and modularity whereas code generation was of little concern in its design. Employing Isabelle's code generation facilities, we obtain a verified Java interpreter that is sufficiently efficient for running small Java programs. To this end, we present refined implementations for common notions such as the reflexive transitive closure and Russell's definite description operator. From our experience, we distill simple guidelines on how to develop future formalisations with executability in mind.