Skip to main content

Formal Verification of a Java Compiler in Isabelle

  • Conference paper
  • First Online:
Automated Deduction—CADE-18 (CADE 2002)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2392))

Included in the following conference series:

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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/.

  4. A. Dold and V. Vialard. A mechanically verified compiling specification for a Lisp compiler. In Proc. FSTTCS 2001, December 2001.

    Google Scholar 

  5. Gerwin Klein and Tobias Nipkow. Verified bytecode verifiers. Theoretical Computer Science, 2002. to appear.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. R. Milner and R. Weyhrauch. Proving compiler correctness in a mechanized logic. Machine Intelligence, 7:51–70, 1972.

    MATH  Google Scholar 

  8. 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.

    Chapter  Google Scholar 

  9. 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.

    Google Scholar 

  10. Tobias Nipkow, Lawrence Paulson, and Markus Wenzel. Isabelle/HOL. A Proof Assistant for Higher-Order Logic. LNCS 2283. Springer, 2002.

    MATH  Google Scholar 

  11. 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/.

  12. David von Oheimb. Hoare logic for Java in Isabelle/HOL. Concurrency: Practice and Experience, 13(13), 2001.

    Google Scholar 

  13. G. Schellhorn. Verifikation abstrakter Zustandsmaschinen. PhD thesis, Universität Ulm, 1999.

    Google Scholar 

  14. R. Stärk, J. Schmid, and E. Börger. Java and the Java Virtual Machine-Definition, Verification, Validation. Springer Verlag, 2001.

    Google Scholar 

  15. Martin Strecker. Compilation and bytecode verification in μJava. Forthcoming, preprint available from http://www4.in.tum.de/~streckem/Publications/compbcv02.html, 2002.

  16. William D. Young. A mechanically verified code generator. J. of Automated Reasoning, 5(4):493–518, 1989.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics