A formally verified compiler for lustre

  • Timothy Bourke
  • , Lélio Brun
  • , Pierre Évariste Dagand
  • , Xavier Leroy
  • , Marc Pouzet
  • , Lionel Rieg

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

The correct compilation of block diagram languages like Lustre, Scade, and a discrete subset of Simulink is important since they are used to program critical embedded control software. We describe the specification and verification in an Interactive Theorem Prover of a compilation chain that treats the key aspects of Lustre: sampling, nodes, and delays. Building on CompCert, we show that repeated execution of the generated assembly code faithfully implements the dataflow semantics of source programs. We resolve two key technical challenges. The first is the change from a synchronous dataflow semantics, where programs manipulate streams of values, to an imperative one, where computations manipulate memory sequentially. The second is the verified compilation of an imperative language with encapsulated state to C code where the state is realized by nested records. We also treat a standard control optimization that eliminates unnecessary conditional statements. Copyright is held by the owner/author(s).

Original languageEnglish
Title of host publicationPLDI 2017 - Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
EditorsAlbert Cohen, Martin Vechev
PublisherAssociation for Computing Machinery
Pages586-601
Number of pages16
ISBN (Electronic)9781450349888
DOIs
Publication statusPublished - 14 Jun 2017
Event38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017 - Barcelona, Spain
Duration: 18 Jun 201723 Jun 2017

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
VolumePart F128414

Conference

Conference38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017
Country/TerritorySpain
CityBarcelona
Period18/06/1723/06/17

Keywords

  • Formally verified compilation
  • Interactive theorem proving (Coq)
  • Synchronous languages (Lustre)

Fingerprint

Dive into the research topics of 'A formally verified compiler for lustre'. Together they form a unique fingerprint.

Cite this