Skip to main navigation Skip to search Skip to main content

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

  • Simon Fowler

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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.
Original languageEnglish
Title of host publication34th European Conference on Object-Oriented Programming (ECOOP 2020)
EditorsRobert Hirschfeld, Tobias Pape
PublisherSchloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany
Pages14:1 - 14:28
Number of pages28
ISBN (Electronic)978-3-95977-154-2
DOIs
Publication statusPublished - 6 Nov 2020
EventEuropean Conference on Object-Oriented Programming 2020 - Berlin, Germany
Duration: 13 Jul 202017 Jul 2020
https://2020.ecoop.org/

Publication series

NameLeibniz International Proceedings in Informatics (LIPIcs)
PublisherSchloss Dagstuhl--Leibniz-Zentrum für Informatik
Volume166
ISSN (Electronic)1868-8969

Conference

ConferenceEuropean Conference on Object-Oriented Programming 2020
Abbreviated titleECOOP 2020
Country/TerritoryGermany
CityBerlin
Period13/07/2017/07/20
Internet address

Keywords / Materials (for Non-textual outputs)

  • Session types
  • Concurrent programming
  • Model-View-Update

Fingerprint

Dive into the research topics of 'Model-View-Update-Communicate: Session Types Meet the Elm Architecture'. Together they form a unique fingerprint.

Cite this