English
Related papers

Related papers: Polymorphic Typestate for Session Types

200 papers

We show that any multiple-valued function can be represented by a linear lambda term typed in a second-order polymorphic type system, using two distinct styles. The first is a circuit style, which mimics combinational circuits in switching…

Programming Languages · Computer Science 2026-03-30 Satoshi Matsuoka

This paper presents the first formalisation of the precise subtyping relation for asynchronous multiparty sessions. We show that our subtyping relation is sound (i.e., guarantees safe process replacement) and also complete: any extension of…

Logic in Computer Science · Computer Science 2020-10-28 Silvia Ghilezan , Jovanka Pantović , Ivan Prokić , Alceste Scalas , Nobuko Yoshida

Typestates 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…

Programming Languages · Computer Science 2021-07-29 Mathias Jakobsen , Alice Ravier , Ornela Dardha

Session types are used to describe and structure interactions between independent processes in distributed systems. Higher-order types are needed in order to properly structure delegation of responsibility between processes. In this paper…

Logic in Computer Science · Computer Science 2019-03-14 Giovanni Bernardi , Matthew Hennessy

Multiparty session typing (MPST) is a method to make concurrent programming simpler. The idea is to use type checking to automatically detect safety and liveness violations of implementations relative to specifications. In practice, the…

Programming Languages · Computer Science 2025-01-30 Sung-Shik Jongmans

Multiparty session types (MPST) offer a framework for the description of communication-based protocols involving multiple participants. In the top-down approach to MPST, the communication pattern of the session is described using a global…

Logic in Computer Science · Computer Science 2026-05-25 Omer Keskin , Nobuko Yoshida , Rob van Glabbeek

A type system is introduced for a generic Object Oriented programming language in order to infer resource upper bounds. A sound andcomplete characterization of the set of polynomial time computable functions is obtained. As a consequence,…

Programming Languages · Computer Science 2018-02-20 Emmanuel Hainry , Romain Péchoux

Typestates are good at capturing dynamic states of a program as compared to normal types that can capture static structural properties of data and program. Although useful, typestates are suitable only for specifying and verifying program…

Programming Languages · Computer Science 2017-12-27 Ashish Mishra , Deepak Dsouza , Y. N. Srikant

Communicating state machines provide a formal foundation for distributed computation. Unfortunately, they are Turing-complete and, thus, challenging to analyse. In this paper, we classify restrictions on channels which have been proposed to…

Formal Languages and Automata Theory · Computer Science 2022-09-22 Felix Stutz , Damien Zufferey

Multiparty session types provide a type discipline for ensuring communication safety, deadlock-freedom and liveness for multiple concurrently running participants. The original formulation of MPST takes the top-down approach, where a global…

Programming Languages · Computer Science 2024-11-13 Thien Udomsrirungruang , Nobuko Yoshida

In this work, we incorporate reversibility into structured communication-based programming, to allow parties of a session to automatically undo, in a rollback fashion, the effect of previously executed interactions. This permits taking…

Programming Languages · Computer Science 2014-06-16 Francesco Tiezzi , Nobuko Yoshida

Structural 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…

Programming Languages · Computer Science 2023-09-12 Wenhao Tang , Daniel Hillerström , James McKinna , Michel Steuwer , Ornela Dardha , Rongxiao Fu , Sam Lindley

Managing stateful resources safely and expressively is a longstanding challenge in programming languages, especially in the presence of aliasing. While scope-based constructs such as Java's synchronized blocks offer ease of reasoning, they…

Programming Languages · Computer Science 2025-10-13 Songlin Jia , Craig Liu , Siyuan He , Haotian Deng , Yuyan Bao , Tiark Rompf

The importance of subtyping to enable a wider range of well-typed programs is undeniable. However, the interaction between subtyping, recursion, and polymorphism is not completely understood yet. In this work, we explore subtyping in a…

Programming Languages · Computer Science 2021-03-30 Ankush Das , Henry DeYoung , Andreia Mordido , Frank Pfenning

The RPC calculus is a simple semantic foundation for multi-tier programming languages such as Links in which located functions can be written for the client-server model. Subsequently, the typed RPC calculus is designed to capture the…

Programming Languages · Computer Science 2020-05-26 Kwanghoon Choi , James Cheney , Simon Fowler , Sam Lindley

Multiparty session types (MP) are a type discipline for enforcing the structured, deadlock-free communication of concurrent and message-passing programs. Traditional MP have a limited form of choice in which alternative communication…

Logic in Computer Science · Computer Science 2024-06-10 Kirstin Peters , Nobuko Yoshida

In this essay, I present the advantages and, I dare say, the beauty of programming in a language with set-theoretic types, that is, types that include union, intersection, and negation type connectives. I show by several examples how…

Programming Languages · Computer Science 2024-11-18 Giuseppe Castagna

Session types are widely used as abstractions of asynchronous message passing systems. Refinement for such abstractions is crucial as it allows improvements of a given component without compromising its compatibility with the rest of the…

Programming Languages · Computer Science 2024-10-09 Mario Bravetti , Julien Lange , Gianluigi Zavattaro

Subtyping, also known as subtype polymorphism, is a concept extensively studied in programming language theory, delineating the substitutability relation among datatypes. This property ensures that programs designed for supertype objects…

Artificial Intelligence · Computer Science 2025-02-14 Đorđe Marković , Marc Denecker

Session type systems have been given logical foundations via Curry-Howard correspondences based on both intuitionistic and classical linear logic. The type systems derived from the two logics enforce communication correctness on the same…

Logic in Computer Science · Computer Science 2020-04-06 Bas van den Heuvel , Jorge A. Pérez
‹ Prev 1 8 9 10 Next ›