Verification for Java’s Reentrant Multithreading Concept

  • Erika Ábrahám-Mumm
  • Frank S. de Boer
  • Willem-Paul de Roever
  • Martin Steffen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2303)


Besides the features of a class-based object-oriented language, Java integrates concurrency via its thread-classes, allowing for a multithreaded flow of control. The concurrency model offers coordination via lock-synchronization, and communication by synchronous message passing, including re-entrant method calls, and by instance variables shared amongthreads.

To reason about multithreaded programs, we introduce in this paper an assertional proof method for Java MT (“Multi-Threaded Java”), a small concurrent sublanguage of Java, coveringthe mentioned concurrency issues as well as the object-based core of Java, i.e., object creation, side effects, and aliasing, but leaving aside inheritance and subtyping.


Proof System Critical Section Object Constraint Language Abstract Syntax Instance Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    M. Abadi and K. R. M. Leino. A logic of object-oriented programs. In Bidoit and Dauchet [9], pages 682–696.Google Scholar
  2. 2.
    E. Ábrahám-Mumm and F. de Boer. Proof-outlines for threads in Java. In Palamidessi [25].Google Scholar
  3. 3.
    E. Ábrahám-Mumm, F. de Boer, W.-P. de Roever, and M. Steffen. Verification for Java’s reentrant multithreadingconcept: Soundness and completeness. Technical Report TR-ST-01-2, Lehrstuhl für Software-Technologie, Institut für Informatik und praktische Mathematik, Christian-Albrechts-Universität Kiel, 2001.Google Scholar
  4. 4.
    J. Alves-Foss, editor. Formal Syntax and Semantics of Java. LNCS State-of-the-Art-Survey. Springer, 1999.Google Scholar
  5. 5.
    P. America. A behavioural approach to subtypingin object-oriented programming languages. Technical report 443, Phillips Research Laboratories, 1989.Google Scholar
  6. 6.
    P. America and F. Boer. Reasoningab out dynamically evolvingpro cess structures. Formal Aspects of Computing, 6(3):269–316, 1993.CrossRefGoogle Scholar
  7. 7.
    K. R. Apt. Ten years of Hoare’s logic: A survey-part I. ACM Transact. on Progr. Lang. and Syst., 3(4):431–483, 1981.zbMATHCrossRefGoogle Scholar
  8. 8.
    K. R. Apt, N. Francez, and W.-P. de Roever. A proof system for communicating sequential processes. ACM Transact. on Progr. Lang. and Syst., 2:359–385, 1980.zbMATHCrossRefGoogle Scholar
  9. 9.
    M. Bidoit and M. Dauchet, editors. Theory and Practice of Software Development, Proc. of the 7th Int. Joint Conf. of CAAP/FASE, TAPSOFT’97, volume 1214 of LNCS. Springer, 1997.Google Scholar
  10. 10.
    R. Breu. Algebraic Specification Techniques in Object Oriented Programming Environments. PhD thesis, Universität Passau, 1991. See also Springer LNCS 562.Google Scholar
  11. 11.
    P. A. Buhr, M. Fortier, and M. H. Coffin. Monitor classification. ACM Computing Surveys, 27(1):63–107, 1995.CrossRefGoogle Scholar
  12. 12.
    P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. An event-based structural operational semantics of multi-threaded Java. In Alves-Foss [4].Google Scholar
  13. 13.
    W.-P. de Roever, F. de Boer, U. Hannemann, J. Hooman, Y. Lakhnech, M. Poel, and J. Zwiers. Concurrency Verification: Introduction to Compositional and Noncompositional Proof Methods. Cambridge University Press, 2001.Google Scholar
  14. 14.
    R. W. Floyd. Assigning meanings to programs. In J. T. Schwartz, editor, Proc. Sym. in Applied Mathematics, volume 19, pages 19–32, 1967.Google Scholar
  15. 15.
    J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.Google Scholar
  16. 16.
    C. Hankin, editor. Programming Languages and Systems: Proc. of ESOP’ 98, Held as Part of ETAPS’ 98, volume 1381 of LNCS. Springer, 1998.Google Scholar
  17. 17.
    J. Hensel, M. Huisman, B. Jacobs, and H. Tews. Reasoningab out classes in objectoriented languages: Logical models and tools. In Hankin [16].Google Scholar
  18. 18.
    C. A. R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12:576–580, 1969. Also in [19].zbMATHCrossRefGoogle Scholar
  19. 19.
    C. A. R. Hoare and C. B. Jones, editors. Essays in Computing Science. International Series in Computer Science. Prentice Hall, 1989.Google Scholar
  20. 20.
    M. Huisman. Java Program Verification in Higher-Order Logic with PVS and Isabelle. PhD thesis, University of Nijmegen, 2001.Google Scholar
  21. 21.
    H. Hussmann, editor. Fundamental Approaches to Software Engineering, volume 2029 of LNCS. Springer, 2001.zbMATHGoogle Scholar
  22. 22.
    G. M. Levin and D. Gries. A proof technique for communicating sequential processes. Acta Informatica, 15(3):281–302, 1981.zbMATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    The LOOP project: Formal methods for object-oriented systems., 2001.
  24. 24.
    S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6(4):319–340, 1976.zbMATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    C. Palamidessi, editor. CONCUR 2000, volume 1877 of LNCS. Springer, 2000.zbMATHGoogle Scholar
  26. 26.
    A. Poetzsch-Heffter. Specification and Verification of Object-Oriented Programs. Technische Universität München, 1997. Habilitationsschrift.Google Scholar
  27. 27.
    A. Poetzsch-Heffter and P. Müller. A programming logic for sequential Java. In Swierstra [30], pages 162–176.Google Scholar
  28. 28.
    B. Reus, R. Hennicker, and M. Wirsing. A Hoare calculus for verifying Java realizations of OCL-constrained design models. In Hussmann [21], pages 300–316.Google Scholar
  29. 29.
    R. Stärk, J. Schmid, and E. Börger. Java and the Java Virtual Machine. Springer, 2001.Google Scholar
  30. 30.
    S. Swierstra, editor. Proc.of ESOP’ 99, volume 1576 of LNCS. Springer, 1999.Google Scholar
  31. 31.
    D. von Oheimb. Axiomatic sematics for Javalight in Isabelle/HOL. In S. Drossopoulo, S. Eisenbach, B. Jacobs, G. Leavens, P. Müller, and A. Poetzsch-Heffter, editors, Formal Techniques for Java Programs, number 269, 5/2000 in Technical Report. Fernuniversität Hagen, 2000.Google Scholar
  32. 32.
    D. von Oheimb. Hoare logic for Java in Isabelle/HOL. Concurrency-Practice and Experience, 2001. To appear.Google Scholar
  33. 33.
    D. von Oheimb and T. Nipkow. Hoare logic for NanoJava: Auxiliary variables, side effects and virtual methods revisited. Submitted for publication, 2002.Google Scholar
  34. 34.
    J. B. Warmer and A. G. Kleppe. The Object Constraint Language: Precise Modeling With Uml. Object Technology Series. Addison-Wesley, 1999.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Erika Ábrahám-Mumm
    • 1
  • Frank S. de Boer
    • 2
  • Willem-Paul de Roever
    • 1
  • Martin Steffen
    • 1
  1. 1.Christian-Albrechts-Universität zu KielGermany
  2. 2.Utrecht UniversityThe Netherlands

Personalised recommendations