English
Related papers

Related papers: Relating Functional and Imperative Session Types

200 papers

The problem of resolving virtual method and interface calls in object-oriented languages has been a long standing challenge to the program analysis community. The complexities are due to various reasons, such as increased levels of class…

Programming Languages · Computer Science 2019-07-16 Xilong Zhuo , Chenyi Zhang

Developing and maintaining software commonly requires (1) adding new data type constructors to existing applications, but also (2) adding new functions that work on existing data. Most programming languages have native support for defining…

Programming Languages · Computer Science 2023-09-27 Cas van der Rest , Casper Bach Poulsen

Termination is a central property in sequential programming models: a term is terminating if all its reduction sequences are finite. Termination is also important in concurrency in general, and for message-passing programs in particular. A…

Logic in Computer Science · Computer Science 2023-08-03 Joseph W. N. Paulus , Jorge A. Pérez , Daniele Nantes-Sobrinho

Global types are formal specifications that describe communication protocols in terms of their global interactions. We present a new, streamlined language of global types equipped with a trace-based semantics and whose features and…

Programming Languages · Computer Science 2015-07-01 Giuseppe Castagna , Mariangiola Dezani-Ciancaglini , Luca Padovani

Message passing is a useful abstraction for implementing concurrent programs. For real-world systems, however, it is often combined with other programming and concurrency paradigms, such as higher-order functions, mutable state,…

Logic in Computer Science · Computer Science 2023-06-22 Jonas Kastberg Hinrichsen , Jesper Bengtson , Robbert Krebbers

Session types define protocols that processes must follow when communicating. The special case of binary session types, i.e. type annotations of protocols between two parties, is known to be in a propositions-as-types correspondence with…

Programming Languages · Computer Science 2021-12-15 Marco Carbone , Sonia Marin , Carsten Schürmann

As originally proposed, type classes provide overloading and ad-hoc definition, but can still be understood (and implemented) in terms of strictly parametric calculi. This is not true of subsequent extensions of type classes. Functional…

Programming Languages · Computer Science 2016-12-28 J. Garrett Morris

Session types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In…

Programming Languages · Computer Science 2020-12-11 Ankush Das , Henry DeYoung , Andreia Mordido , Frank Pfenning

Designing and implementing typed programming languages is hard. Every new type system feature requires extending the metatheory and implementation, which are often complicated and fragile. To ease this process, we would like to provide…

Programming Languages · Computer Science 2020-08-18 Jana Dunfield

This paper presents the first implementation of session types in a dynamically-typed language - Python. Communication safety of the whole system is guaranteed at runtime by monitors that check the execution traces comply with an associated…

Programming Languages · Computer Science 2013-12-11 Rumyana Neykova

Duality is a central concept in the theory of session types. Since a flaw was found in the original definition of duality for recursive types, several other definitions have been published. As their connection is not obvious, we compare the…

Programming Languages · Computer Science 2020-04-06 Simon J. Gay , Peter Thiemann , Vasco T. Vasconcelos

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

Syntactic structures used to play a vital role in natural language processing (NLP), but since the deep learning revolution, NLP has been gradually dominated by neural models that do not consider syntactic structures in their design. One…

Computation and Language · Computer Science 2023-11-28 Haoyi Wu , Kewei Tu

Semantic parsing has made significant progress, but most current semantic parsers are extremely slow (CKY-based) and rather primitive in representation. We introduce three new techniques to tackle these problems. First, we design the first…

Computation and Language · Computer Science 2014-12-17 Kai Zhao , Liang Huang

Categorical semantics of type theories are often characterized as structure-preserving functors. This is because in category theory both the syntax and the domain of interpretation are uniformly treated as structured categories, so that we…

Programming Languages · Computer Science 2024-02-14 Shin-ya Katsumata , Xavier Rival , Jérémy Dubut

In game semantics and related approaches to programming language semantics, programs are modelled by interaction dialogues. Such models have recently been used in the design of new compilation methods, e.g. for hardware synthesis or for…

Logic in Computer Science · Computer Science 2015-07-01 Ulrich Schöpp

Recently, Wadler presented a continuation-passing translation from a session-typed functional language, GV, to a process calculus based on classical linear logic, CP. However, this translation is one-way: CP is more expressive than GV. We…

Programming Languages · Computer Science 2014-06-16 Sam Lindley , J. Garrett Morris

While many mainstream languages such as Java, Python, and C# increasingly incorporate functional APIs to simplify programming and improve parallelization/performance, there are no effective techniques that can be used to automatically…

Programming Languages · Computer Science 2022-03-21 Benjamin Mariano , Yanju Chen , Yu Feng , Greg Durrett , Isil Dillig

Prompt programming treats large language model prompts as software components with typed interfaces. Based on a literature survey of 15 recent works from 2023 to 2025, we observe a consistent trend: type systems are central to emerging…

Programming Languages · Computer Science 2025-08-19 Abhijit Paul

While there exist several successful techniques for supporting programmers in deriving static resource bounds for sequential code, analyzing the resource usage of message-passing concurrent processes poses additional challenges. To meet…

Programming Languages · Computer Science 2018-04-30 Ankush Das , Jan Hoffmann , Frank Pfenning