Skip to main content

Bytecode Model Checking: An Experimental Analysis

  • Conference paper
  • First Online:
Model Checking Software (SPIN 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2318))

Included in the following conference series:

  • 478 Accesses

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.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

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

    Google Scholar 

  2. R. Cohen. The defensive java virtual machine specification. Technical report, Computational Logic Inc., 1997.

    Google Scholar 

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

    Article  Google Scholar 

  4. G. J. Holzmann. The Spin model checker. IEEE Transactions on Software Engineering, 23(5):279–295, May 1997.

    Article  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  7. T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Number 1102 in The Java Series. Addison-Wesley, Reading, MA, USA, Jan. 1997.

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

  10. C. Pusch. Formalizing the Java Virtual Machine in Isabelle/HOL. Technical Report TUM-I9816, Institut für Informatik, Technische Universiät München, 1998.

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  13. Z. Qian. Standard fixpoint iteration for Java bytecode verification. ACM Transactions on Programming Languages and Systems, 22(4):638–672, 2000.

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

    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

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

Publish with us

Policies and ethics