Projects per year
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.
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 language | English |
|---|---|
| Title of host publication | 34th European Conference on Object-Oriented Programming (ECOOP 2020) |
| Editors | Robert Hirschfeld, Tobias Pape |
| Publisher | Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany |
| Pages | 14:1 - 14:28 |
| Number of pages | 28 |
| ISBN (Electronic) | 978-3-95977-154-2 |
| DOIs | |
| Publication status | Published - 6 Nov 2020 |
| Event | European Conference on Object-Oriented Programming 2020 - Berlin, Germany Duration: 13 Jul 2020 → 17 Jul 2020 https://2020.ecoop.org/ |
Publication series
| Name | Leibniz International Proceedings in Informatics (LIPIcs) |
|---|---|
| Publisher | Schloss Dagstuhl--Leibniz-Zentrum für Informatik |
| Volume | 166 |
| ISSN (Electronic) | 1868-8969 |
Conference
| Conference | European Conference on Object-Oriented Programming 2020 |
|---|---|
| Abbreviated title | ECOOP 2020 |
| Country/Territory | Germany |
| City | Berlin |
| Period | 13/07/20 → 17/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.Projects
- 1 Finished
-
Skye-A programming language bridging theory and practice for scientific data curation
Cheney, J. (Principal Investigator)
1/09/16 → 28/02/23
Project: Research
Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver