VLDB 2026 Research / reviewers in the wild / expert
Simon J. Gay
dblp:30/4430
· DBLP profile ↗
34ranked-venue papers
16as first author
6since 2021 · last 2026
0000-0003-3033-9091ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 20 · 11 first-author · 2 since 2021Software engineering, systems software and programming languages · 19 · 7 first-author · 5 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorComputer networks · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Design and Evaluation of Coconut: Typestates for C++abstractThis paper introduces Coconut, a C++ tool that uses templates for defining object behaviours and validates them with typestate checking. Coconut employs the GIMPLE intermediate representation (IR) from the GCC compiler’s middle-end phase for static checks, ensuring objects follow valid state transitions as defined in typestate templates. It supports features like branching, recursion, aliasing, inheritance, and typestate visualisation. We illustrate Coconut’s application in embedded systems, validating their behaviour pre-deployment. We present an experimental study, showing that Coconut improves performance and reduces code complexity wrt the original code, highlighting the benefits of typestate-based verification. Arwa Hameed Alsubhi, Ornela Dardha, Simon J. Gay |
Sci. Comput. Program. | 3 |
| 2025 | The Duality of λ-AbstractionabstractIn this paper, we develop and study the following perspective - just as higher-order functions give exponentials, higher-order continuations give coexponentials. From this, we design a language that combines exponentials and coexponentials, producing a duality of lambda abstraction. We formalise this language by giving an extension of a call-by-value simply-typed lambda-calculus with covalues, coabstraction, and coapplication. We develop the semantics of this language using the axiomatic structure of continuations, which we use to produce an equational theory, that gives a complete axiomatisation of control effects. We give a computational interpretation to this language using speculative execution and backtracking, and use this to derive the classical control operators and computational interpretation of classical logic, and encode common patterns of control flow using continuations. By dualising functional completeness, we further develop duals of first-order arrow languages using coexponentials. Finally, we discuss the implementation of this duality as control operators in programming, and develop some applications. Vikraman Choudhury, Simon J. Gay |
Proc. ACM Program. Lang. | 2 |
| 2024 | A Session Type System for Asynchronous Unreliable Broadcast CommunicationabstractSession types are formal specifications of communication protocols, allowing protocol implementations to be verified by typechecking. Up to now, session type disciplines have assumed that the communication medium is reliable, with no loss of messages. However, unreliable broadcast communication is common in a wide class of distributed systems such as ad-hoc and wireless sensor networks. Often such systems have structured communication patterns that should be amenable to analysis by means of session types, but the necessary theory has not previously been developed. We introduce the Unreliable Broadcast Session Calculus, a process calculus with unreliable broadcast communication, and equip it with a session type system that we show is sound. We capture two common operations, broadcast and gather, inhabiting dual session types. Message loss may lead to non-synchronised session endpoints. To further account for unreliability we provide with an autonomous recovery mechanism that does not require acknowledgements from session participants. Our type system ensures soundness, safety, and progress between the synchronised endpoints within a session. We demonstrate the expressiveness of our framework by implementing Paxos, the textbook protocol for reaching consensus in an unreliable, asynchronous network. Dimitrios Kouzapas, Ramunas Gutkovas, Adriana Laura Voinea, Simon J. Gay |
Log. Methods Comput. Sci. | 4 |
| 2023 | Special Delivery: Programming with Mailbox TypesabstractThe asynchronous and unidirectional communication model supported by mailboxes is a key reason for the success of actor languages like Erlang and Elixir for implementing reliable and scalable distributed systems. While many actors may send messages to some actor, only the actor may (selectively) receive from its mailbox. Although actors eliminate many of the issues stemming from shared memory concurrency, they remain vulnerable to communication errors such as protocol violations and deadlocks. Mailbox types are a novel behavioural type system for mailboxes first introduced for a process calculus by de’Liguoro and Padovani in 2018, which capture the contents of a mailbox as a commutative regular expression. Due to aliasing and nested evaluation contexts, moving from a process calculus to a programming language is challenging. This paper presents Pat, the first programming language design incorporating mailbox types, and describes an algorithmic type system. We make essential use of quasi-linear typing to tame some of the complexity introduced by aliasing. Our algorithmic type system is necessarily co-contextual, achieved through a novel use of backwards bidirectional typing, and we prove it sound and complete with respect to our declarative type system. We implement a prototype type checker, and use it to demonstrate the expressiveness of Pat on a factory automation case study and a series of examples from the Savina actor benchmark suite. Simon Fowler 0001, Duncan Paul Attard, Franciszek Sowul, Simon J. Gay, Philip W. Trinder |
Proc. ACM Program. Lang. | 4 |
| 2022 | The Different Shades of Infinite Session TypesabstractAbstract Many type systems include infinite types. In session type systems, infinite types are important because they specify communication protocols that are unbounded in time. Usually infinite session types are introduced as simple finite-state expressions "Equation missing" or by non-parametric equational definitions "Equation missing". Alternatively, some systems of label- or value-dependent session types go beyond simple recursive types. However, leaving dependent types aside, there is a much richer world of infinite session types, ranging through various forms of parametric equational definitions, to arbitrary infinite types in a coinductively defined space. We study infinite session types across a spectrum of shades of grey on the way to the bright light of general infinite types. We identify four points on the spectrum, characterised by different styles of equational definitions, and show that they form a strict hierarchy by establishing bidirectional correspondences with classes of automata: finite-state, 1-counter, pushdown and 2-counter. This allows us to establish decidability and undecidability results for type formation, type equivalence and duality in each class of types. We also consider previous work on context-free session types (and extend it to higher-order) and nested session types, and locate them on our spectrum of infinite types. Simon J. Gay, Diogo Poças, Vasco Thudichum Vasconcelos |
FoSSaCS | 1 |
| 2021 | Multiparty Session Types for Safe Runtime Adaptation in an Actor LanguageabstractHuman fallibility, unpredictable operating environments, and the heterogeneity of hardware devices are driving the need for software to be able to adapt as seen in the Internet of Things or telecommunication networks. Unfortunately, mainstream programming languages do not readily allow a software component to sense and respond to its operating environment, by discovering, replacing, and communicating with components that are not part of the original system design, while maintaining static correctness guarantees. In particular, if a new component is discovered at runtime, there is no guarantee that its communication behaviour is compatible with existing components. We address this problem by using multiparty session types with explicit connection actions, a type formalism used to model distributed communication protocols. By associating session types with software components, the discovery process can check protocol compatibility and, when required, correctly replace components without jeapordising safety. We present the design and implementation of EnsembleS, the first actor-based language with adaptive features and a static session type system, and apply it to a case study based on an adaptive DNS server. We formalise the type system of EnsembleS and prove the safety of well-typed programs, making essential use of recent advances in non-classical multiparty session types. Paul Harvey 0002, Simon Fowler 0001, Ornela Dardha, Simon J. Gay |
ECOOP | 4 |
| 2020 | Typechecking Java Protocols with [St]Mungo
Adriana Laura Voinea, Ornela Dardha, Simon J. Gay |
FORTE | 3 |
| 2019 | Resource Sharing via Capability-Based Multiparty Session Types
Adriana Laura Voinea, Ornela Dardha, Simon J. Gay |
IFM | 3 |
| 2018 | A New Linear Logic for Deadlock-Free Session-Typed ProcessesabstractThe $$\pi $$ -calculus, viewed as a core concurrent programming language, has been used as the target of much research on type systems for concurrency. In this paper we propose a new type system for deadlock-free session-typed $$\pi $$ -calculus processes, by integrating two separate lines of work. The first is the propositions-as-types approach by Caires and Pfenning, which provides a linear logic foundation for session types and guarantees deadlock-freedom by forbidding cyclic process connections. The second is Kobayashi’s approach in which types are annotated with priorities so that the type system can check whether or not processes contain genuine cyclic dependencies between communication operations. We combine these two techniques for the first time, and define a new and more expressive variant of classical linear logic with a proof assignment that gives a session type system with Kobayashi-style priorities. This can be seen in three ways: (i) as a new linear logic in which cyclic structures can be derived and a $$\small \textsc {Cycle}$$ -elimination theorem generalises $$\small \textsc {Cut}$$ -elimination; (ii) as a logically-based session type system, which is more expressive than Caires and Pfenning’s; (iii) as a logical foundation for Kobayashi’s system, bringing it into the sphere of the propositions-as-types paradigm. Ornela Dardha, Simon J. Gay |
FoSSaCS | 2 |
| 2018 | Typechecking protocols with Mungo and StMungo: A session type toolchain for JavaabstractStatic typechecking is an important feature of many standard programming languages. However, static typing focuses on data rather than communication, and therefore does not help programmers correctly implement communication protocols in distributed systems. The theory of session types provides a basis for tackling this problem; we use it to develop two tools that support static typechecking of communication protocols in Java. The first tool, Mungo, extends Java with typestate definitions, which allow classes to be associated with state machines defining permitted sequences of method calls: for example, communication methods. The second tool, StMungo, takes a session type describing a communication protocol, and generates a typestate specification of the permitted sequences of messages in the protocol. Protocol implementations can be validated by Mungo against their typestate definitions and then compiled with a standard Java compiler. The result is a toolchain for static typechecking of communication protocols in Java. We formalise and prove soundness of the typestate inference system used by Mungo, and show that our toolchain can be used to typecheck a client for the standard Simple Mail Transfer Protocol (SMTP). Dimitrios Kouzapas, Ornela Dardha, Roly Perera, Simon J. Gay |
Sci. Comput. Program. | 4 |
| 2018 | Automated Equivalence Checking of Concurrent Quantum SystemsabstractThe novel field of quantum computation and quantum information has gathered significant momentum in the last few years. It has the potential to radically impact the future of information technology and influence the development of modern society. The construction of practical, general purpose quantum computers has been challenging, but quantum cryptographic and communication devices have been available in the commercial marketplace for several years. Quantum networks have been built in various cities around the world and a dedicated satellite has been launched by China to provide secure quantum communication. Such new technologies demand rigorous analysis and verification before they can be trusted in safety- and security-critical applications. Experience with classical hardware and software systems has shown the difficulty of achieving robust and reliable implementations. We present CCS q , a concurrent language for describing quantum systems, and develop verification techniques for checking equivalence between CCS q processes. CCS q has well-defined operational and superoperator semantics for protocols that are functional , in the sense of computing a deterministic input-output relation for all interleavings arising from concurrency in the system. We have implemented QEC (Quantum Equivalence Checker), a tool that takes the specification and implementation of quantum protocols, described in CCS q , and automatically checks their equivalence. QEC is the first fully automatic equivalence checking tool for concurrent quantum systems. For efficiency purposes, we restrict ourselves to Clifford operators in the stabilizer formalism, but we are able to verify protocols over all input states. We have specified and verified a collection of interesting and practical quantum protocols, ranging from quantum communication and quantum cryptography to quantum error correction. Ebrahim Ardeshir-Larijani, Simon J. Gay, Rajagopal Nagarajan |
ACM Trans. Comput. Log. | 2 |
| 2016 | Typechecking protocols with Mungo and StMungoabstractWe report on two tools that extend Java with support for static type-checking of communication protocols. Our Mungo tool extends Java with typestate definitions, which allow classes to be associated with state machines defining permitted sequences of method calls. A complementary tool, StMungo, takes a communication protocol specified in the Scribble protocol description language, and generates a typestate specification for each endpoint, capturing the permitted sequences of messages along that channel. Endpoint implementations can be validated by Mungo against their typestate definitions and then compiled as usual with javac. We formalise Mungo's typestate inference system and demonstrate the Scribble, Mungo and StMungo toolchain via a typechecked SMTP client that can communicate with a real-world SMTP server. Dimitrios Kouzapas, Ornela Dardha, Roly Perera, Simon J. Gay |
PPDP | 4 |
| 2016 | Preface to special issue: behavioural typesabstractThis is the first part of a two-part special issue on Behavioural Types, which has its origin in a workshop we organized in April 2011, in Lisbon. The aim of the workshop was to bring together the active and expanding community of researchers using type-theoretic approaches to describe and analyse behavioural aspects of software. A particular concern of this field is the identification and description of structured communication in concurrent and distributed systems, but behavioural typing also addresses issues of liveness, fairness, deadlock-freedom, security, observable equivalence and typestate. Simon J. Gay, António Ravara |
Math. Struct. Comput. Sci. | 1 |
| 2016 | Preface to special issue: behavioural types
Simon J. Gay, António Ravara |
Math. Struct. Comput. Sci. | 1 |
| 2015 | Equational Reasoning About Quantum Protocols
Simon J. Gay, Ittoop Vergheese Puthoor |
RC | 1 |
| 2014 | Verification of Concurrent Quantum Protocols by Equivalence Checking
Ebrahim Ardeshir-Larijani, Simon J. Gay, Rajagopal Nagarajan |
TACAS | 2 |
| 2013 | Quantum Process Calculus for Linear Optical Quantum Computing
Sonja Franke-Arnold, Simon J. Gay, Ittoop Vergheese Puthoor |
RC | 2 |
| 2013 | Equivalence Checking of Quantum Protocols
Ebrahim Ardeshir-Larijani, Simon J. Gay, Rajagopal Nagarajan |
TACAS | 2 |
| 2010 | Modular session types for distributed object-oriented programmingabstractSession types allow communication protocols to be specified type-theoretically so that protocol implementations can be verified by static type-checking. We extend previous work on session types for distributed object-oriented languages in three ways. (1) We attach a session type to a class definition, to specify the possible sequences of method calls. (2) We allow a session type (protocol) implementation to be modularized , i.e. partitioned into separately-callable methods. (3) We treat session-typed communication channels as objects, integrating their session types with the session types of classes. The result is an elegant unification of communication channels and their session types, distributed object-oriented programming, and a form of typestates supporting non-uniform objects, i.e. objects that dynamically change the set of available methods. We define syntax, operational semantics, a sound type system, and a correct and complete type checking algorithm for a small distributed class-based object-oriented language. Static typing guarantees that both sequences of messages on channels, and sequences of method calls on objects, conform to type-theoretic specifications, thus ensuring type-safety. The language includes expected features of session types, such as delegation, and expected features of object-oriented programming, such as encapsulation of local state. We also describe a prototype implementation as an extension of Java. Simon J. Gay, Vasco Thudichum Vasconcelos, António Ravara, Nils Gesbert, Alexandre Z. Caldeira |
POPL | 1 |
| 2010 | Linear type theory for asynchronous session typesabstractAbstract Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static typechecking. Applications include network protocols, business processes and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifies and extends previous work. There are four main contributions. First is an operational semantics with buffered channels, instead of the synchronous communication of previous work. Second, we prove that the session type of a channel gives an upper bound on the necessary size of the buffer. Third, session types are manipulated by means of the standard structures of a linear type theory, rather than by means of new forms of typing judgement. Fourth, a notion of subtyping, including the standard subtyping relation for session types (imported into the functional setting), and a novel form of subtyping between standard and linear function types, which allows the typechecker to handle linear types conveniently. Our new approach significantly simplifies session types in the functional setting, clarifies their essential features and provides a secure foundation for language developments such as polymorphism and object-orientation. Simon J. Gay, Vasco Thudichum Vasconcelos |
J. Funct. Program. | 1 |
| 2010 | Type inference and strong static type checking for Promela
Alastair F. Donaldson, Simon J. Gay |
Sci. Comput. Program. | 2 |
| 2008 | QMC: A Model Checker for Quantum Systems
Simon J. Gay, Rajagopal Nagarajan, Nikolaos Papanikolaou 0001 |
CAV | 1 |
| 2008 | Bounded polymorphism in session typesabstractSession types allow high-level specifications of structured patterns of communication, such as client-server protocols, to be expressed as types and verified by static typechecking. In collaboration with Malcolm Hole, we previously introduced a notion of subtyping for session types, which was formulated for an extended pi calculus. Subtyping allows one part of a system, for example, a server, to be refined without invalidating type-correctness of other parts, for example, clients. In this paper we introduce bounded polymorphism, which is based on the same notion of subtyping, in order to support more precise and flexible specifications of protocols; in particular, a choice of type in one message may affect the types of future messages. We formalise the syntax, operational semantics and typing rules of an extended pi calculus, and prove that typechecking guarantees the absence of run-time communication errors. We study algorithms for checking instances of the subtype relation in two versions of our system, which we call KernelS≤and FullS≤, and establish that subtyping in KernelS≤is decidable, and that subtyping in FullS≤is undecidable. Simon J. Gay |
Math. Struct. Comput. Sci. | 1 |
| 2006 | Quantum programming languages: survey and bibliographyabstractThe field of quantum programming languages is developing rapidly and there is a surprisingly large literature. Research in this area includes the design of programming languages for quantum computing, the application of established semantic and logical techniques to the foundations of quantum mechanics, and the design of compilers for quantum programming languages. This article justifies the study of quantum programming languages, presents the basics of quantum computing, surveys the literature in quantum programming languages, and indicates directions for future research. Simon J. Gay |
Math. Struct. Comput. Sci. | 1 |
| 2006 | Types and typechecking for Communicating Quantum ProcessesabstractWe define a language CQP (Communicating Quantum Processes) for modelling systems that combine quantum and classical communication and computation. CQP combines the communication primitives of the pi-calculus with primitives for measurement and transformation of the quantum state; in particular, quantum bits (qubits) can be transmitted from process to process along communication channels. CQP has a static type system, which classifies channels, distinguishes between quantum and classical data, and controls the use of quantum states. We formally define the syntax, operational semantics and type system of CQP, prove that the semantics preserves typing, and prove that typing guarantees that each qubit is owned by a unique process within a system. We also define a typechecking algorithm and prove that it is sound and complete with respect to the type system. We illustrate CQP by defining models of several quantum communication systems, and outline our plans for using CQP as the foundation for formal analysis and verification of combined quantum and classical systems. Simon J. Gay, Rajagopal Nagarajan |
Math. Struct. Comput. Sci. | 1 |
| 2006 | Type checking a multithreaded functional language with session types
Vasco Thudichum Vasconcelos, Simon J. Gay, António Ravara |
Theor. Comput. Sci. | 2 |
| 2005 | Communicating quantum processesabstractWe define a language CQP (Communicating Quantum Processes) for modelling systems which combine quantum and classical communication and computation. CQP combines the communication primitives of the pi-calculus with primitives for measurement and transformation of quantum state; in particular, quantum bits (qubits) can be transmitted from process to process along communication channels. CQP has a static type system which classifies channels, distinguishes between quantum and classical data, and controls the use of quantum state. We formally define the syntax, operational semantics and type system of CQP, prove that the semantics preserves typing, and prove that typing guarantees that each qubit is owned by a unique process within a system. We illustrate CQP by defining models of several quantum communication systems, and outline our plans for using CQP as the foundation for formal analysis and verification of combined quantum and classical systems. Simon J. Gay, Rajagopal Nagarajan |
POPL | 1 |
| 2005 | Subtyping for session types in the pi calculus
Simon J. Gay, Malcolm Hole |
Acta Informatica | 1 |
| 2004 | Session Types for Functional Multithreading
Vasco Thudichum Vasconcelos, António Ravara, Simon J. Gay |
CONCUR | 3 |
| 2003 | Intensional and Extensional Semantics of Dataflow ProgramsabstractAbstract. We compare two semantic models of dataflow programs: a synchronous version of the classical Kahn semantics, and a new semantics in a category of synchronous processes. We consider the Kahn semantics to be extensional, as it describes the functions computed by dataflow nodes, and the categorical semantics to be intensional, as it describes the step-by-step production of output tokens from input tokens. Assuming that programs satisfy Wadge’s cycle sum condition and are therefore deadlock-free, we prove that the two semantics are equivalent. This equivalence result amounts to a proof that function composition in the extensional semantics is faithfully modelled by the detailed interactions of the intensional semantics, and provides further insight into the nature of dataflow computation. Simon J. Gay, Rajagopal Nagarajan |
Formal Aspects Comput. | 1 |
| 1999 | Types and Subtypes for Client-Server Interactions
Simon J. Gay, Malcolm Hole |
ESOP | 1 |
| 1999 | A Specification Structure for Deadlock-Freedom of Synchronous Processes
Samson Abramsky, Simon J. Gay, Rajagopal Nagarajan |
Theor. Comput. Sci. | 2 |
| 1995 | A Typed Calculus of Synchronous ProcessesabstractProposes a typed calculus of synchronous processes based on the structure of interaction categories. Our aim has been to develop a calculus for concurrency that is canonical in the sense that the typed /spl lambda/-calculus is canonical for functional computation. We show strong connections between syntax, logic and semantics, analogous to the familiar correspondence between the typed /spl lambda/-calculus, intuitionistic logic and Cartesian closed categories. Simon J. Gay, Rajagopal Nagarajan |
LICS | 1 |
| 1993 | A Sort Inference Algorithm for the Polyadic Pi-CalculusabstractIn Milner's polyadic π-calculus there is a notion of sorts which is analogous to the notion of types in functional programming. As a well-typed program applies functions to arguments in a consistent way, a well-sorted process uses communication channels in a consistent way. An open problem is whether there is an algorithm to infer sorts in the π-calculus in the same way that types can be inferred in functional programming. Here we solve the problem by presenting an algorithm which infers the most general sorting for a process in the first-order calculus, and proving its correctness. The algorithm is similar in style to those used for Hindley-Milner type inference in functional languages. Simon J. Gay |
POPL | 1 |