ElixirST: A session-based type system for Elixir modules

This paper investigates the adaptation of session types to provide behavioural information about Elixir modules. We devise a type system, called ElixirST, which statically determines whether functions in an Elixir module observe their endpoint specifications, expressed as session types; a correspond...

Full description

Saved in:
Bibliographic Details
Published inJournal of logical and algebraic methods in programming Vol. 135; p. 100891
Main Authors Francalanza, Adrian, Tabone, Gerard
Format Journal Article
LanguageEnglish
Published Elsevier Inc 01.10.2023
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:This paper investigates the adaptation of session types to provide behavioural information about Elixir modules. We devise a type system, called ElixirST, which statically determines whether functions in an Elixir module observe their endpoint specifications, expressed as session types; a corresponding tool automating this typechecking has also been constructed. In this paper we also formally validate this type system. An LTS-based operational semantics for the language fragment supported by the type system is developed, modelling its runtime behaviour when interacting with the module client. This operational semantics is then used to prove a form of session fidelity and progress for ElixirST.
ISSN:2352-2208
DOI:10.1016/j.jlamp.2023.100891