Verification of Causality Requirements in Java Memory Model Is Undecidable

Published: 01 Jan 2009, Last Modified: 15 May 2025PPAM (2) 2009EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: The purpose of the Java memory model is to formalize the behavior of the shared memory in multithreaded Java programs. The subtlest points of its formalization are causality requirements that serve to provide safety and security guarantees for incorrectly synchronized Java programs. In this paper, we consider the problem of verifying whether an execution of a multithreaded Java program satisfies these causality requirements and show that this problem is undecidable.
Loading