Skip to main content

A Type-Theoretic Memory Model for Verification of Sequential Java Programs

  • Conference paper
Recent Trends in Algebraic Development Techniques (WADT 1999)

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

Included in the following conference series:

Abstract

This paper explains the details of the memory model underlying the verification of sequential Java programs in the “LOOP” project ([14,20]). The building blocks of this memory are cells, which are untyped in the sense that they can store the contents of the fields of an arbitrary Java object. The main memory is modeled as three infinite series of such cells, one for storing instance variables on a heap, one for local variables and parameters on a stack, and and one for static (or class) variables. Verification on the basis of this memory model is illustrated both in PVS and in Isabelle/HOL, via several examples of Java programs, involving various subtleties of the language (wrt. memory storage).

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.

References

  1. JavaCard API 2.1, http://java.sun.com/products/javacard/htmldoc/

  2. Arnold, K., Gosling, J.: The Java Programming Language, 2nd edn. Addison-Wesley, Reading (1997)

    Google Scholar 

  3. Bergstra, J., Loots, M.: Empirical semantics for object-oriented programs. Artificial Intelligence Preprint Series nr. 007, Dep. Philosophy, Utrecht Univ. (1999)

    Google Scholar 

  4. Borger, E., Schulte, W.: Initialization problems in Java. Software—Concepts and Tools 20(4) (1999)

    Google Scholar 

  5. Goguen, J.A., Malcolm, G.: Algebraic Semantics of Imperative Programs. MIT Press, Cambridge (1996)

    MATH  Google Scholar 

  6. Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  7. Griifioen, D., Huisman, M.: A comparison of PVS and Isabelle/HOL. In: Grundy, J., Newey, M. (eds.) TPHOLs 1998. LNCS, vol. 1479, pp. 123–142. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  8. Huisman, M., Jacobs, B.: Inheritance in higher order logic: Modeling and reasoning. Techn. Rep. CSI-R0004, Comput. Sci. Inst., Univ. of Nijmegen (2000)

    Google Scholar 

  9. Huisman, M., Jacobs, B.: Java program verification via a Hoare logic with abrupt termination. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, pp. 284–303. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  10. Huisman, M., Jacobs, B., van den Berg, J.: A case study in class library verification: Java’s Vector class. Techn. Rep. CSI-R0007, Comput. Sci. Inst., Univ. of Nijmegen. (An earlier version appeared in: Jacobs, B., Leavens, G.T., Miiller, P., Poetzsch-Heffter, A. (eds.), Formal Techniques for Java Programs. Proceedings of the ECOOP 1999 Workshop. Technical Report 251, Fernuniversitat Hagen (1999), pp. 37-44) (2000)

    Google Scholar 

  11. Jacobs, B.: Objects and classes, co-algebraically. In: Freitag, B., Jones, C.B., Lengauer, C., Schek, H.-J. (eds.) Object-Orientation with Parallelism and Persistence, pp. 83–103. Kluwer Acad. Publ., Dordrecht (1996)

    Google Scholar 

  12. Jacobs, B., Poll, E.: A monad forb asic Java semantics. In: Algebraic Methodology and Software Technology. Lecture Notes of Computer Science, Springer, Berlin (2000)

    Google Scholar 

  13. Jacobs, B., Rutten, J.: A tutorial on (co)algebras and (co)induction. EATCS Bulletin 62, 222–259 (1997)

    MATH  Google Scholar 

  14. Jacobs, B., van den Berg, J., Huisman, M., van Berkum, M., Hensel, U., Tews, H.: Reasoning about classes in Java (preliminary report). In: Object-Oriented Programming, Systems, Languages and Applications, pp. 329–340. ACM Press, New York (1998)

    Google Scholar 

  15. Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for Java. Techn. Rep. 98-06, Dep. of Comp. Sci., Iowa State Univ. (1999), http://www.cs.iastate.edu/leavens/JML.html

  16. Owre, S., Rushby, J.M., Shankar, N., von Henke, F.: Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Trans. On Softw. Eng. 21(2), 107–125 (1995)

    Article  Google Scholar 

  17. Paulson, L.C.: Isabelle: The next 700 theorem provers. In: Odifreddi, P. (ed.) Logic and computer science. The APIC series, vol. 31, pp. 361–386. Academic Press, London (1990)

    Google Scholar 

  18. Poetzsch-Heffter, A., Miiller, P.: A programming logic for sequential Java. In: Swierstra, S.D. (ed.) Programming Languages and Systems. LNCS, pp. 162–176. Springer, Berlin (1999)

    Chapter  Google Scholar 

  19. Poll, E., van den Berg, J., Jacobs, B.: Specification of the JavaCard API in JML. Techn. Rep. CSI-R0005, Comput. Sci. Inst., Univ. of Nijmegen (2000)

    Google Scholar 

  20. Loop Project, http://www.cs.kun.nl/~bart/LOOP/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

van den Berg, J., Huisman, M., Jacobs, B., Poll, E. (2000). A Type-Theoretic Memory Model for Verification of Sequential Java Programs. In: Bert, D., Choppy, C., Mosses, P.D. (eds) Recent Trends in Algebraic Development Techniques. WADT 1999. Lecture Notes in Computer Science, vol 1827. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-44616-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-44616-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67898-4

  • Online ISBN: 978-3-540-44616-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics