Please use this identifier to cite or link to this item:
/library/oar/handle/123456789/141263| Title: | Static checking of concurrent programs in Elixir using session types |
| Authors: | Tabone, Gerard (2022) |
| Keywords: | Elixir (Computer program language) Parallel programming (Computer science) |
| Issue Date: | 2022 |
| Citation: | Tabone, G. (2022). Static checking of concurrent programs in Elixir using session types (Master's dissertation). |
| Abstract: | Message-passing concurrency is becoming increasingly popular, and is prevalently used in several programming languages, such as Go, Scala, Rust and Elixir. In message-passing concurrency, processes interact with each other by exchanging messages. If these messages are sent incorrectly, certain behavioural issues, such as communication mismatches and deadlocks, may arise. We employ session types, which are a form of behavioural types, to detect these kinds of communication errors at compile-time, in the context of the Elixir language. More concretely, session types are protocols used to define the whole message-based interaction between processes, by dictating the order and type of messages that can be sent and received. We use these protocols to annotate public functions in Elixir modules to formalise their expected behaviour in terms of the messages sent and received when executing the body of said functions. Then, we design a (session) type system that uses these protocols to statically analyse and determine whether the functions observe the session type specification. This type system is validated from a formal perspective, by showing that it follows the session fidelity property. Moreover, the type system is validated empirically, by being implemented as a tool, which automates typechecking for Elixir modules. |
| Description: | M.Sc.(Melit.) |
| URI: | https://www.um.edu.mt/library/oar/handle/123456789/141263 |
| Appears in Collections: | Dissertations - FacICT - 2022 |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 2219ICTICT501005062229_1.PDF | 1.53 MB | Adobe PDF | View/Open |
Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.
