From Communicating Machines to Graphical Choreographies

Lange, Julien and Tuosto, E. and Yoshida, N. (2015) From Communicating Machines to Graphical Choreographies. In: 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 15), 15 - 17 January 2015, Mumbai, INDIA. (doi:https://doi.org/10.1145/2676726.2676964) (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided)

The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided. (Contact us about this Publication)
Official URL
http://dx.doi.org/10.1145/2676726.2676964

Abstract

Graphical choreographies, or global graphs, are general multiparty session specifications featuring expressive constructs such as forking, merging, and joining for representing application-level protocols. Global graphs can be directly translated into modelling notations such as BPMN and UML. This paper presents an algorithm whereby a global graph can be constructed from asynchronous interactions represented by communicating finite-state machines (CFSMs). Our results include: a sound and complete characterisation of a subset of safe CFSMs from which global graphs can be constructed; an algorithm to translate CFSMs to global graphs; a time complexity analysis; and an implementation of our theory, as well as an experimental evaluation.

Item Type: Conference or workshop item (Proceeding)
Uncontrolled keywords: Science & Technology, Technology, Computer Science, Software Engineering, Computer Science, multiparty session types, choreography, communicating finite-state machines, global graphs, theory of regions, AUTOMATA
Divisions: Faculties > Sciences > School of Computing
Depositing User: Julien Lange
Date Deposited: 12 Jul 2017 15:23 UTC
Last Modified: 12 Jul 2017 15:24 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/62255 (The current URI for this page, for reference purposes)
  • Depositors only (login required):