Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Patrick Redmond

dblp:140/2680 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
3since 2021 · last 2025
0000-0001-5702-0860ORCID · corroborated

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

Software engineering, systems software and programming languages · 4 · 2 first-author · 3 since 2021Artificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 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.

Theoretical computer science
1 paper
Distributed computing theory · 67% Mathematical optimization · 33%
Software engineering, system software, and programming languages
3 papers
Concurrent programming · 40% Program verification · 34% Programming languages and type systems · 26%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 100%
Human-computer interaction and pervasive computing
1 paper
Games and playful interaction · 100%

Topics — the 9 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency models
0.912025
Exploring the Theory and Practice of Concurrency in the Entity-Component-System Pattern · Proc. ACM Program. Lang. 2025
Program verification
proof assistants
0.812024
Inductive Diagrams for Causal Reasoning · Proc. ACM Program. Lang. 2024
Mathematical optimization
causal inference
0.812024
Inductive Diagrams for Causal Reasoning · Proc. ACM Program. Lang. 2024
Distributed computing theory › event ordering
happened-before relation
0.812024
Inductive Diagrams for Causal Reasoning · Proc. ACM Program. Lang. 2024
Distributed computing theory
logical clocks
0.812024
Inductive Diagrams for Causal Reasoning · Proc. ACM Program. Lang. 2024
Programming languages and type systems › type systems
refinement types
0.412020
Verifying replicated data types with typeclass refinements in Liquid Haskell · Proc. ACM Program. Lang. 2020
Distributed systems › replication
replicated data types
0.412020
Verifying replicated data types with typeclass refinements in Liquid Haskell · Proc. ACM Program. Lang. 2020
Games and playful interaction
game development
0.312025
Exploring the Theory and Practice of Concurrency in the Entity-Component-System Pattern · Proc. ACM Program. Lang. 2025
Programming languages and type systems › type systems › polymorphism
type classes
0.112020
Verifying replicated data types with typeclass refinements in Liquid Haskell · Proc. ACM Program. Lang. 2020

Methods — techniques the papers use, named apart from their topics

formal model · 1.7string diagrams · 1.5dependent types · 1.5concurrent separation logic · 1.5agda · 1.5typeclass refinements · 0.9refinement types · 0.9
YearPublicationVenuePosition
2025 Exploring the Theory and Practice of Concurrency in the Entity-Component-System Pattern
abstract
The Entity-Component-System (ECS) software design pattern, long used in game development, encourages a clean separation of identity (entities), data properties (components), and computational behaviors (systems). Programs written using the ECS pattern are naturally concurrent, and the pattern offers modularity, flexibility, and performance benefits that have led to a proliferation of ECS frameworks. Nevertheless, the ECS pattern is little-known and not well understood outside of a few domains. Existing explanations of the ECS pattern tend to be mired in the concrete details of particular ECS frameworks, or they explain the pattern in terms of imperfect metaphors or in terms of what it is not. We seek a rigorous understanding of the ECS pattern via the design of a formal model, Core ECS, that abstracts away the details of specific implementations to reveal the essence of software using the ECS pattern. We identify a class of Core ECS programs that behave deterministically regardless of scheduling, enabling use of the ECS pattern as a deterministic-by-construction concurrent programming model. With Core ECS as a point of comparison, we then survey several real-world ECS frameworks and find that they all leave opportunities for deterministic concurrency unexploited. Our findings point out a space for new ECS implementation techniques that better leverage such opportunities.
Patrick Redmond, Jonathan Castello, José Manuel Calderón Trilla, Lindsey Kuper
Proc. ACM Program. Lang.1
2024 Inductive Diagrams for Causal Reasoning
abstract
The Lamport diagram is a pervasive and intuitive tool for informal reasoning about “happens-before” relationships in a concurrent system. However, traditional axiomatic formalizations of Lamport diagrams can be painful to work with in a mechanized setting like Agda. We propose an alternative, inductive formalization — the causal separation diagram (CSD) — that takes inspiration from string diagrams and concurrent separation logic, but enjoys a graphical syntax similar to Lamport diagrams. Critically, CSDs are based on the idea that causal relationships between events are witnessed by the paths that information follows between them. To that end, we model “happens-before” as a dependent type of paths between events. The inductive formulation of CSDs enables their interpretation into a variety of semantic domains. We demonstrate the interpretability of CSDs with a case study on properties of logical clocks , widely-used mechanisms for reifying causal relationships as data. We carry out this study by implementing a series of interpreters for CSDs, culminating in a generic proof of Lamport’s clock condition that is parametric in a choice of clock. We instantiate this proof on Lamport’s scalar clock, on Mattern’s vector clock, and on the matrix clocks of Raynal et al. and of Wuu and Bernstein, yielding verified implementations of each. The CSD formalism and our case study are mechanized in the Agda proof assistant.
Jonathan Castello, Patrick Redmond, Lindsey Kuper
Proc. ACM Program. Lang.2
2023 An Exceptional Actor System (Functional Pearl)
abstract
The Glasgow Haskell Compiler is known for its feature-laden runtime system (RTS), which includes lightweight threads, asynchronous exceptions, and a slew of other features. Their combination is powerful enough that a programmer may complete the same task in many different ways --- some more advisable than others.
Patrick Redmond, Lindsey Kuper
Haskell1
2020 Verifying replicated data types with typeclass refinements in Liquid Haskell
abstract
This paper presents an extension to Liquid Haskell that facilitates stating and semi-automatically proving properties of typeclasses. Liquid Haskell augments Haskell with refinement types —our work allows such types to be attached to typeclass method declarations, and ensures that instance implementations respect these types. The engineering of this extension is a modular interaction between GHC, the Glasgow Haskell Compiler, and Liquid Haskell’s core proof infrastructure. The design sheds light on the interplay between modular proofs and typeclass resolution, which in Haskell is coherent by default (meaning that resolution always selects the same implementation for a particular instantiating type), but in other dependently typed languages is not. We demonstrate the utility of our extension by using Liquid Haskell to modularly verify that 34 instances satisfy the laws of five standard typeclasses. More substantially, we implement a framework for programming distributed applications based on replicated data types (RDTs). We define a typeclass whose Liquid Haskell type captures the mathematical properties RDTs should satisfy; prove in Liquid Haskell that these properties are sufficient to ensure that replicas’ states converge despite out-of-order update delivery; implement (and prove correct) several instances of our RDT typeclass; and use them to build two realistic applications, a multi-user calendar event planner and a collaborative text editor.
James Parker, Patrick Redmond, Lindsey Kuper, Michael Hicks 0001, Niki Vazou
Proc. ACM Program. Lang.3
2013 Data driven methods for utterance semantic tagging
Anthea Cheung, Anna Margolis, Patrick Redmond, Jun-Won Suh
INTERSPEECH4