EDBT 2026 Demo / reviewers in the wild / expert
Tom Ridge
dblp:r/TomRidge · also Thomas Ridge
· DBLP profile ↗
12ranked-venue papers
5as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 5 first-authorTheory of computation · 3 · 2 first-authorComputer networks · 1Applied, interdisciplinary, general and emerging computing · 1
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
7 papers |
Program verification · 38% Software testing · 25% Requirements engineering and software design · 25% | |
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Storage systems · 32% Memory systems · 27% Processor architecture and microarchitecture · 27% | |
| Computer networks
3 papers |
Transport protocols and congestion control · 69% Internet architecture and protocols · 12% Optical networks · 9% |
Topics — the 17 heaviest of 21, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Transport protocols and congestion control
transport protocols |
0.4 | 1 | 2019 | Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets API · J. ACM 2019 |
Requirements engineering and software design › specification
executable specification |
0.4 | 1 | 2019 | Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets API · J. ACM 2019 |
Program verification
proof assistants |
0.4 | 1 | 2019 | Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets API · J. ACM 2019 |
Software testing
test oracle |
0.4 | 1 | 2019 | Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets API · J. ACM 2019 |
Storage systems
file systems |
0.2 | 1 | 2015 | SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems · SOSP 2015 |
Program verification
distributed system verification |
0.1 | 1 | 2009 | Verifying distributed systems: the operational approach · POPL 2009 |
Programming languages and type systems › language semantics › formal semantics
operational semantics |
0.1 | 1 | 2009 | Verifying distributed systems: the operational approach · POPL 2009 |
Processor architecture and microarchitecture
instruction set architecture |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Memory systems › memory consistency
memory consistency model |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Processor architecture and microarchitecture › instruction set architecture › CISC
x86 |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Memory systems › memory consistency › memory consistency model
x86 memory model |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Internet architecture and protocols
protocol implementation |
0.1 | 1 | 2008 | A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service · FM 2008 |
Transport protocols and congestion control
TCP |
0.1 | 1 | 2008 | A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service · FM 2008 |
Wireless networking
medium access control |
0.1 | 1 | 2006 | Rigorous Protocol Design in Practice: An Optical Packet-Switch MAC in HOL · ICNP 2006 |
Optical networks › optical switching
optical packet switching |
0.1 | 1 | 2006 | Rigorous Protocol Design in Practice: An Optical Packet-Switch MAC in HOL · ICNP 2006 |
Program verification
protocol verification |
0.0 | 2 | 2008 | A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service · FM 2008 Rigorous Protocol Design in Practice: An Optical Packet-Switch MAC in HOL · ICNP 2006 |
Program verification
theorem proving |
0.0 | 1 | 2009 | Verifying distributed systems: the operational approach · POPL 2009 |
Methods — techniques the papers use, named apart from their topics
operational semantics · 0.9symbolic model checking · 0.8monadic relational programming · 0.8oracle-based testing · 0.4formal specification · 0.4axiomatic semantics · 0.2HOL4 theorem prover · 0.2higher-order logic · 0.1code extraction · 0.1HOL · 0.1ns-2 simulation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets APIabstractConventional computer engineering relies on test-and-debug development processes, with the behavior of common interfaces described (at best) with prose specification documents. But prose specifications cannot be used in test-and-debug development in any automated way, and prose is a poor medium for expressing complex (and loose) specifications. The TCP/IP protocols and Sockets API are a good example of this: they play a vital role in modern communication and computation, and interoperability between implementations is essential. But what exactly they are is surprisingly obscure: their original development focused on “rough consensus and running code,” augmented by prose RFC specifications that do not precisely define what it means for an implementation to be correct. Ultimately, the actual standard is the de facto one of the common implementations, including, for example, the 15 000 to 20 000 lines of the BSD implementation—optimized and multithreaded C code, time dependent, with asynchronous event handlers, intertwined with the operating system, and security critical. This article reports on work done in the Netsem project to develop lightweight mathematically rigorous techniques that can be applied to such systems: to specify their behavior precisely (but loosely enough to permit the required implementation variation) and to test whether these specifications and the implementations correspond with specifications that are executable as test oracles . We developed post hoc specifications of TCP, UDP, and the Sockets API, both of the service that they provide to applications (in terms of TCP bidirectional stream connections) and of the internal operation of the protocol (in terms of TCP segments and UDP datagrams), together with a testable abstraction function relating the two. These specifications are rigorous, detailed, readable, with broad coverage, and rather accurate. Working within a general-purpose proof assistant (HOL4), we developed language idioms (within higher-order logic) in which to write the specifications: operational semantics with nondeterminism, time, system calls, monadic relational programming, and so forth. We followed an experimental semantics approach, validating the specifications against several thousand traces captured from three implementations (FreeBSD, Linux, and WinXP). Many differences between these were identified, as were a number of bugs. Validation was done using a special-purpose symbolic model checker programmed above HOL4. Having demonstrated that our logic-based engineering techniques suffice for handling real-world protocols, we argue that similar techniques could be applied to future critical software infrastructure at design time, leading to cleaner designs and (via specification-based testing) more robust and predictable implementations. In cases where specification looseness can be controlled, this should be possible with lightweight techniques, without the need for a general-purpose proof assistant, at relatively little cost. Steve Bishop, Matthew Fairbairn, Hannes Mehnert, Michael Norrish, Tom Ridge, Peter Sewell, Michael Smith 0008, Keith Wansbrough |
J. ACM | 5 |
| 2015 | SibylFS: formal specification and oracle-based testing for POSIX and real-world file systemsabstractSystems depend critically on the behaviour of file systems, but that behaviour differs in many details, both between implementations and between each implementation and the POSIX (and other) prose specifications. Building robust and portable software requires understanding these details and differences, but there is currently no good way to systematically describe, investigate, or test file system behaviour across this complex multi-platform interface. Tom Ridge, David Sheets, Thomas Tuerk, Andrea Giugliano, Anil Madhavapeddy, Peter Sewell |
SOSP | 1 |
| 2014 | Lem: reusable engineering of real-world semanticsabstractRecent years have seen remarkable successes in rigorous engineering: using mathematically rigorous semantic models (not just idealised calculi) of real-world processors, programming languages, protocols, and security mechanisms, for testing, proof, analysis, and design. Building these models is challenging, requiring experimentation, dialogue with vendors or standards bodies, and validation; their scale adds engineering issues akin to those of programming to the task of writing clear and usable mathematics. But language and tool support for specification is lacking. Proof assistants can be used but bring their own difficulties, and a model produced in one, perhaps requiring many person-years effort and maintained over an extended period, cannot be used by those familiar with another. Dominic P. Mulligan, Scott Owens, Kathryn E. Gray, Tom Ridge, Peter Sewell |
ICFP | 4 |
| 2014 | Simple, Efficient, Sound and Complete Combinator Parsing for All Context-Free Grammars, Using an Oracle
Tom Ridge |
SLE | 1 |
| 2011 | Simple, Functional, Sound and Complete Parsing for All Context-Free Grammars
Tom Ridge |
CPP | 1 |
| 2011 | The 1st Verified Software Competition: Experience Report
Vladimir Klebanov, Peter Müller 0001, Natarajan Shankar, Gary T. Leavens, Valentin Wüstholz, Eyad Alkassar, Rob Arthan, Derek Bronish, Roderick Chapman, Ernie Cohen, Mark A. Hillebrand, Bart Jacobs 0002, K. Rustan M. Leino, Rosemary Monahan, Frank Piessens, Nadia Polikarpova, Tom Ridge, Jan Smans, Stephan Tobies, Thomas Tuerk, Mattias Ulbrich, Benjamin Weiß 0001 |
FM | 17 |
| 2010 | Ott: Effective tool support for the working semanticistabstractAbstract Semantic definitions of full-scale programming languages are rarely given, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics – usually either for informal mathematics or the formal mathematics of a proof assistant – make it much harder than necessary to work with large definitions. We present a metalanguage specifically designed for this problem, and a tool, Ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, and Isabelle/HOL, together with code for production-quality typesetting, and OCaml boilerplate. The main innovations are (1) metalanguage design to make definitions concise, and easy to read and edit; (2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code. This has been tested in substantial case studies, including modular specifications of calculi from the TAPL text, a Lightweight Java with Java JSR 277/294 module system proposals, and a large fragment of OCaml (OCaml light , 310 rules), with mechanised proofs of various soundness results. Our aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages. Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Tom Ridge, Susmit Sarkar, Rok Strnisa |
J. Funct. Program. | 5 |
| 2009 | Verifying distributed systems: the operational approachabstractThis work develops an integrated approach to the verification of behaviourally rich programs, founded directly on operational semantics. The power of the approach is demonstrated with a state-of-the-art verification of a core piece of distributed infrastructure, involving networking, a filesystem, and concurrent OCaml code. The formalization is in higher-order logic and proof support is provided by the HOL4 theorem prover. Tom Ridge |
POPL | 1 |
| 2009 | The semantics of x86-CC multiprocessor machine codeabstractMultiprocessors 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 |
POPL | 5 |
| 2008 | A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service
Tom Ridge, Michael Norrish, Peter Sewell |
FM | 1 |
| 2007 | Ott: effective tool support for the working semanticistabstractIt is rare to give a semantic definition of a full-scale programming language, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics - usually either LaTEX for informal mathematics, or the formal mathematics of a proof assistant - make it much harder than necessary to work with large definitions.We present a metalanguage specifically designed for this problem, and a tool, ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, Isabelle, and (in progress) Twelf, together with LaTEX code for production-quality typesetting, and OCaml boilerplate. The main innovations are:(1) metalanguage design to make definitions concise, and easy to read and edit;(2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code.This has been tested in substantial case studies, including modular specifications of calculi from the TAPL text, a Lightweight Java with Java JSR 277/294 module system proposals, and a large fragment of OCaml (around 306 rules), with machine proofs of various soundness results. Our aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages. Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Tom Ridge, Susmit Sarkar, Rok Strnisa |
ICFP | 5 |
| 2006 | Rigorous Protocol Design in Practice: An Optical Packet-Switch MAC in HOLabstractThis paper reports on an experiment in network protocol design: we use novel rigorous techniques in the design process of a new protocol, in a close collaboration between systems and theory researchers. The protocol is a media access control (MAC) protocol for the SWIFT optical network, which uses optical switching and wavelength striping to provide very high bandwidth packet- switched interconnects. The use of optical switching (and the lack of optical buffering) means that the protocol must control the switch within hard timing constraints. We use higher-order logic to express the protocol design, in the general-purpose HOL automated proof assistant. The specification is thus completely precise, but still concise, readable, and without accidental overspecification. Further, we test conformance between the specification and two implementations of the protocol: an NS-2 simulation model and the VHDL code of the network hardware. This involves: (1) proving, within HOL, that the specification is equivalent to an algorithmically-checkable version; (2) using automatic code-extraction to generate a testing oracle; and (3) applying that oracle to traces of the implementation. This design-time use of rigorous methods has resulted in a protocol that is better specified and more correct than it would otherwise be, with relatively little effort. Adam Biltcliffe, Michael W. Dales, Sam Jansen, Tom Ridge, Peter Sewell |
ICNP | 4 |