Demo Data from EDBT 2026 / reviewers in the wild / expert
John Bender
dblp:169/6805
· DBLP profile ↗
3ranked-venue papers
2as first author
1since 2021 · last 2022
0000-0002-3754-6731ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 2 first-author · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
2 papers |
Concurrent programming · 61% Programming languages and type systems · 36% Compilers and program optimization · 3% |
Topics — the 7 heaviest of 7, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
memory models |
0.6 | 2 | 2019 | A formalization of Java's concurrent access modes · Proc. ACM Program. Lang. 2019 Declarative fence insertion · OOPSLA 2015 |
Programming languages and type systems › language semantics › formal semantics
axiomatic semantics |
0.4 | 1 | 2019 | A formalization of Java's concurrent access modes · Proc. ACM Program. Lang. 2019 |
Concurrent programming › memory models
java memory model |
0.4 | 1 | 2019 | A formalization of Java's concurrent access modes · Proc. ACM Program. Lang. 2019 |
Programming languages and type systems
language semantics |
0.4 | 1 | 2019 | A formalization of Java's concurrent access modes · Proc. ACM Program. Lang. 2019 |
Concurrent programming › memory models
fence insertion |
0.2 | 1 | 2015 | Declarative fence insertion · OOPSLA 2015 |
Concurrent programming › concurrency bugs
data race freedom |
0.1 | 1 | 2019 | A formalization of Java's concurrent access modes · Proc. ACM Program. Lang. 2019 |
Compilers and program optimization
program transformation |
0.1 | 1 | 2015 | Declarative fence insertion · OOPSLA 2015 |
Methods — techniques the papers use, named apart from their topics
litmus testing · 0.4coq · 0.4axiomatic modeling · 0.4memory model reasoning · 0.2fence insertion · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Compiling Volatile Correctly in Java
John Bender, Jens Palsberg |
ECOOP | 2 |
| 2019 | A formalization of Java's concurrent access modesabstractJava's memory model was recently updated and expanded with new access modes. The accompanying documentation for these access modes is intended to make strong guarantees about program behavior that the Java compiler must enforce, yet the documentation is frequently unclear. This makes the intended program behavior ambiguous, impedes discussion of key design decisions, and makes it impossible to prove general properties about the semantics of the access modes. In this paper we present the first formalization of Java's access modes. We have constructed an axiomatic model for all of the modes using the Herd modeling tool. This allows us to give precise answers to questions about the behavior of example programs, called litmus tests. We have validated our model using a large suite of litmus tests from existing research which helps to shed light on the relationship with other memory models. We have also modeled the semantics in Coq and proven several general theorems including a DRF guarantee, which says that if a program is properly synchronized then it will exhibit sequentially consistent behavior. Finally, we use our model to prove that the unusual design choice of a partial order among writes to the same location is unobservable in any program. John Bender, Jens Palsberg |
Proc. ACM Program. Lang. | 1 |
| 2015 | Declarative fence insertionabstractPrevious work has shown how to insert fences that enforce sequential consistency. However, for many concurrent algorithms, sequential consistency is unnecessarily strong and can lead to high execution overhead. The reason is that, often, correctness relies on the execution order of a few specific pairs of instructions. Algorithm designers can declare those execution orders and thereby enable memory-model-independent reasoning about correctness and also ease implementation of algorithms on multiple platforms. The literature has examples of such reasoning, while tool support for enforcing the orders has been lacking until now. In this paper we present a declarative approach to specify and enforce execution orders. Our fence insertion algorithm first identifies the execution orders that a given memory model enforces automatically, and then inserts fences that enforce the rest. Our benchmarks include three off-the-shelf transactional memory algorithms written in C/C++ for which we specify suitable execution orders. For those benchmarks, our experiments with the x86 and ARMv7 memory models show that our tool inserts fences that are competitive with those inserted by the original authors. Our tool is the first to insert fences into transactional memory algorithms and it solves the long-standing problem of how to easily port such algorithms to a novel memory model. John Bender, Mohsen Lesani, Jens Palsberg |
OOPSLA | 1 |