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...
Saved in:
Published in | Journal of logical and algebraic methods in programming Vol. 135; p. 100891 |
---|---|
Main Authors | , |
Format | Journal Article |
Language | English |
Published |
Elsevier Inc
01.10.2023
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
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 |