Reversible Session-Based Concurrency in Haskell

Folkert Vries, de, Jorge A. Perez

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

2 Citations (Scopus)
191 Downloads (Pure)

Abstract

A reversible semantics enables to undo computation steps. Reversing message-passing, concurrent programs is a challenging and delicate task; one typically aims at causally consistent reversible semantics. Prior work has addressed this challenge in the context of a process model of multiparty protocols (or choreographies). In this paper, we describe a Haskell implementation of this reversible operational seman- tics. We exploit algebraic data types to faithfully represent three core ingredients: a process calculus, multiparty session types, and forward and backward reduction semantics. Our implementation bears witness to the convenience of pure functional programming for implementing reversible languages.
Original languageEnglish
Title of host publicationTrends in Functional Programming
EditorsMichal Palka, Magnus Myreen
Place of PublicationCham
PublisherSpringer
Pages20-45
ISBN (Electronic)978-3-030-18506-0
ISBN (Print)978-3-030-18505-3
DOIs
Publication statusPublished - 2019
Event19th International Symposium, TFP 2018 - Gothenburg, Sweden
Duration: 11-Jun-201813-Jun-2018

Publication series

Name Lecture Notes in Computer Science
PublisherSpringer
Volume11457
ISSN (Print)0302-9743

Conference

Conference19th International Symposium, TFP 2018
Country/TerritorySweden
CityGothenburg
Period11/06/201813/06/2018

Cite this