A Denotational Semantics for Communicating Unstructured Code
Nils J\"ahnig (TU Berlin), Thomas G\"othel (TU Berlin), Sabine Glesner, (TU Berlin)

TL;DR
This paper develops a compositional denotational semantics for unstructured low-level code with communication, enabling formal reasoning and verification of such code by structuring it and capturing communication via finite traces.
Contribution
It introduces a novel compositional semantics for unstructured code that incorporates communication, based on fixed points and trace semantics, facilitating formal verification.
Findings
Semantics based on least fixed points for unstructured code
Communication modeled using finite trace semantics
Foundation for a proof calculus combining code and communication
Abstract
An important property of programming language semantics is that they should be compositional. However, unstructured low-level code contains goto-like commands making it hard to define a semantics that is compositional. In this paper, we follow the ideas of Saabas and Uustalu to structure low-level code. This gives us the possibility to define a compositional denotational semantics based on least fixed points to allow for the use of inductive verification methods. We capture the semantics of communication using finite traces similar to the denotations of CSP. In addition, we examine properties of this semantics and give an example that demonstrates reasoning about communication and jumps. With this semantics, we lay the foundations for a proof calculus that captures both, the semantics of unstructured low-level code and communication.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
