A JMM-Faithful Non-interference Calculus for Java

  • Vladimir Klebanov
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3409)


We present a calculus for establishing non-interference of several Java threads running in parallel. The proof system is built atop an implemented sequential Java Dynamic Logic calculus with 100% Java Card coverage. We present two semantic and one syntactic type of non-interference conditions to make reasoning efficient. In contrast to previous works in this direction, our method takes into full account the weak guarantees of the Java Memory Model concerning visibility and ordering of memory updates between threads.


Proof System Mutual Exclusion Dynamic Logic Symbolic Execution Java Virtual Machine 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ábrahám, E., de Boer, F.S., de Roever, W.-P., Steffen, M.: Inductive proof-outlines for monitors in Java. In: International Conference on Formal Methods for Open Object-based Distributed Systems (FMOODS) (2003); A longer version appeared as Software Technologie technical report TR-ST-03-1 (April 2003)Google Scholar
  2. 2.
    Ahrendt, W., Baar, T., Beckert, B., Bubel, R., Giese, M., Hähnle, R., Menzel, W., Mostowski, W., Roth, A., Schlager, S., Schmitt, P.H.: The KeY tool. Software and System Modeling (SoSysM), 1–42 (2004), Available at
  3. 3.
    Beckert, B.: A dynamic logic for the formal verification of Java Card programs. In: Attali, I., Jensen, T. (eds.) JavaCard 2000. LNCS, vol. 2041, pp. 6–24. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    Cenciarelli, P., Knapp, A., Reus, B., Wirsing, M.: An event-based structural operational semantics of multi-threaded Java. Formal Syntax and Semantics of Java, pp. 157–200. Springer, Heidelberg (1999)Google Scholar
  5. 5.
    Jones, C.B.: Development methods for computer programs including a notion of interference. PhD thesis, Oxford University (1981)Google Scholar
  6. 6.
    Java memory model and thread specification revision, Website at
  7. 7.
    KeY Project, Website at
  8. 8.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)Google Scholar
  9. 9.
    Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Communications of the ACM 19(5), 279–285 (1976)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Platzer, A.: An object-oriented dynamic logic with updates. Master’s thesis, Universität Karlsruhe (2004)Google Scholar
  11. 11.
    Stirling, C.: A generalization of Owicki-Gries’s Hoare logic for a concurrent while language. Theoretical Computer Science 58, 347–359 (1988)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Vladimir Klebanov
    • 1
  1. 1.Institute of Computer ScienceUniversity of Koblenz-Landau 

Personalised recommendations