Reference. The Denotational Semantics of SSA

Static single assignment form, or SSA, has been the dominant compiler intermediate representation for decades. In this paper, we give a type theory for a variant of SSA, including its equational theory, which are strong enough to validate a variety of control and data flow transformations. We also give a categorical semantics for SSA, and show that the type theory is sound and complete with respect to the categorical axiomatization. We demonstrate the utility of our model by exhibiting a variety of concrete models satisfying our axioms, including in particular a model of TSO weak memory. The correctness of the syntactic metatheory, as well as the completeness proof has been mechanized in the Lean proof assistant.

Cite

Cite as @ghalayini-2024-the (helia, typst) · \cite{ghalayini-2024-the} (LaTeX)
BibTeX
bibtex · 8 lines
@misc{ghalayini-2024-the,
  author = {Jad Elkhaleq Ghalayini and Krishnaswami, Neelakantan R.},
  title = {The Denotational Semantics of SSA},
  year = {2024},
  month = {11},
  eprint = {2411.09347},
  archiveprefix = {arXiv}
}
hayagriva YAML (typst)
yaml · 9 lines
ghalayini-2024-the:
  type: misc
  title: The Denotational Semantics of SSA
  author:
  - Ghalayini, Jad Elkhaleq
  - Krishnaswami, Neelakantan R.
  date: 2024-11
  serial-number:
    arxiv: '2411.09347'
Cites 54 works (2 here)
With notes (2)

A Denotational Approach to Release/Acquire Concurrency dvir-2024-a

We present a compositional denotational semantics for a functional language with first-class parallel composition and shared-memory operations whose operational semantics follows the Release/Acquire weak memory model (RA). The semantics is formulated in Moggi’s monadic approach, and is based on Brookes-style traces. To do so we adapt Brookes’s traces to Kang et al.’s view-based machine for RA, and supplement Brookes’s mumble and stutter closure operations with additional operations, specific to RA. The latter provides a more nuanced understanding of traces that uncouples them from operational interrupted executions. We show that our denotational semantics is adequate and use it to validate various program transformations of interest. This is the first work to put weak memory models on the same footing as many other programming effects in Moggi’s standard monadic approach.
PDF · DOI · pldb

Formal verification of a realistic compiler leroy_formal_2009

This paper reports on the development and formal verification (proof of semantic preservation) of CompCert, a compiler from Clight (a large subset of the C programming language) to PowerPC assembly code, using the Coq proof assistant both for programming the compiler and for proving its correctness. Such a verified compiler is useful in the context of critical software and its formal verification: the verification of the compiler guarantees that the safety properties proved on the source code hold for the executable compiled code as well.
DOI
External (52)
ghalayini-2024-the reference entries/refs/ghalayini-2024-the/ghalayini-2024-the.hel