VLDB 2026 Research / reviewers in the wild / expert
Ornela Dardha
dblp:121/1410
· DBLP profile ↗
30ranked-venue papers
8as first author
18since 2021 · last 2026
0000-0001-9927-7875ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 20 · 5 first-author · 12 since 2021Theory of computation · 12 · 5 first-author · 7 since 2021Computer networks · 4 · 3 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author
| 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. | 2 |
| 2025 | Multiparty Session Types with a Bang!abstractAbstract Replication is an alternative construct to recursion for describing infinite behaviours in the $$\pi $$ π -calculus. In this paper we explore the implications of including type-level replication in Multiparty Session Types (MPST), a behavioural type theory for message-passing programs. We introduce $$\textsf {MPST!} $$ MPST ! , a session-typed multiparty process calculus with replication and first-class roles. We show that replication is not an equivalent alternative to recursion in MPST, and that using both replication and recursion in one type system in fact allows us to express both context-free protocols and protocols that support mutual exclusion and races. We demonstrate the expressiveness of $$\textsf {MPST!} $$ MPST ! on examples including binary tree serialisation, dining philosophers, and a model of an auction, and explore the implications of replication on the decidability of typechecking. Matthew Alan Le Brun, Simon Fowler 0001, Ornela Dardha |
ESOP (2) | 3 |
| 2025 | Preface
Valentina Castiglioni, Ornela Dardha, Claudio Antares Mezzina |
Inf. Comput. | 2 |
| 2025 | Preface to special issue: EXPRESS/SOS 2019 and EXPRESS/SOS 2020
Ornela Dardha, Jorge A. Pérez 0001, Jurriaan Rot |
Inf. Comput. | 1 |
| 2024 | Coconut: Typestates for Embedded Systems
Arwa Hameed Alsubhi, Ornela Dardha |
COORDINATION | 2 |
| 2024 | MAGπ!: The Role of Replication in Typing Failure-Prone Communication
Matthew Alan Le Brun, Ornela Dardha |
FORTE | 2 |
| 2023 | MAGπ: Types for Failure-Prone CommunicationabstractAbstract Multiparty Session Types(MPST) are a typing discipline for communication-centric systems, guaranteeing communication safety, deadlock freedom and protocol compliance. Several works have emerged which model failures and introduce fault-tolerance techniques. However, such works often make assumptions on the underlying network,e.g., assuming TCP-based communication where messages are guaranteed to be delivered; or adopting centralised reliable nodes and ad-hoc notions of reliability; or only addressing a single kind of failure, such as node crashes. In this work, we develop MAG $$\pi $$ π —a Multiparty, Asynchronous and Generalised $$\pi $$ π -calculus, which is thefirst language and type systemto accommodate in unison: (i) the widest range of non-Byzantine faults, includingmessage loss, delaysandreordering;crashandlink failures; andnetwork partitioning; (ii) a novel and most general notion ofreliability, taking into account the viewpoint ofeachparticipant in the protocol; (iii) a spectrum of network assumptions from the lowest UDP-based network programming to the TCP-based application level. We prove subject reduction and session fidelity; process properties (deadlock freedom, termination,etc.); failure-handling safety and reliability adherence. Matthew Alan Le Brun, Ornela Dardha |
ESOP | 2 |
| 2023 | Separating Sessions SmoothlyabstractThis paper introduces Hypersequent GV (HGV), a modular and extensible core calculus for functional programming with session types that enjoys deadlock freedom, confluence, and strong normalisation. HGV exploits hyper-environments, which are collections of type environments, to ensure that structural congruence is type preserving. As a consequence we obtain an operational correspondence between HGV and HCP -- a process calculus based on hypersequents and in a propositions-as-types correspondence with classical linear logic (CLL). Our translations from HGV to HCP and vice-versa both preserve and reflect reduction. HGV scales smoothly to support Girard's Mix rule, a crucial ingredient for channel forwarding and exceptions. Simon Fowler 0001, Wen Kokke, Ornela Dardha, Sam Lindley, J. Garrett Morris |
Log. Methods Comput. Sci. | 3 |
| 2023 | Prioritise the Best VariationabstractBinary session types guarantee communication safety and session fidelity, but alone they cannot rule out deadlocks arising from the interleaving of different sessions. In Classical Processes (CP)$-$a process calculus based on classical linear logic$-$deadlock freedom is guaranteed by combining channel creation and parallel composition under the same logical cut rule. Similarly, in Good Variation (GV)$-$a linear concurrent $\lambda$-calculus$-$deadlock freedom is guaranteed by combining channel creation and thread spawning under the same operation, called fork. In both CP and GV, deadlock freedom is achieved at the expense of expressivity, as the only processes allowed are tree-structured. Dardha and Gay define Priority CP (PCP), which allows cyclic-structured processes and restores deadlock freedom by using priorities, in line with Kobayashi and Padovani. Following PCP, we present Priority GV (PGV), a variant of GV which decouples channel creation from thread spawning. Consequently, we type cyclic-structured processes and restore deadlock freedom by using priorities. We show that our type system is sound by proving subject reduction and progress. We define an encoding from PCP to PGV and prove that the encoding preserves typing and is sound and complete with respect to the operational semantics. Wen Kokke, Ornela Dardha |
Log. Methods Comput. Sci. | 2 |
| 2023 | Structural Subtyping as Parametric PolymorphismabstractStructural subtyping and parametric polymorphism provide similar flexibility and reusability to programmers. For example, both features enable the programmer to provide a wider record as an argument to a function that expects a narrower one. However, the means by which they do so differs substantially, and the precise details of the relationship between them exists, at best, as folklore in literature. In this paper, we systematically study the relative expressive power of structural subtyping and parametric polymorphism. We focus our investigation on establishing the extent to which parametric polymorphism, in the form of row and presence polymorphism, can encode structural subtyping for variant and record types. We base our study on various Church-style λ-calculi extended with records and variants, different forms of structural subtyping, and row and presence polymorphism. We characterise expressiveness by exhibiting compositional translations between calculi. For each translation we prove a type preservation and operational correspondence result. We also prove a number of non-existence results. By imposing restrictions on both source and target types, we reveal further subtleties in the expressiveness landscape, the restrictions enabling otherwise impossible translations to be defined. More specifically, we prove that full subtyping cannot be encoded via polymorphism, but we show that several restricted forms of subtyping can be encoded via particular forms of polymorphism. Daniel Hillerström, James McKinna, Michel Steuwer, Ornela Dardha, Rongxiao Fu, Sam Lindley |
Proc. ACM Program. Lang. | 5 |
| 2022 | Session Types Revisited: A Decade LaterabstractInternational audience Ornela Dardha, Elena Giachino, Davide Sangiorgi |
PPDP | 1 |
| 2022 | Comparing type systems for deadlock freedomabstractMessage-passing software systems exhibit non-trivial forms of concurrency and distribution; they are expected to follow intended protocols among communicating services, but also to never “get stuck”. This intuitive requirement has been expressed by liveness properties such as progress or (dead)lock freedom and various type systems ensure these properties for concurrent processes. Unfortunately, very little is known about the precise relationship between these type systems and the classes of typed processes they induce. This paper puts forward the first comparative study of different type systems for message-passing processes that guarantee deadlock freedom. We compare two classes of deadlock-free typed processes, here denoted L and K. The class L stands out for its canonicity: it results from Curry-Howard interpretations of classical linear logic propositions as session types. The class K, obtained by encoding session types into Kobayashi's linear types with usages, includes processes not typable in other type systems. We show that L is strictly included in K, and identify the precise conditions under which they coincide. We also provide two type-preserving translations of processes in K into processes in L. Ornela Dardha, Jorge A. Pérez 0001 |
J. Log. Algebraic Methods Program. | 1 |
| 2021 | Separating Sessions SmoothlyabstractThis paper introduces Hypersequent GV (HGV), a modular and extensible core calculus for functional programming with session types that enjoys deadlock freedom, confluence, and strong normalisation. HGV exploits hyper-environments, which are collections of type environments, to ensure that structural congruence is type preserving. As a consequence we obtain a tight operational correspondence between HGV and HCP, a hypersequent-based process-calculus interpretation of classical linear logic. Our translations from HGV to HCP and vice-versa both preserve and reflect reduction. HGV scales smoothly to support Girard’s Mix rule, a crucial ingredient for channel forwarding and exceptions. Simon Fowler 0001, Wen Kokke, Ornela Dardha, Sam Lindley, J. Garrett Morris |
CONCUR | 3 |
| 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 | 3 |
| 2021 | Prioritise the Best Variation
Wen Kokke, Ornela Dardha |
FORTE | 2 |
| 2021 | π with Leftovers: A Mechanisation in Agda
Uma Zalakain, Ornela Dardha |
FORTE | 2 |
| 2021 | Deadlock-free session types in linear HaskellabstractPriority Sesh is a library for session-typed communication in Linear Haskell which offers strong compile-time correctness guarantees. Priority Sesh offers two deadlock-free APIs for session-typed communication. The first guarantees deadlock freedom by restricting the process structure to trees and forests. It is simple and composeable, but rules out cyclic structures. The second guarantees deadlock freedom via priorities, which allows the programmer to safely use cyclic structures as well. Wen Kokke, Ornela Dardha |
Haskell | 2 |
| 2021 | Papaya: Global Typestate Analysis of Aliased ObjectsabstractTypestates are state machines used in object-oriented programming to specify and verify correct order of method calls on an object. To avoid inconsistent object states, typestates enforce linear typing, which eliminates—or at best limits—aliasing. However, aliasing is an important feature in programming, and the state-of-the-art on typestates is too restrictive if we want typestates to be adopted in real-world software systems. In this paper, we present a type system for an object-oriented language with typestate annotations, which allows for unrestricted aliasing, and as opposed to previous approaches it does not require linearity constraints. The typestate analysis is global and tracks objects throughout the entire program graph, which ensures that well-typed programs conform and complete the declared protocols. We implement our framework in the Scala programming language and illustrate our approach using a running example that shows the interplay between typestates and aliases. Mathias Jakobsen, Alice Ravier, Ornela Dardha |
PPDP | 3 |
| 2020 | SFJ: An Implementation of Semantic Featherweight Java
Artem Usov, Ornela Dardha |
COORDINATION | 2 |
| 2020 | Typechecking Java Protocols with [St]Mungo
Adriana Laura Voinea, Ornela Dardha, Simon J. Gay |
FORTE | 2 |
| 2019 | Resource Sharing via Capability-Based Multiparty Session Types
Adriana Laura Voinea, Ornela Dardha, Simon J. Gay |
IFM | 2 |
| 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 | 1 |
| 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. | 2 |
| 2017 | A Linear Decomposition of Multiparty Sessions for Safe Distributed ProgrammingabstractMultiparty Session Types (MPST) is a typing discipline for message-passing distributed processes that can ensure properties such as absence of communication errors and deadlocks, and protocol conformance. Can MPST provide a theoretical foundation for concurrent and distributed programming in "mainstream" languages? We address this problem by (1) developing the first encoding of a full-fledged multiparty session pi-calculus into linear pi-calculus, and (2) using the encoding as the foundation of a practical toolchain for safe multiparty programming in Scala. Our encoding is type-preserving and operationally sound and complete. Crucially, it keeps the distributed choreographic nature of MPST, illuminating that the safety properties of multiparty sessions can be precisely represented with a decomposition into binary linear channels. Previous works have only studied the relation between (limited) multiparty and binary sessions via centralised orchestration means. We exploit these results to implement an automated generation of Scala APIs for multiparty sessions, abstracting existing libraries for binary communication channels. This allows multiparty systems to be safely implemented over binary message transports, as commonly found in practice. Our implementation is the first to support distributed multiparty delegation: our encoding yields it for free, via existing mechanisms for binary delegation. Alceste Scalas, Ornela Dardha, Raymond Hu, Nobuko Yoshida |
ECOOP | 2 |
| 2017 | Semantic Subtyping for Objects and ClassesabstractAbstract. We propose an integration of structural subtyping with boolean con-nectives and semantic subtyping to define a Java-like programming language that exploits the benefits of both techniques. Semantic subtyping is an approach to defining subtyping relation based on set-theoretic models, rather than syntactic rules. On the one hand, this approach involves some non trivial mathematical machinery in the background. On the other hand, final users of the language need not know this machinery and the resulting subtyping relation is very powerful and intuitive. While semantic subtyping is naturally linked to the structural one, we show how the framework can also accommodate the nominal subtyping. Several examples show the expressivity and the practical advantages of our proposal. 1 Ornela Dardha, Daniele Gorla, Daniele Varacca |
Comput. J. | 1 |
| 2017 | Session types revisitedabstractSession types are a formalism used to model structured communication-based programming. A binary session type describes communication by specifying the type and direction of data exchanged between two parties. When session types and session processes are added to the syntax of standard π-calculus they give rise to additional separate syntactic categories. As a consequence, when new type features are added, there is duplication of effort in the theory: the proofs of properties must be checked both on standard types and on session types. We show that session types are encodable into standard π-types, relying on linear and variant types. Besides being an expressivity result, the encoding (i) removes the above redundancies in the syntax, and (ii) the properties of session types are derived as straightforward corollaries, exploiting the corresponding properties of standard π-types. The robustness of the encoding is tested on a few extensions of session types, including subtyping, polymorphism and higher-order communications. Ornela Dardha, Elena Giachino, Davide Sangiorgi |
Inf. Comput. | 1 |
| 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 | 2 |
| 2014 | Progress as Compositional Lock-Freedom
Marco Carbone, Ornela Dardha, Fabrizio Montesi |
COORDINATION | 2 |
| 2013 | A Type System for Components
Ornela Dardha, Elena Giachino, Michael Lienhardt |
SEFM | 1 |
| 2012 | Session types revisitedabstractSession types are a formalism to model structured communication-based programming. A session type describes communication by specifying the type and direction of data exchanged between two parties. When session types and session primitives are added to the syntax of standard π-calculus types and terms, they give rise to additional separate syntactic categories. As a consequence, when new type features are added, there is duplication of efforts in the theory: the proofs of properties must be checked both on ordinary types and on session types. We show that session types are encodable in ordinary π types, relying on linear and variant types. Besides being an expressivity result, the encoding (i) removes the above redundancies in the syntax, and (ii) the properties of session types are derived as straightforward corollaries, exploiting the corresponding properties of ordinary π types. The robustness of the encoding is tested on a few extensions of session types, including subtyping, polymorphism and higher-order communications. Ornela Dardha, Elena Giachino, Davide Sangiorgi |
PPDP | 1 |