Functional Stream Semantics for a Synchronous Block-Diagram Compiler
Synchronous block-diagram languages have long been formalized as fixpoints of equations defining stream functions. We apply this approach to a compiler verified in an interactive theorem prover, allowing us to restate its end-to-end correctness theorem: if a program is accepted and has no runtime errors, its input/output behavior is preserved in the generated code. In a functional semantics, it is necessary to model all possible behaviors, including erroneous ones. We show that static typing and dependency analyses correctly rule out all errors except those arising from logical and arithmetic operators. Our definitions supplement existing formal ones, especially for the reset operator, which is both useful in itself and a basis of advanced control structures.
Authors
- Timothy Bourke (ORCID: https://orcid.org/0000-0003-0601-4182)
- Paul Jeanmaire
- Marc Pouzet (ORCID: https://orcid.org/0000-0002-2651-7708)
Institutions
- Institut national de recherche en sciences et technologies du numérique (FR)
- École Normale Supérieure (BI)
Publication Details
- Published
- 2025-06-23
- DOI
- https://doi.org/10.1109/lics65433.2025.00052
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00