Jade Alglave

dblp:89/6370 · DBLP profile ↗
← Back
24ranked-venue papers
20as first author
2since 2021 · last 2026
0000-0002-8335-0852ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 21 · 17 first-author · 1 since 2021Theory of computation · 9 · 8 first-author · 1 since 2021Systems, architecture and hardware · 2 · 2 first-author
YearPublicationVenuePosition
2026 On the Role of Prose in Specifications (Invited Talk)
abstract
Specifications should let users find answers to their questions. Those answers should be accessible, unambiguous, consensual, reproducible, auditable, and they should be traceable to the artefacts users actually read. This paper uses work done by the Arm Architecture Formal Team as a case study in the tensions between those requirements.
Jade Alglave
CONCUR1
2021 Armed Cats: Formal Concurrency Modelling at Arm
abstract
We report on the process for formal concurrency modelling at Arm. An initial formal consistency model of the Arm achitecture, written in the cat language, was published and upstreamed to the herd+diy tool suite in 2017. Since then, we have extended the original model with extra features, for example, mixed-size accesses, and produced two provably equivalent alternative formulations. In this article, we present a comprehensive review of work done at Arm on the consistency model. Along the way, we also show that our principle for handling mixed-size accesses applies to x86: We confirm this via vast experimental campaigns. We also show that our alternative formulations are applicable to any model phrased in a style similar to the one chosen by Arm.
Jade Alglave, Will Deacon, Richard Grisenthwaite, Antoine Hacquard, Luc Maranget
ACM Trans. Program. Lang. Syst.1
2018 Frightening Small Children and Disconcerting Grown-ups: Concurrency in the Linux Kernel
abstract
Concurrency in the Linux kernel can be a contentious topic. The Linux kernel mailing list features numerous discussions related to consistency models, including those of the more than 30 CPU architectures supported by the kernel and that of the kernel itself. How are Linux programs supposed to behave? Do they behave correctly on exotic hardware? A formal model can help address such questions. Better yet, an executable model allows programmers to experiment with the model to develop their intuition. Thus we offer a model written in the cat language, making it not only formal, but also executable by the herd simulator. We tested our model against hardware and refined it in consultation with maintainers. Finally, we formalised the fundamental law of the Read-Copy-Update synchronisation mechanism, and proved that one of its implementations satisfies this law.
Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, Alan S. Stern
ASPLOS1
2017 Coalition, intrigue, ambush, destruction and pride: Herding cats can be challenging
abstract
Herding cats can lead to coalition (of cheetahs), intrigue (of kittens), ambush (of tigers), destruction (of wild cats) or pride (of lions). In this tutorial, I will present the cat language to write consistency models as a set of constraints on the executions of concurrent programs. A cat model can be executed within the herd tool [3], which I will use during the tutorial.
Jade Alglave
FMCAD1
2017 Ogre and Pythia: an invariance proof method for weak consistency models
abstract
We design an invariance proof method for concurrent programs parameterised by a weak consistency model. The calculational design of the invariance proof method is by abstract interpretation of a truly parallel analytic semantics. This generalises the methods by Lamport and Owicki-Gries for sequential consistency. We use cat as an example of language to write consistency specifications of both concurrent programs and machine architectures.
Jade Alglave, Patrick Cousot
POPL1
2017 Don't Sit on the Fence: A Static Analysis Approach to Automatic Fence Insertion
abstract
Modern architectures rely on memory fences to prevent undesired weakenings of memory consistency. As the fences’ semantics may be subtle, the automation of their placement is highly desirable. But precise methods for restoring consistency do not scale to deployed systems’ code. We choose to trade some precision for genuine scalability: our technique is suitable for large code bases. We implement it in our new musketeer tool and report experiments on more than 700 executables from packages found in Debian GNU/Linux 7.1, including memcached with about 10,000 LoC.
Jade Alglave, Daniel Kroening, Vincent Nimal, Daniel Poetzl
ACM Trans. Program. Lang. Syst.1
2016 Simulation and Invariance for Weak Consistency
Jade Alglave
SAS1
2015 GPU Concurrency: Weak Behaviours and Programming Assumptions
abstract
Concurrency is pervasive and perplexing, particularly on graphics processing units (GPUs). Current specifications of languages and hardware are inconclusive; thus programmers often rely on folklore assumptions when writing software.
Jade Alglave, Mark Batty, Alastair F. Donaldson, Ganesh Gopalakrishnan, Jeroen Ketema, Daniel Poetzl, Tyler Sorensen 0001, John Wickerson
ASPLOS1
2014 Don't Sit on the Fence - A Static Analysis Approach to Automatic Fence Insertion
Jade Alglave, Daniel Kroening, Vincent Nimal, Daniel Poetzl
CAV1
2014 Herding cats: modelling, simulation, testing, and data-mining for weak memory
abstract
There is a joke where a physicist and a mathematician are asked to herd cats. The physicist starts with an infinitely large pen which he reduces until it is of reasonable diameter yet contains all the cats. The mathematician builds a fence around himself and declares the outside to be the inside. Defining memory models is akin to herding cats: both the physicist's or mathematician's attitudes are tempting, but neither can go without the other.
Jade Alglave, Luc Maranget, Michael Tautschnig
PLDI1
2014 Herding Cats: Modelling, Simulation, Testing, and Data Mining for Weak Memory
abstract
We propose an axiomatic generic framework for modelling weak memory. We show how to instantiate this framework for Sequential Consistency (SC), Total Store Order (TSO), C++ restricted to release-acquire atomics, and Power. For Power, we compare our model to a preceding operational model in which we found a flaw. To do so, we define an operational model that we show equivalent to our axiomatic model. We also propose a model for ARM. Our testing on this architecture revealed a behaviour later acknowledged as a bug by ARM, and more recently, 31 additional anomalies. We offer a new simulation tool, called herd, which allows the user to specify the model of his choice in a concise way. Given a specification of a model, the tool becomes a simulator for that model. The tool relies on an axiomatic description; this choice allows us to outperform all previous simulation tools. Additionally, we confirm that verification time is vastly improved, in the case of bounded model checking. Finally, we put our models in perspective, in the light of empirical data obtained by analysing the C and C++ code of a Debian Linux distribution. We present our new analysis tool, called mole, which explores a piece of code to find the weak memory idioms that it uses.
Jade Alglave, Luc Maranget, Michael Tautschnig
ACM Trans. Program. Lang. Syst.1
2013 Partial Orders for Efficient Bounded Model Checking of Concurrent Software
Jade Alglave, Daniel Kroening, Michael Tautschnig
CAV1
2013 Software Verification for Weak Memory via Program Transformation
Jade Alglave, Daniel Kroening, Vincent Nimal, Michael Tautschnig
ESOP1
2012 An Axiomatic Memory Model for POWER Multiprocessors
Sela Mador-Haim, Luc Maranget, Susmit Sarkar, Kayvan Memarian, Jade Alglave, Scott Owens, Rajeev Alur, Milo M. K. Martin, Peter Sewell, Derek Williams
CAV5
2012 Synchronising C/C++ and POWER
abstract
Shared memory concurrency relies on synchronisation primitives: compare-and-swap, load-reserve/store-conditional (aka LL/SC), language-level mutexes, and so on. In a sequentially consistent setting, or even in the TSO setting of x86 and Sparc, these have well-understood semantics. But in the very relaxed settings of IBM®, POWER®, ARM, or C/C++, it remains surprisingly unclear exactly what the programmer can depend on.
Susmit Sarkar, Kayvan Memarian, Scott Owens, Mark Batty, Peter Sewell, Luc Maranget, Jade Alglave, Derek Williams
PLDI7
2012 A formal hierarchy of weak memory models
Jade Alglave
Formal Methods Syst. Des.1
2012 Fences in weak memory models (extended version)
Jade Alglave, Luc Maranget, Susmit Sarkar, Peter Sewell
Formal Methods Syst. Des.1
2011 Soundness of Data Flow Analyses for Weak Memory Models
Jade Alglave, Daniel Kroening, John Lugton, Vincent Nimal, Michael Tautschnig
APLAS1
2011 Making Software Verification Tools Really Work
Jade Alglave, Alastair F. Donaldson, Daniel Kroening, Michael Tautschnig
ATVA1
2011 Stability in Weak Memory Models
Jade Alglave, Luc Maranget
CAV1
2011 Understanding POWER multiprocessors
abstract
Exploiting today's multiprocessors requires high-performance and correct concurrent systems code (optimising compilers, language runtimes, OS kernels, etc.), which in turn requires a good understanding of the observable processor behaviour that can be relied on. Unfortunately this critical hardware/software interface is not at all clear for several current multiprocessors.
Susmit Sarkar, Peter Sewell, Jade Alglave, Luc Maranget, Derek Williams
PLDI3
2011 Litmus: Running Tests against Hardware
Jade Alglave, Luc Maranget, Susmit Sarkar, Peter Sewell
TACAS1
2010 Fences in Weak Memory Models
Jade Alglave, Luc Maranget, Susmit Sarkar, Peter Sewell
CAV1
2009 The semantics of x86-CC multiprocessor machine code
abstract
Multiprocessors are now dominant, but real multiprocessors do not provide the sequentially consistent memory that is assumed by most work on semantics and verification. Instead, they have subtle relaxed (or weak) memory models, usually described only in ambiguous prose, leading to widespread confusion.
Susmit Sarkar, Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Tom Ridge, Thomas Braibant, Magnus O. Myreen, Jade Alglave
POPL8