Abstract
Java bytecode verification is traditionally performed by a polynomial time data flow algorithm. We investigate an alternative based on reducing bytecode verification to model checking. Despite an exponential worst case time complexity, model checking type-correct bytecode is polynomial in practice when carried out using an explicit state, on the- fly model checker like Spin. We investigate this theoretically and experimentally and explain the practical advantages of this alternative.
The research presented in this paper was partially funded by T-Systems Nova GmbH in the ByCoMoChe project.
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
A. Biere, A. Cimatti, E. Clarke, and Y. Zhu. Symbolic model checking without BDDs. In TACAS’99, volume 1579 of LNCS, Amsterdam, the Netherlands, 1999. Springer-Verlag.
R. Cohen. The defensive java virtual machine specification. Technical report, Computational Logic Inc., 1997.
S. N. Freund and J. C. Mitchell. The type system for object initialization in the Java bytecode language. ACM Transactions on Programming Languages and Systems, 21(6):1196–1250, Nov. 1999.
G. J. Holzmann. The Spin model checker. IEEE Transactions on Software Engineering, 23(5):279–295, May 1997.
K. McMillan. Symbolic Model Checking: An Approach to the State Explosion Problem. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, May 1992. CMU-CS-92-131.
X. Leroy. Java bytecode verification: An overview. In Computer Aided Verification, 13th International Conference, volume 2001 of LNCS, pages 265–285, Paris, France, July 2001. Springer-Verlag.
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Number 1102 in The Java Series. Addison-Wesley, Reading, MA, USA, Jan. 1997.
T. Nipkow. Verified bytecode verifiers. In Foundations of Software Science and Computation Structures (FOSSACS 2001), volume 2030 of LNCS, pages 347–363. Springer-Verlag, 2001.
J. Posegga and H. Vogt. Byte code verification for Java smart cards based on model checking. In Proceedings of the Fifth ESORICS, volume 1485 of LNCS, pages 175–190, Louvain-la-Neuve, Belgium, Sept. 1998. Springer-Verlag.
C. Pusch. Formalizing the Java Virtual Machine in Isabelle/HOL. Technical Report TUM-I9816, Institut für Informatik, Technische Universiät München, 1998.
C. Pusch. Proving the soundness of a Java bytecode verifier specification in Isabelle/HOL. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS’99), volume 1579 of LNCS, pages 89–103, Amsterdam, the Netherlands, 1999. Springer-Verlag.
Z. Qian. A formal specification of Java virtual machine instructions for objects, methods and subroutines. In Formal Syntax and Semantics of Java, volume 1523 of LNCS, pages 271–311. Springer-Verlag, 1999.
Z. Qian. Standard fixpoint iteration for Java bytecode verification. ACM Transactions on Programming Languages and Systems, 22(4):638–672, 2000.
D. Schmidt. Data flow analysis is model checking of abstract interpretations. In Conference record of POPL’ 98, pages 38–48, San Diego, 1998. ACM Press.
D. Schmidt and B. Steffen. Program analysis as model checking of abstract interpretations. In Proceedings of Static Analysis Symposium (SAS’98), volume 1503 of LNCS, pages 351–380, Pisa, Italy, September 1998. Springer-Verlag.
R. F. Stärk and J. Schmid. Java bytecode verification is not possible. In Formal Methods and Tools for Computer Science, Eurocast. Universidad de Las Palmas de Gran Canaria, 2001. Extended Abstract.
R. Stata and M. Abadi. A type system for Java bytecode subroutines. ACM Transactions on Programming Languages and Systems, 21(1):90–137, Jan. 1999.
F. Yellin. Low level security in Java. In World Wide Web Journal: The Fourth International WWW Conference Proceedings, pages 369–380, Cambridge, MA, 1995. O’Reilly.
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
Basin, D., Friedrich, S., Gawkowski, M., Posegga, J. (2002). Bytecode Model Checking: An Experimental Analysis. In: Bošnački, D., Leue, S. (eds) Model Checking Software. SPIN 2002. Lecture Notes in Computer Science, vol 2318. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46017-9_6
Download citation
DOI: https://doi.org/10.1007/3-540-46017-9_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43477-1
Online ISBN: 978-3-540-46017-6
eBook Packages: Springer Book Archive