Choreographies and Cost Semantics for Reliable Communicating Systems
Doktorsavhandling, 2023
Unfortunately, the complexity of their interactions makes
them particularly prone to failures such as deadlocked states
caused by misbehaving components, or memory exhaustion due to a surge
in message traffic (malicious or not).
These vulnerabilities constitute a real risk to users, with
consequences ranging from minor inconveniences to the possibility of
loss of life and capital.
This thesis presents results that aim to increase the reliability of communicating systems.
First, we implement a choreography language that can, by construction, only describe deadlock-free systems.
Second, we develop a cost semantics to prove programs free of out-of-memory errors.
Lastly, we improve both results by using novel semantic approaches that strengthen key theorems and facilitate further proof development.
All of these results are formalized in the HOL4 theorem prover and integrated with the CakeML verified stack.
Författare
Alejandro Gómez Londoño
Chalmers, Data- och informationsteknik, Formella metoder
Kalas: A Verified, End-To-End Compiler for a Choreographic Language
Leibniz International Proceedings in Informatics, LIPIcs,;Vol. 237(2022)
Paper i proceeding
Dancing in a forest of interactions: An interaction tree-based semantics for choreographies
Do you have space for dessert? a verified space cost semantics for CakeML programs
Proceedings of the ACM on Programming Languages,;Vol. 4(2020)
Artikel i vetenskaplig tidskrift
A flat reachability-based measure for CakeML's cost semantics
ACM International Conference Proceeding Series,;(2021)p. 1-9
Paper i proceeding
From personal communication and social media platforms to critical infrastructures like transportation networks, financial systems, and healthcare services, our reliance on communication systems is pervasive. The ability to transmit information swiftly and efficiently has revolutionized how we work, socialize, access information, and conduct business. However, these systems' intricate nature and widespread usage make them vulnerable to failures that can disrupt our daily routines and pose significant risks to individuals, organizations, and society.
One of the most prevalent problems encountered in communication systems is deadlock states, where all or some parts of the system become incapable of communicating with each other. Deadlock states can be caused by malfunctioning components, a mismatch in communications, or out-of-memory errors due to excessive message traffic, intentional or unintentional. These vulnerabilities pose a tangible threat to users, ranging from minor inconveniences to potential risks to life and financial assets.
This thesis aims to improve the reliability of communication systems by presenting results that prevent the occurrence of deadlock states. First, we develop a programming language which, by construction, guarantees the absence of communication mismatches. Therefore, component interactions can only be constructed in such a way that prevents deadlock situations from arising. Second, we create a proof framework to verify the absence of out-of-memory errors in programs, ensuring system stability. Finally, we extend these results to improve their ease of use, fomenting their adoption and further development.
All results have been mechanically formalized within the HOL4 theorem prover and utilize the CakeML verified stack to validate our approach.
Pålitlig mjukvara via programmering och kompilering i logik
Stiftelsen för Strategisk forskning (SSF) (FFL15-0191), 2017-01-01 -- 2021-12-31.
Ämneskategorier
Datavetenskap (datalogi)
ISBN
978-91-7905-872-2
Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie: 5338
Utgivare
Chalmers
EDIT Room EA
Opponent: Marco Carbone, Associate Professor at the Computer Science Department, IT University of Copenhagen, Denmark