Abstract
Using the Isabelle theorem prover [10] we have developed a programming logic for Java bytecode, and demonstrated that it can be used to prove properties of simple bytecode programs involving loops. Our motivation for this was to produce a method by which Java Just-In-Time (JIT) compilers could be assisted to produce more efficient code. This paper discusses the issues involved in the development of the programming logic as it stands, and suggests possible extensions to it. We also describe our experiences of the difficulties inherent in carrying out proof at the level of bytecode instructions, along with the benefits and disadvantages of using a mechanized proof tool.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Microjava theories, http://isabelle.in.tum.de/library/HOL/MicroJava/
Camilleri, J., Melham, T.: Reasoning with Inductively Defined Relations in the HOL Theorem Prover. Technical Report 265, University of Cambridge Computer Laboratory (1992)
Detlefs, D.L., Rustan, K., Leino, M., Nelson, G., Saxe, J.B.: Extended Static Checking. Technical Report 159, Compaq Systems Research Center (1998)
Drossopoulou, S., Eisenbach, S.: Java is Type Safe - Probably. In: Proceedings of the 11th European Conference on Object Oriented Programming (1997)
Huisman, M., Jacobs, B.: Java ProgramVerification via a Hoare Logic with Abrupt Termination. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, p. 284. Springer, Heidelberg (2000)
Jacobs, B.: The LOOP Project, http://www.cs.kun.nl/bart/LOOP/
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1997)
Moore, J.S.: Proving Theorems about Java-like Byte Code (May 1999)
Nipkow, T., von Oheimb, D.: \(Java_{\it light}\) is Type-Safe—Definitely. In: 25th ACM Symposium on Principles of Programming Languages, San Diego, January 19-21 (1998)
Paulson, L.C.: Iterative Software Engineering for Multiagent Systems. LNCS (1994)
Pusch, C.: Formalizing the Java Virtual Machine in Isabelle/HOL. Technical report, Technische Universität München (June 1998)
Quigley, C.L.: Proof for Optimization, Programming Logic Support for Java JIT Compilers. PhD thesis, University of Glasgow, submitted (October 2002)
Syme, D.: Proving Java Type Soundness. Technical report, Computer Laboratory, University of Cambridge (June 1997)
Winskel, G.: The Formal Semantics of Programming Languages. The MIT Press, Cambridge (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Quigley, C.L. (2003). A Programming Logic for Java Bytecode Programs. In: Basin, D., Wolff, B. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2003. Lecture Notes in Computer Science, vol 2758. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10930755_3
Download citation
DOI: https://doi.org/10.1007/10930755_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40664-8
Online ISBN: 978-3-540-45130-3
eBook Packages: Springer Book Archive