6 research outputs found
Multiparty Languages: The Choreographic and Multitier Cases (Pearl)
Choreographic languages aim to express multiparty communication protocols, by providing primitives that make interaction manifest. Multitier languages enable programming computation that spans across several tiers of a distributed system, by supporting primitives that allow computation to change the location of execution. Rooted into different theoretical underpinnings - respectively process calculi and lambda calculus - the two paradigms have been investigated independently by different research communities with little or no contact. As a result, the link between the two paradigms has remained hidden for long.
In this paper, we show that choreographic languages and multitier languages are surprisingly similar. We substantiate our claim by isolating the core abstractions that differentiate the two approaches and by providing algorithms that translate one into the other in a straightforward way. We believe that this work paves the way for joint research and cross-fertilisation among the two communities
Multiparty Languages: The Choreographic and Multitier Cases
International audienceChoreographic languages aim to express multiparty communication protocols, by providing primitives that make interaction manifest. Multitier languages enable programming computation that spans across several tiers of a distributed system, by supporting primitives that allow computation to change the location of execution. Rooted into different theoretical underpinnings-respectively process calculi and lambda calculus-the two paradigms have been investigated independently by different research communities with little or no contact. As a result, the link between the two paradigms has remained hidden for long. In this paper, we show that choreographic languages and multitier languages are surprisingly similar. We substantiate our claim by isolating the core abstractions that differentiate the two approaches and by providing algorithms that translate one into the other in a straightforward way. We believe that this work paves the way for joint research and cross-fertilisation among the two communities
Gradual Typing for Effect Handlers
We present a gradually typed language, GrEff, with effects and handlers that
supports migration from unchecked to checked effect typing. This serves as a
simple model of the integration of an effect typing discipline with an existing
effectful typed language that does not track fine-grained effect information.
Our language supports a simple module system to model the programming model of
gradual migration from unchecked to checked effect typing in the style of Typed
Racket.
The surface language GrEff is given semantics by elaboration to a core
language Core GrEff. We equip Core GrEff with an inequational theory for
reasoning about the semantic error ordering and desired program equivalences
for programming with effects and handlers. We derive an operational semantics
for the language from the equations provable in the theory. We then show that
the theory is sound by constructing an operational logical relations model to
prove the graduality theorem. This extends prior work on embedding-projection
pair models of gradual typing to handle effect typing and subtyping.Comment: Extended version with appendi
An Unexpected Journey: Towards Runtime Verification of Multiagent Systems and Beyond
The Trace Expression formalism derives from works started in 2012 and is
mainly used to specify and verify interaction protocols at runtime, but other
applications have been devised. More specically, this thesis describes how
to extend and apply such formalism in the engineering process of distributed
articial intelligence systems (such as Multiagent systems).
This thesis extends the state of the art through four dierent contributions:
1. Theoretical: the thesis extends the original formalism in order to represent
also parametric and probabilistic specications (parametric trace
expressions and probabilistic trace expressions respectively).
2. Algorithmic: the thesis proposes algorithms for verifying trace expressions
at runtime in a decentralized way. The algorithms have been
designed to be as general as possible, but their implementation and
experimentation address scenarios where the modelled and observed
events are communicative events (interactions) inside a multiagent system.
3. Application: the thesis analyzes the relations between runtime and static
verication (e.g. model checking) proposing hybrid integrations in both
directions. First of all, the thesis proposes a trace expression model
checking approach where it shows how to statically verify LTL property
on a trace expression specication. After that, the thesis presents a
novel approach for supporting static verication through the addition
of monitors at runtime (post-process).
4. Implementation: the thesis presents RIVERtools, a tool supporting the
writing, the syntactic analysis and the decentralization of trace expressions