282 research outputs found
Linearly Typed Dyadic Group Sessions for Building Multiparty Sessions
Traditionally, each party in a (dyadic or multiparty) session implements
exactly one role specified in the type of the session. We refer to this kind of
session as an individual session (i-session). As a generalization of i-session,
a group session (g-session) is one in which each party may implement a group of
roles based on one channel. In particular, each of the two parties involved in
a dyadic g-session implements either a group of roles or its complement. In
this paper, we present a formalization of g-sessions in a multi-threaded
lambda-calculus (MTLC) equipped with a linear type system, establishing for the
MTLC both type preservation and global progress. As this formulated MTLC can be
readily embedded into ATS, a full-fledged language with a functional
programming core that supports both dependent types (of DML-style) and linear
types, we obtain a direct implementation of linearly typed g-sessions in ATS.
The primary contribution of the paper lies in both of the identification of
g-sessions as a fundamental building block for multiparty sessions and the
theoretical development in support of this identification.Comment: This paper can be seen as the pre-sequel to classical linear
multirole logic (CLML). arXiv admin note: substantial text overlap with
arXiv:1603.0372
Session types in practical programming
Programs are more distributed and concurrent today than ever before, and structural communications are at the core. Constructing and debugging such programs are hard due to the lack of formal specifications and verifications of concurrency. Recent advances in type systems allow us to specify the structures of communications as session types, thus enabling static type checking of the usages of communication channels against protocols. The soundness of session type systems implies communication fidelity and absence of deadlock. This work proposes to formalize multiparty dependent session types as an expressive and practical type discipline for enforcing communication protocols. The type system is formulated in the setting of multi-threaded λ-calculus with inspirations from multirole logic. It is sound, and it provides linearity and coherence guarantees entirely statically. The type system supports recursion and polymorphism. The formulation is particularly suitable for practical implementation, and this work provides such a runtime implementation
Dynamic Role Authorization in Multiparty Conversations
Protocol specifications often identify the roles involved in communications.
In multiparty protocols that involve task delegation it is often useful to
consider settings in which different sites may act on behalf of a single role.
It is then crucial to control the roles that the different parties are
authorized to represent, including the case in which role authorizations are
determined only at runtime. Building on previous work on conversation types
with flexible role assignment, here we report initial results on a typed
framework for the analysis of multiparty communications with dynamic role
authorization and delegation. In the underlying process model, communication
prefixes are annotated with role authorizations and authorizations can be
passed around. We extend the conversation type system so as to statically
distinguish processes that never incur in authorization errors. The proposed
static discipline guarantees that processes are always authorized to
communicate on behalf of an intended role, also covering the case in which
authorizations are dynamically passed around in messages.Comment: In Proceedings BEAT 2014, arXiv:1408.556
Lightening Global Types
Global session types prevent participants from waiting for never coming
messages. Some interactions take place just for the purpose of informing
receivers that some message will never arrive or the session is terminated. By
decomposing a big global type into several light global types, one can avoid
such kind of redundant interactions. Lightening global types gives us cleaner
global types, which keep all necessary communications. This work proposes a
framework which allows to easily decompose global types into light global
types, preserving the interaction sequences of the original ones but for
redundant interactions.Comment: In Proceedings PLACES 2014, arXiv:1406.331
Multirole Logic and Multiparty Channels
We identify multirole logic as a new form of logic in which
conjunction/disjunction is interpreted as an ultrafilter on some underlying set
of roles and the notion of negation is generalized to endomorphisms on this
set. We formulate both multirole logic (MRL) and linear multirole logic (LMRL)
as natural generalizations of classical logic (CL) and classical linear logic
(CLL), respectively. Among various meta-properties established for MRL and
LMRL, we obtain one named multiparty cut-elimination stating that every cut
involving one or more sequents (as a generalization of a binary cut involving
exactly two sequents) can be eliminated, thus extending the celebrated result
of cut-elimination by Gentzen. As a side note, we also give an
ultrafilter-based interpretation for intuitionism, formulating MRLJ as a
natural generalization of intuitionistic logic (IL). An immediate application
of LMRL can be found in a formulation of session types for channels that
support multiparty communication in distributed programming. We present a
multi-threaded lambda-calculus (MTLC) where threads communicate on linearly
typed multiparty channels that are directly rooted in LMRL, establishing for
MTLC both type preservation and global progress. The primary contribution of
the paper consists of both identifying multirole logic as a new form of logic
and establishing a theoretical foundation for it, and the secondary
contribution lies in applying multirole logic to the practical domain of
distributed programming.Comment: arXiv admin note: text overlap with arXiv:1604.0302
Pabble: parameterised Scribble
© 2014, The Author(s).Many parallel and distributed message-passing programs are written in a parametric way over available resources, in particular the number of nodes and their topologies, so that a single parallel program can scale over different environments. This article presents a parameterised protocol description language, Pabble, which can guarantee safety and progress in a large class of practical, complex parameterised message-passing programs through static checking. Pabble can describe an overall interaction topology, using a concise and expressive notation, designed for a variable number of participants arranged in multiple dimensions. These parameterised protocols in turn automatically generate local protocols for type checking parameterised MPI programs for communication safety and deadlock freedom. In spite of undecidability of endpoint projection and type checking in the underlying parameterised session type theory, our method guarantees the termination of end point projection and type checking
Parallel Monitors for Self-adaptive Sessions
The paper presents a data-driven model of self-adaptivity for multiparty
sessions. System choreography is prescribed by a global type. Participants are
incarnated by processes associated with monitors, which control their
behaviour. Each participant can access and modify a set of global data, which
are able to trigger adaptations in the presence of critical changes of values.
The use of the parallel composition for building global types, monitors and
processes enables a significant degree of flexibility: an adaptation step can
dynamically reconfigure a set of participants only, without altering the
remaining participants, even if the two groups communicate.Comment: In Proceedings PLACES 2016, arXiv:1606.0540
10152 Abstracts Collection -- Relationships, Objects, Roles, and Queries in Modern Languages
From 11/04/10 to 16/04/10, the Dagstuhl Seminar 10152 ``Relationships, Objects, Roles, and Queries in Modern Programming Languages\u27\u27 was held
in Schloss Dagstuhl~--~Leibniz Center for Informatics.
During the seminar, several participants presented their current
research, and ongoing work and open problems were discussed. Abstracts of
the presentations given during the seminar as well as abstracts of
seminar results and ideas are put together in this paper. The first section
describes the seminar topics and goals in general.
Links to extended abstracts or full papers are provided, if available
- …