Summary: Generative Operational Semantics
for Relaxed Memory Models
Radha Jagadeesan, Corin Pitcher, and James Riely
School of Computing, DePaul University
Abstract. The specification of the Java Memory Model (JMM) is phrased in
terms of acceptors of execution sequences rather than the standard generative
view of operational semantics. This creates a mismatch with language-based tech-
niques, such as simulation arguments and proofs of type safety.
We describe a semantics for the JMM using standard programming language
techniques that captures its full expressivity. For data-race-free programs, our
model coincides with the JMM. For lockless programs, our model is more expres-
sive than the JMM. The stratification properties required to avoid causality cycles
are derived, rather than mandated in the style of the JMM.
The JMM is arguably non-canonical in its treatment of the interaction of data
races and locks as it fails to validate roach-motel reorderings and various peep-
hole optimizations. Our model differs from the JMM in these cases. We develop a
theory of simulation and use it to validate the legality of the above optimizations
in any program context.
In the context of shared memory imperative programs, Sequential Consistency (SC)