
doi: 10.1145/3371112
Specifications based on block diagrams and state machines are used to design control software, especially in the certified development of safety-critical applications. Tools like SCADE Suite and Simulink/Stateflow are equipped with compilers that translate such specifications into executable code. They provide programming languages for composing functions over streams as typified by Dataflow Synchronous Languages like Lustre. Recent work builds on CompCert to specify and verify a compiler for the core of Lustre in the Coq Interactive Theorem Prover. It formally links the stream-based semantics of the source language to the sequential memory manipulations of generated assembly code. We extend this work to treat a primitive for resetting subsystems. Our contributions include new semantic rules that are suitable for mechanized reasoning, a novel intermediate language for generating optimized code, and proofs of correctness for the associated compilation passes.
CCS Concepts: • Software and its engineering → Formal language definitions, [INFO.INFO-LO] Computer Science [cs]/Logic in Computer Science [cs.LO], Interactive theorem proving, Compilers, Software verification, Verified compilation, • Computer systems organization → Embedded software Additional Key Words and Phrases: stream languages, [INFO.INFO-ES] Computer Science [cs]/Embedded Systems, [INFO.INFO-PL] Computer Science [cs]/Programming Languages [cs.PL]
CCS Concepts: • Software and its engineering → Formal language definitions, [INFO.INFO-LO] Computer Science [cs]/Logic in Computer Science [cs.LO], Interactive theorem proving, Compilers, Software verification, Verified compilation, • Computer systems organization → Embedded software Additional Key Words and Phrases: stream languages, [INFO.INFO-ES] Computer Science [cs]/Embedded Systems, [INFO.INFO-PL] Computer Science [cs]/Programming Languages [cs.PL]
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 14 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Top 10% | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Top 10% |
