Informations
A denotational semantics for a verified synchronous compiler
defended on December 20, 2024. Jury:
advisors | Timothy Bourke | Inria |
Marc Pouzet | ENS | |
reviewers | Sylvain Boulmé | Grenoble INP |
Christine Paulin-Mohring | Université Paris-Saclay | |
examiners | Michael Mendler | Bamberg University |
César Muñoz | NASA | |
Xavier Rival | Inria | |
Yannick Zakowski | Inria |
Abstract
Lustre is a synchronous dataflow language. Its discrete temporal structure and clocking system guarantee statically bounded execution time and memory consumption, favoring its adoption in mission-critical systems, notably within the Scade industrial tool. Vélus, developed at Inria, is a verified Lustre compiler. Based on the definition of formal semantics for each intermediate language, it provides a proof that a Lustre program and its translation into Clight (the language supported by CompCert) exhibit identical behaviors. In this thesis, we develop a new model of the input language's dataflow kernel, based on synchronous denotational semantics, and give the exact conditions for its equivalence with the existing relational model in Vélus. This constructive approach results in an executable semantics, reinforcing the main correctness theorem of the compilation. Thanks to Scott's induction principle, specific to denotational semantics, we are able to conduct very natural reasoning on program dynamics, but with explicit treatment of errors that may occur at runtime. Finally, we explore the possibility of freeing ourselves from language synchronization constraints by proposing a formal correspondence between our model and that of Kahn's networks. We outline the principles of the infrastructure required for an end-to-end verified reasoning on compilable programs.
The source code of the associated formal development is available here under Inria non-commercial license.