Abstract
Subroutines are a major complication for Java bytecode verification: they are difficult to fit into the data flow analysis that the Java Virtual Machine (JVM) specification suggests. We examine the problems that occur with subroutines and give an overview of the most prominent solutions in the literature. Using the theorem prover Isabelle/HOL, we have extended our substantial formalization of the JVM and the bytecode verifier with its proof of correctness by the most general solution for bytecode subroutines.
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
Barthe, G., Dufay, G., Jakubiec, L., de Sousa, S.M., Serpette, B.: A formal correspondence between offensive and defensive JavaCard virtual machines. In: Cortesi, A. (ed.) VMCAI 2002. LNCS, vol. 2294, p. 32. Springer, Heidelberg (2002)
Basin, D., Friedrich, S., Gawkowski, M.: Verified bytecode model checkers. In: Carreño, V.A., Muñoz, C.A., Tahar, S. (eds.) TPHOLs 2002. LNCS, vol. 2410, pp. 47–66. Springer, Heidelberg (2002)
Berghofer, S., Nipkow, T.: Executing higher order logic. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) TYPES 2000. LNCS, vol. 2277, pp. 24–40. Springer, Heidelberg (2002)
Coglio, A.: Simple verification technique for complex Java bytecode subroutines. In: Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs (2002)
Freund, S.N.: Type Systems for Object-Oriented Intermediate Languages. PhD thesis, Stanford University (2000)
Isabelle home page (2002), http://isabelle.in.tum.de/
Klein, G.: Verified Java Bytecode Verification. PhD thesis, Institut für Informatik, Technische Universität München (2003)
Klein, G., Nipkow, T.: Verified lightweight bytecode verification. Concurrency and Computation: Practice and Experience 13(13), 1133–1151 (2001); Invited contribution to special issue on Formal Techniques for Java
Klein, G., Nipkow, T.: Verified bytecode verifiers. Theoretical Computer Science 298(3), 583–626 (2002)
Leroy, X.: Java bytecode verification: an overview. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 265–285. Springer, Heidelberg (2001)
Leroy, X.: Java bytecode verification: algorithms and formalizations. J. Automated Reasoning (2004) (to appear)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)
Nipkow, T.: Verified bytecode verifiers. In: Honsell, F., Miculan, M. (eds.) FOSSACS 2001. LNCS, vol. 2030, pp. 347–363. Springer, Heidelberg (2001)
Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)
Posegga, J., Vogt, H.: Java bytecode verification using model checking. In: OOPSLA 1998 Workshop Formal Underpinnings of Java (1998)
Rose, E., Rose, K.: Lightweight bytecode verification. In: OOPSLA 1998 Workshop Formal Underpinnings of Java (1998)
Stärk, R., Schmid, J., Börger, E.: Java and the Java Virtual Machine – Definition, Verification, Validation. Springer, Heidelberg (2001)
Stata, R., Abadi, M.: A type system for Java bytecode subroutines. In: Proc. 25th ACM Symp. Principles of Programming Languages, pp. 149–161. ACM Press, New York (1998)
Wildmoser, M.: Subroutines and Java bytecode verification. Master’s thesis, Technische Universität München (2002)
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
Klein, G., Wildmoser, M. (2003). Verified Bytecode Subroutines. 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_4
Download citation
DOI: https://doi.org/10.1007/10930755_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40664-8
Online ISBN: 978-3-540-45130-3
eBook Packages: Springer Book Archive