Making the java memory model safe

Andreas Lochbihler
2013 ACM Transactions on Programming Languages and Systems  
This work presents a machine-checked formalisation of the Java memory model and connects it to an operational semantics for Java and Java bytecode. For the whole model, I prove the data race freedom guarantee and type safety. The model extends previous formalisations by dynamic memory allocation, thread spawns and joins, infinite executions, the wait-notify mechanism, and thread interruption, all of which interact in subtle ways with the memory model. The formalisation resulted in numerous
more » ... fications of and fixes to the existing JMM specification.
doi:10.1145/2518191 fatcat:bj7gkvmdhvdkzmbpv7zyvwlqbi