Bereczky, Péter, Horpácsi, Dániel, Thompson, Simon (2024) A Formalisation of Core Erlang, a Concurrent Actor Language. Acta Cybernetica, 26 (3). pp. 373-404. ISSN 0324-721X. (doi:10.14232/actacyb.298977) (KAR id:107618)
PDF
Publisher pdf
Language: English |
|
Download this file (PDF/781kB) |
Preview |
Request a format suitable for use with assistive technology e.g. a screenreader | |
Official URL: https://doi.org/10.14232/actacyb.298977 |
Abstract
In order to reason about the behaviour of programs described in a programming language, a mathematically rigorous definition of that language is needed. In this paper, we present a machine-checked formalisation of concurrent Core Erlang (a subset of Erlang) based on our previous formalisations of its sequential sublanguage. We define a modular, frame stack semantics, show how program evaluation is carried out with it, and prove a number of properties (e.g. determinism, confluence). Finally, we define program equivalence based on bisimulations and prove that side-effect-free evaluation is a bisimulation. This research is part of a wider project that aims to verify refactorings to prove that particular program code transformations preserve program behaviour.
Item Type: | Article |
---|---|
DOI/Identification number: | 10.14232/actacyb.298977 |
Uncontrolled keywords: | formal semantics, formal verification, concurrency, actor model, program equivalence, bisimulation, Erlang, Core Erlang, Coq |
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Funders: | University of Kent (https://ror.org/00xkeyj56) |
Depositing User: | Simon Thompson |
Date Deposited: | 26 Oct 2024 15:25 UTC |
Last Modified: | 28 Oct 2024 13:14 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/107618 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):