Model-View-Update-Communicate: Session Types meet the Elm Architecture

Fowler, S. (2020) Model-View-Update-Communicate: Session Types meet the Elm Architecture. In: 34th European Conference on Object-Oriented Programming (ECOOP 2020), 15-17 Nov 2020, p. 14. ISBN 9783959771542 (doi: 10.4230/LIPIcs.ECOOP.2020.14)

[img] Text
223081.pdf - Published Version
Available under License Creative Commons Attribution.

859kB

Abstract

Session types are a type discipline for communication channel endpoints which allow conformance to protocols to be checked statically. Safely implementing session types requires linearity, usually in the form of a linear type system. Unfortunately, linear typing is difficult to integrate with graphical user interfaces (GUIs), and to date most programs using session types are command line applications. In this paper, we propose the first principled integration of session typing and GUI development by building upon the Model-View-Update (MVU) architecture, pioneered by the Elm programming language. We introduce λMVU, the first formal model of the MVU architecture, and prove it sound. By extending λMVU with commands as found in Elm, along with linearity and model transitions, we show the first formal integration of session typing and GUI programming. We implement our approach in the Links web programming language, and show examples including a two-factor authentication workflow and multi-room chat server.

Item Type:Conference Proceedings
Additional Information:This work was supported by ERC Consolidator Grant Skye (grant no. 682315) and an ISCF Metrology Fellowship grant provided by the UK government’s Department for Business, Energy and Industrial Strategy (BEIS).
Status:Published
Refereed:Yes
Glasgow Author(s) Enlighten ID:Fowler, Dr Simon
Authors: Fowler, S.
College/School:College of Science and Engineering > School of Computing Science
ISSN:1868-8969
ISBN:9783959771542
Copyright Holders:Copyright © 2020 Simon Fowler
First Published:First published in 34th European Conference on Object-Oriented Programming (ECOOP 2020): 14
Publisher Policy:Reproduced under a Creative Commons License
Related URLs:

University Staff: Request a correction | Enlighten Editors: Update this record