40 research outputs found
Choreography automata
Automata models are well-established in many areas of computer science and are supported by a wealth of theoretical results including a wide range of algorithms and techniques to specify and analyse systems. We introduce choreography automata for the choreographic modelling of communicating systems. The projection of a choreography automaton yields a system of communicating finite-state machines. We consider both the standard asynchronous semantics of communicating systems and a synchronous variant of it. For both, the projections of well-formed automata are proved to be live as well as lock- and deadlock-free
Session Coalgebras: A Coalgebraic View on Session Types and Communication Protocols
Compositional methods are central to the development and verification of
software systems. They allow to break down large systems into smaller
components, while enabling reasoning about the behaviour of the composed
system. For concurrent and communicating systems, compositional techniques
based on behavioural type systems have received much attention. By abstracting
communication protocols as types, these type systems can statically check that
programs interact with channels according to a certain protocol, whether the
intended messages are exchanged in a certain order. In this paper, we put on
our coalgebraic spectacles to investigate session types, a widely studied class
of behavioural type systems. We provide a syntax-free description of
session-based concurrency as states of coalgebras. As a result, we rediscover
type equivalence, duality, and subtyping relations in terms of canonical
coinductive presentations. In turn, this coinductive presentation makes it
possible to elegantly derive a decidable type system with subtyping for
-calculus processes, in which the states of a coalgebra will serve as
channel protocols. Going full circle, we exhibit a coalgebra structure on an
existing session type system, and show that the relations and type system
resulting from our coalgebraic perspective agree with the existing ones.Comment: 36 pages, submitte
Session coalgebras: A coalgebraic view on session types and communication protocols
Compositional methods are central to the development and verification of software systems. They allow breaking down large systems into smaller components, while enabling reasoning about the behaviour of the composed system. For concurrent and communicating systems, compositional techniques based on behavioural type systems have received much attention. By abstracting communication protocols as types, these type systems can statically check that programs interact with channels according to a certain protocol, whether the intended messages are exchanged in a certain order. In this paper, we put on our coalgebraic spectacles to investigate session types, a widely studied class of behavioural type systems. We provide a syntax-free description of session-based concurrency as states of coalgebras. As a result, we rediscover type equivalence, duality, and subtyping rela
A Theory of Formal Choreographic Languages
We introduce a meta-model based on formal languages, dubbed formal
choreographic languages, to study message-passing systems. Our framework allows
us to generalise standard constructions from the literature and to compare
them. In particular, we consider notions such as global view, local view, and
projections from the former to the latter. The correctness of local views
projected from global views is characterised in terms of a closure property. We
consider a number of communication properties -- such as (dead)lock-freedom --
and give conditions on formal choreographic languages to guarantee them.
Finally, we show how formal choreographic languages can capture existing
formalisms; specifically we consider communicating finite-state machines,
choreography automata, and multiparty session types. Notably, formal
choreographic languages, differently from most approaches in the literature,
can naturally model systems exhibiting non-regular behaviour
Choreography Automata
Online event due to covidInternational audienceAutomata models are well-established in many areas of computer science and are supported by a wealth of theoretical results including a wide range of algorithms and techniques to specify and analyse systems. We introduce choreography automata for the choreographic modelling of communicating systems. The projection of a choreography automaton yields a system of communicating finite-state machines. We consider both the standard asynchronous semantics of communicating systems and a synchronous variant of it. For both, the projections of well-formed automata are proved to be live as well as lock-and deadlock-free
Affine Disjunctive Invariant Generation with Farkas' Lemma
Invariant generation is the classical problem that aims at automated
generation of assertions that over-approximates the set of reachable program
states in a program. We consider the problem of generating affine invariants
over affine while loops (i.e., loops with affine loop guards, conditional
branches and assignment statements), and explore the automated generation of
disjunctive affine invariants. Disjunctive invariants are an important class of
invariants that capture disjunctive features in programs such as multiple
phases, transitions between different modes, etc., and are typically more
precise than conjunctive invariants over programs with these features. To
generate tight affine invariants, existing constraint-solving approaches have
investigated the application of Farkas' Lemma to conjunctive affine invariant
generation, but none of them considers disjunctive affine invariants
Functional Choreographic Programming
Choreographic programming is an emerging programming paradigm for concurrent
and distributed systems, whereby developers write the communications that
should be enacted and then a distributed implementation is automatically
obtained by means of a compiler. Theories of choreographic programming
typically come with strong theoretical guarantees about the compilation
process, most notably: the generated implementations operationally correspond
to their source choreographies and are deadlock-free.
Currently, the most advanced incarnation of the paradigm is Choral, an
object-oriented choreographic programming language that targets Java. Choral
deviated significantly from known theories of choreographies, and introduced
the possibility of expressing higher-order choreographies (choreographies
parameterised over choreographies) that are fully distributed. As a
consequence, it is unclear if the usual guarantees of choreographies can still
hold in the more general setting of higher-order ones.
We introduce Chor{\lambda}, the first functional choreographic programming
language: it introduces a new formulation of the standard communication
primitive found in choreographies as a function, and it is based upon the
{\lambda}-calculus. Chor{\lambda} is the first theory that explains the core
ideas of higher-order choreographic programming (as in Choral). Bridging the
gap between practice and theory requires developing a new evaluation strategy
and typing discipline for {\lambda} terms that accounts for the distributed
nature of computation in choreographies. We illustrate the expressivity of
Chor{\lambda} with a series of examples, which include reconstructions of the
key examples from the original presentation of Choral. Our theory supports the
expected properties of choreographic programming and bridges the gap between
the communities of functional and choreographic programming
Fundamental Approaches to Software Engineering
This open access book constitutes the proceedings of the 24th International Conference on Fundamental Approaches to Software Engineering, FASE 2021, which took place during March 27–April 1, 2021, and was held as part of the Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg but changed to an online format due to the COVID-19 pandemic. The 16 full papers presented in this volume were carefully reviewed and selected from 52 submissions. The book also contains 4 Test-Comp contributions