Title
Plan B: a buffered memory model for Java
Abstract
Recent advances in verification have made it possible to envision trusted implementations of real-world languages. Java with its type-safety and fully specified semantics would appear to be an ideal candidate; yet, the complexity of the translation steps used in production virtual machines have made it a challenging target for verifying compiler technology. One of Java's key innovations, its memory model, poses significant obstacles to such an endeavor. The Java Memory Model is an ambitious attempt at specifying the behavior of multithreaded programs in a portable, hardware agnostic, way. While experts have an intuitive grasp of the properties that the model should enjoy, the specification is complex and not well-suited for integration within a verifying compiler infrastructure. Moreover, the specification is given in an axiomatic style that is distant from the intuitive reordering-based reasonings traditionally used to justify or rule out behaviors, and ill suited to the kind of operational reasoning one would expect to employ in a compiler. This paper takes a step back, and introduces a Buffered Memory Model (BMM) for Java. We choose a pragmatic point in the design space sacrificing generality in favor of a model that is fully characterized in terms of the reorderings it allows, amenable to formal reasoning, and which can be efficiently applied to a specific hardware family, namely x86 multiprocessors. Although the BMM restricts the reorderings compilers are allowed to perform, it serves as the key enabling device to achieving a verification pathway from bytecode to machine instructions. Despite its restrictions, we show that it is backwards compatible with the Java Memory Model and that it does not cripple performance on TSO architectures.
Year
DOI
Venue
2013
10.1145/2429069.2429110
POPL
Keywords
Field
DocType
intuitive grasp,reorderings compiler,plan b,memory model,hardware agnostic,buffered memory,buffered memory model,compiler technology,java memory,formal reasoning,intuitive reordering-based reasoning,verifying compiler infrastructure,concurrency,java
Programming language,Java annotation,Computer science,Java concurrency,Real time Java,Memory model,strictfp,Generics in Java,Java Modeling Language,Java
Conference
Volume
Issue
ISSN
48
1
0362-1340
Citations 
PageRank 
References 
14
0.66
25
Authors
6
Name
Order
Citations
PageRank
Delphine Demange1805.10
Vincent Laporte2813.61
Lei Zhao3482.60
Suresh Jagannathan428720.35
david pichardie548833.73
Jan Vitek62259165.75