Abstract
This paper reports on the formal proof of correctness of a compiler from a substantial subset of Java source language to Java bytecode in the proof environment Isabelle. This work is based on extensive previous formalizations of Java, which comprise all relevant features of object-orientation. We place particular emphasis on describing the effects of design decisions in these formalizations on the compiler correctness proof.
This research is funded by the EU project VerifiCard
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Stefan Berghofer and Tobias Nipkow. Executing higher order logic. In Proc. TYPES Working Group Annual Meeting 2000, LNCS, 2000. Available from http://www4.in.tum.de/~berghofe/papers/TYPES2000.pdf.
Samuel Boutin. Preuve de correction de la compilation de Mini-ML en code CAM dans le système d’aide à la démonstration COQ. Technical Report 2536, INRIA Rocquencourt, April 1995.
Paul Curzon. A verified Vista implementation. Technical Report 311, University of Cambridge, Computer Laboratory, September 1993. Available from http://www.cl.cam.ac.uk/Research/HVG/vista/.
A. Dold and V. Vialard. A mechanically verified compiling specification for a Lisp compiler. In Proc. FSTTCS 2001, December 2001.
Gerwin Klein and Tobias Nipkow. Verified bytecode verifiers. Theoretical Computer Science, 2002. to appear.
J.S. Moore, W.R. Bevier, W. A. Hunt, and W. D. Young. System verification. Special issue of J. of Automated Reasoning, 5(4), 1989.
R. Milner and R. Weyhrauch. Proving compiler correctness in a mechanized logic. Machine Intelligence, 7:51–70, 1972.
Tobias Nipkow. Verified bytecode verifiers. In M. Miculan F. Honsell, editor, Foundations of Software Science and Computation Structures (FOS-SACS 2001), volume 2030 of Lecture Notes in Computer Science. Springer Verlag, 2001.
Tobias Nipkow, David von Oheimb, and Cornelia Pusch. μJava: Embedding a programming language in a theorem prover. In F.L. Bauer and R. Steinbrüggen, editors, Foundations of Secure Computation. Proc. Int. Summer School Marktoberdorf 1999, pages 117–144. IOS Press, 2000.
Tobias Nipkow, Lawrence Paulson, and Markus Wenzel. Isabelle/HOL. A Proof Assistant for Higher-Order Logic. LNCS 2283. Springer, 2002.
David von Oheimb. Analyzing Java in Isabelle/HOL: Formalization, Type Safety and Hoare Logic. PhD thesis, Technische Universität München, 2001. http://www4.in.tum.de/~oheimb/diss/.
David von Oheimb. Hoare logic for Java in Isabelle/HOL. Concurrency: Practice and Experience, 13(13), 2001.
G. Schellhorn. Verifikation abstrakter Zustandsmaschinen. PhD thesis, Universität Ulm, 1999.
R. Stärk, J. Schmid, and E. Börger. Java and the Java Virtual Machine-Definition, Verification, Validation. Springer Verlag, 2001.
Martin Strecker. Compilation and bytecode verification in μJava. Forthcoming, preprint available from http://www4.in.tum.de/~streckem/Publications/compbcv02.html, 2002.
William D. Young. A mechanically verified code generator. J. of Automated Reasoning, 5(4):493–518, 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Strecker, M. (2002). Formal Verification of a Java Compiler in Isabelle. In: Voronkov, A. (eds) Automated Deduction—CADE-18. CADE 2002. Lecture Notes in Computer Science(), vol 2392. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45620-1_5
Download citation
DOI: https://doi.org/10.1007/3-540-45620-1_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43931-8
Online ISBN: 978-3-540-45620-9
eBook Packages: Springer Book Archive