English
Related papers

Related papers: Typing Copyless Message Passing

200 papers

Gradual typing is an approach to integrating static and dynamic typing within the same language, and puts the programmer in control of which regions of code are type checked at compile-time and which are type checked at run-time. In this…

Programming Languages · Computer Science 2019-09-16 Matteo Cimini

Linear type systems have a long and storied history, but not a clear path forward to integrate with existing languages such as OCaml or Haskell. In this paper, we study a linear type system designed with two crucial properties in mind:…

Programming Languages · Computer Science 2017-11-09 Jean-Philippe Bernardy , Mathieu Boespflug , Ryan R. Newton , Simon Peyton Jones , Arnaud Spiwack

We present a system of session types based on adjoint logic which generalize standard binary session types. Our system allows us to uniformly capture several new behaviors in the space of asynchronous message-passing communication,…

Programming Languages · Computer Science 2019-04-03 Klaas Pruiksma , Frank Pfenning

Asynchronous programming has appeared as a programming style that overcomes undesired properties of concurrent programming. Typically in asynchronous models of programming, methods are posted into a post list for latter execution. The order…

Programming Languages · Computer Science 2015-01-06 Mohamed A. El-Zawawy

We present a type system capable of guaranteeing the memory safety of programs that may involve (sophisticated) pointer manipulation such as pointer arithmetic. With its root in a recently developed framework Applied Type System (ATS), the…

Programming Languages · Computer Science 2018-10-30 Hongwei Xi , Dengping Zhu

We describe the use of quantum process calculus to describe and analyze quantum communication protocols, following the successful field of formal methods from classical computer science. The key idea is to define two systems, one modelling…

Logic in Computer Science · Computer Science 2012-10-03 Timothy A. S. Davidson , Simon J. Gay , Rajagopal Nagarajan , Ittoop Vergheese Puthoor

We investigate the minimal number of failures that can partition a system where processes communicate both through shared memory and by message passing. We prove that this number precisely captures the resilience that can be achieved by…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-12-22 Hagit Attiya , Sweta Kumari , Noa Schiller

We present a binary session type system using context-free session types to a version of the applied pi-calculus of Abadi et. al. where only base terms, constants and channels can be sent. Session types resemble process terms from BPA and…

Logic in Computer Science · Computer Science 2018-08-28 Jens Aagaard , Hans Hüttel , Mathias Jakobsen , Mikkel Kettunen

We provide the first denotational semantics for asynchronous multiparty session types with precise asynchronous subtyping. Our semantics enables us to reason about asynchronous message-passing, in which message-sending is non-blocking. It…

Programming Languages · Computer Science 2026-04-14 Dylan McDermott , Nobuko Yoshida

Categorical Message Passing Language (CaMPL) is a functional-style concurrent programming language whose semantics is in category theory, more specifically, linear actegories. Its core programming feature is message passing along typed…

Programming Languages · Computer Science 2026-05-12 Daniel Kiyoshi Hashimoto , Alexanna Little Berg , Priyaa Varshinee Srinivasan

Typestate systems are notoriously complex as they require sophisticated machinery for tracking aliasing. We propose a new, transition-oriented foundation for typestate in the setting of impure functional programming. Our approach relies on…

Programming Languages · Computer Science 2024-09-27 Hannes Saffrich , Yuki Nishida , Peter Thiemann

Session types employ a linear type system that ensures that communication channels cannot be implicitly copied or discarded. As a result, many mechanizations of these systems require modeling channel contexts and carefully ensuring that…

Programming Languages · Computer Science 2023-09-25 Chuta Sano , Ryan Kavanagh , Brigitte Pientka

We sketch a simple language of concurrent objects which explores the design space between type systems and continuous testing. In our language, programs are collections of communicating automata checked automatically for multiparty…

Programming Languages · Computer Science 2016-09-08 Roly Perera , Simon J. Gay

We study a theory of asynchronous session types ensuring that well-typed processes terminate under a suitable fairness assumption. Fair termination entails starvation freedom and orphan message freedom namely that all messages, including…

Programming Languages · Computer Science 2025-03-17 Luca Padovani , Gianluigi Zavattaro

All formalizations of session types rely on linear types for soundness as session-typed communication channels must change their type at every operation. Embedded language implementations of session types follow suit. They either rely on…

Programming Languages · Computer Science 2023-03-03 Peter Thiemann

We define a novel calculus that combines a call-by-name functional core with session-based communication primitives. We develop a typing discipline that guarantees both normalisation of expressions and progress of processes and that…

Logic in Computer Science · Computer Science 2023-06-22 Paula Severi , Luca Padovani , Emilio Tuosto , Mariangiola Dezani-Ciancaglini

Multiparty sessions with asynchronous communications and global types play an important role for the modelling of interaction protocols in distributed systems. In designing such calculi the aim is to enforce, by typing, good properties for…

Logic in Computer Science · Computer Science 2023-06-22 Francesco Dagnino , Paola Giannini , Mariangiola Dezani-Ciancaglini

This work proposes a dependent type theory that combines functions and session-typed processes (with value dependencies) through a contextual monad, internalising typed processes in a dependently-typed lambda-calculus. The proposed…

Programming Languages · Computer Science 2018-01-25 Bernardo Toninho , Nobuko Yoshida

Imperative session types provide an imperative interface to session-typed communication. In such an interface, channel references are first-class objects with operations that change the typestate of the channel. Compared to functional…

Programming Languages · Computer Science 2023-06-22 Hannes Saffrich , Peter Thiemann

The Message Passing Interface (MPI) framework is widely used in implementing imperative pro- grams that exhibit a high degree of parallelism. The PARTYPES approach proposes a behavioural type discipline for MPI-like programs in which a type…

Programming Languages · Computer Science 2017-04-12 Francisco Martins , Vasco Thudichum Vasconcelos , Hans Hüttel