5,722 research outputs found
Safe Session-Based Concurrency with Shared Linear State
Publisher Copyright: © 2023, The Author(s).We introduce CLASS, a session-typed, higher-order, core language that supports concurrent computation with shared linear state.publishersversionpublishe
A Universal Session Type for Untyped Asynchronous Communication
In the simply-typed lambda-calculus we can recover the full range of expressiveness of the untyped lambda-calculus solely by adding a single recursive type U = U -> U. In contrast, in the session-typed pi-calculus, recursion alone is insufficient to recover the untyped pi-calculus, primarily due to linearity: each channel just has two unique endpoints. In this paper, we show that shared channels with a corresponding sharing semantics (based on the language SILL_S developed in prior work) are enough to embed the untyped asynchronous pi-calculus via a universal shared session type U_S. We show that our encoding of the asynchronous pi-calculus satisfies operational correspondence and preserves observable actions (i.e., processes are weakly bisimilar to their encoding). Moreover, we clarify the expressiveness of SILL_S by developing an operationally correct encoding of SILL_S in the asynchronous pi-calculus
On the Fair Termination of Client-Server Sessions
Client-server sessions are based on a variation of the traditional
interpretation of linear logic propositions as session types in which
non-linear channels (those regulating the interaction between a pool of clients
and a single server) are typed by coexponentials instead of the usual
exponentials. Coexponentials enable the modeling of racing interactions,
whereby clients compete to interact with a single server whose internal state
(and thus the offered service) may change as the server processes requests
sequentially. In this work we present a fair termination result for
CSLL, a core calculus of client-server sessions. We design a type
system such that every well-typed term corresponds to a valid derivation in
MALL, the infinitary proof theory of linear logic with least and
greatest fixed points. We then establish a correspondence between reductions in
the calculus and principal reductions in MALL. Fair termination
in CSLL follows from cut elimination in MALL
Deadlock Freedom for Asynchronous and Cyclic Process Networks
This paper considers the challenging problem of establishing deadlock freedom
for message-passing processes using behavioral type systems. In particular, we
consider the case of processes that implement session types by communicating
asynchronously in cyclic process networks. We present APCP, a typed process
framework for deadlock freedom which supports asynchronous communication,
delegation, recursion, and a general form of process composition that enables
specifying cyclic process networks. We discuss the main decisions involved in
the design of APCP and illustrate its expressiveness and flexibility using
several examples.Comment: In Proceedings ICE 2021, arXiv:2109.14908. arXiv admin note: text
overlap with arXiv:2101.0903
Deadlock-Free Typestate-Oriented Programming
Context. TypeState-Oriented Programming (TSOP) is a paradigm intended to help
developers in the implementation and use of mutable objects whose public
interface depends on their private state. Under this paradigm, well-typed
programs are guaranteed to conform with the protocol of the objects they use.
Inquiry. Previous works have investigated TSOP for both sequential and
concurrent objects. However, an important difference between the two settings
still remains. In a sequential setting, a well-typed program either progresses
indefinitely or terminates eventually. In a concurrent setting, protocol
conformance is no longer enough to avoid deadlocks, a situation in which the
execution of the program halts because two or more objects are involved in
mutual dependencies that prevent any further progress.
Approach. In this work, we put forward a refinement of TSOP for concurrent
objects guaranteeing that well-typed programs not only conform with the
protocol of the objects they use, but are also deadlock free. The key
ingredients of the type system are behavioral types, used to specify and
enforce object protocols, and dependency relations, used to represent abstract
descriptions of the dependencies between objects and detect circularities that
might cause deadlocks.
Knowledge. The proposed approach stands out for two features. First, the
approach is fully compositional and therefore scalable: the objects of a large
program can be type checked in isolation; deadlock freedom of an object
composition solely depends on the types of the objects being composed; any
modification/refactoring of an object that does not affect its public interface
does not affect other objects either. Second, we provide the first deadlock
analysis technique for join patterns, a high-level concurrency abstraction with
which programmers can express complex synchronizations in a succinct and
declarative form.
Grounding. We detail the proposed typing discipline for a core programming
language blending concurrent objects, asynchronous message passing and join
patterns. We prove that the type system is sound and give non-trivial examples
of programs that can be successfully analyzed. A Haskell implementation of the
type system that demonstrates the feasibility of the approach is publicly
available.
Importance. The static analysis technique described in this work can be used
to certify programs written in a core language for concurrent TSOP with proven
correctness guarantees. This is an essential first step towards the integration
and application of the technique in a real-world developer toolchain, making
programming of such systems more productive and less frustrating
Deadlock Freedom for Asynchronous and Cyclic Process Networks (Extended Version)
Establishing the deadlock-freedom property for message-passing processes is
an important and challenging problem. This paper considers verification
techniques based on behavioral type systems to address the relevant case of
processes that communicate asynchronously in cyclic process networks and are
governed by session types. We present APCP, a typed process framework for
deadlock-freedom which supports asynchronous communication, delegation,
recursion, and a form of process composition that enables specifying cyclic
process networks. We discuss the main decisions involved in the design of APCP
and establish its essential results.Comment: Extended version of arXiv:2110.00146, doi:10.4204/EPTCS.347.
- …