English
Related papers

Related papers: Affine Sessions

200 papers

Behavioural types provide a promising way to achieve lightweight, language-integrated verification for communication-centric software. However, a large barrier to the adoption of behavioural types is that the current state of the art…

Programming Languages · Computer Science 2024-04-09 Simon Fowler , Philipp Haller , Roland Kuhn , Sam Lindley , Alceste Scalas , Vasco T. Vasconcelos

The emergence of propositions-as-sessions, a Curry-Howard correspondence between propositions of Linear Logic and session types for concurrent processes, has settled the logical foundations of message-passing concurrency. Central to this…

Logic in Computer Science · Computer Science 2022-09-13 Dan Frumin , Emanuele D'Osualdo , Bas van den Heuvel , Jorge A. Pérez

This paper introduces Ferrite, a shallow embedding of session types in Rust. In contrast to existing session type libraries and embeddings for mainstream languages, Ferrite not only supports linear session types but also shared session…

Programming Languages · Computer Science 2022-06-01 Ruofei Chen , Stephanie Balzer , Bernardo Toninho

A linear parameter must be consumed exactly once in the body of its function. When declaring resources such as file handles and manually managed memory as linear arguments, a linear type system can verify that these resources are used…

Programming Languages · Computer Science 2022-07-25 Arnaud Spiwack , Csongor Kiss , Jean-Philippe Bernardy , Nicolas Wu , Richard Eisenberg

Side effects are a core part of practical programming. However, they are often hard to reason about, particularly in a concurrent setting. We propose a foundation for reasoning about concurrent side effects using sessions. Primarily, we…

Programming Languages · Computer Science 2016-02-12 Dominic Orchard , Nobuko Yoshida

Multiparty session types (MST) are a well-established type theory that describes the interactive structure of a fixed number of components from a global point of view and type-checks the components through projection of the global type onto…

Programming Languages · Computer Science 2019-02-05 Andi Bejleri , Elton Domnori , Malte Viering , Patrick Eugster , Mira Mezini

There exist many problem domains where the interpretability of neural network models is essential for deployment. Here we introduce a recurrent architecture composed of input-switched affine transformations - in other words an RNN without…

Artificial Intelligence · Computer Science 2017-06-14 Jakob N. Foerster , Justin Gilmer , Jan Chorowski , Jascha Sohl-Dickstein , David Sussillo

Language models can produce convincing scientific analyses, but repeated generations on the same data do not guarantee the same result. A researcher may regenerate an identical query and receive a different fit, a different peak position or…

Artificial Intelligence · Computer Science 2026-05-14 Marios Adamidis , Danae Katrisioti , Yannis Tzitzikas , Emmanuel Stratakis

Our goal is to provide a review of deep learning methods which provide insight into structured high-dimensional data. Rather than using shallow additive architectures common to most statistical models, deep learning uses layers of…

Machine Learning · Statistics 2023-10-11 Nick Polson , Vadim Sokolov

Infinite types and formulas are known to have really curious and unsound behaviors. For instance, they allow to type {\Omega}, the auto- autoapplication and they thus do not ensure any form of normalization/productivity. Moreover, in most…

Programming Languages · Computer Science 2018-01-23 Pierre Vial

Shared Memory is a mechanism that allows several processes to communicate with each other by accessing -- writing or reading -- a set of variables that they have in common. A Consistency Model defines how each process observes the state of…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-01-26 Jordi Bataller Mascarell

Network protocols are programs with inputs and outputs that follow predefined communication patterns to synchronize and exchange information. There are many protocols and each serves a different purpose, e.g., routing, transport, secure…

Cryptography and Security · Computer Science 2025-11-04 Max von Hippel

Patterns are words with terminals and variables. The language of a pattern is the set of words obtained by uniformly substituting all variables with words that contain only terminals. In their original definition, patterns only allow for…

Formal Languages and Automata Theory · Computer Science 2026-03-31 Klaus Jansen , Dirk Nowotka , Lis Pirotton , Corinna Wambsganz , Max Wiedenhöft

Multiparty session types are designed to abstractly capture the structure of communication protocols and verify behavioural properties. One important such property is progress, i.e., the absence of deadlock. Distributed algorithms often…

Logic in Computer Science · Computer Science 2024-02-14 Kirstin Peters , Uwe Nestmann , Christoph Wagner

Communicating systems comprise diverse software components across networks. To ensure their robustness, modern programming languages such as Rust provide both strongly typed channels, whose usage is guaranteed to be affine (at most once),…

Programming Languages · Computer Science 2022-04-29 Nicolas Lagaillardie , Rumyana Neykova , Nobuko Yoshida

People convey information extremely effectively through spoken interaction using multiple channels of information transmission: the lexical channel of what is said, and the non-lexical channel of how it is said. We propose studying human…

Computation and Language · Computer Science 2021-08-11 Sarenne Wallbridge , Peter Bell , Catherine Lai

Initiated by Abramsky [1994], the Proofs as Processes agenda is to establish a solid foundation for the study of concurrent languages, by researching the connection between linear logic and the $\pi$-calculus. To date, Proofs as Processes…

Logic in Computer Science · Computer Science 2021-06-23 Fabrizio Montesi , Marco Peressotti

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

Making a linguistic theory is like making a programming language: one typically devises a type system to delineate the acceptable utterances and a denotational semantics to explain observations on their behavior. Via this connection, the…

Computation and Language · Computer Science 2007-05-23 Chung-chieh Shan

In this tutorial I will present how a combination of linear and dependent type can be useful to describe different properties about higher order programs. Linear types have been proved particularly useful to express properties of functions;…

Programming Languages · Computer Science 2013-07-01 Marco Gaboardi