• Home
  • Search
  • Verified Lustre Normalization with Node Subsampling
  • Open Access IconOpen Access
  • Cite Icon6
  • https://doi.org/10.1145/3477041Copy DOI Icon

Verified Lustre Normalization with Node Subsampling

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Dataflow languages allow the specification of reactive systems by mutually recursive stream equations, functions, and boolean activation conditions called clocks. Lustre and Scade are dataflow languages for programming embedded systems. Dataflow programs are compiled by a succession of passes. This article focuses on the normalization pass which rewrites programs into the simpler form required for code generation. Vélus is a compiler from a normalized form of Lustre to CompCert’s Clight language. Its specification in the Coq interactive theorem prover includes an end-to-end correctness proof that the values prescribed by the dataflow semantics of source programs are produced by executions of generated assembly code. We describe how to extend Vélus with a normalization pass and to allow subsampled node inputs and outputs. We propose semantic definitions for the unrestricted language, divide normalization into three steps to facilitate proofs, adapt the clock type system to handle richer node definitions, and extend the end-to-end correctness theorem to incorporate the new features. The proofs require reasoning about the relation between static clock annotations and the presence and absence of values in the dynamic semantics. The generalization of node inputs requires adding a compiler pass to ensure the initialization of variables passed in function calls.

Similar Papers
  • Research Article
  • Citations12

A Dynamic Operational Semantics for JVML.

  • Jan 01, 2007
  • The Journal of Object Technology
  • Nadia Belblidia +1
  • Book Chapter
  • Citations2

Falafel: Arrays in a Functional Language

  • Jan 01, 1991
  • Carl McCrosky +2
  • Conference Article
  • Citations12

Indeterminacy, monitors, and dataflow

  • Jan 01, 1977
  • Arvind +2
  • Book Chapter
  • Citations10

Semantics for Dynamic Logic Programming: A Principle-Based Approach

  • Jan 01, 2003
  • José J Alferes +3
  • Book Chapter
  • Citations7

On the Correctness of an Optimising Assembler for the Intel MCS-51 Microprocessor

  • Jan 01, 2012
  • Dominic P Mulligan +1
  • Book Chapter
  • Citations1

Evaluation of working set algorithms for data-flow machines

  • Jan 01, 1986
  • Hideki Sunahara +1
  • Research Article
  • Citations34

Safety of Nöcker's strictness analysis

  • Nov 08, 2007
  • Journal of Functional Programming
  • Manfred Schmidt-Schauss +2
  • Research Article
  • Citations23

On the two-dimensional sloshing problem

  • Sep 08, 2004
  • Proceedings of the Royal Society of London. Series A: Mathematical, Physical and Engineering Sciences
  • Vladimir Kozlov +2
  • Research Article
  • Citations6

An exploration of program as language

  • Oct 25, 2009
  • ACM SIGPLAN Notices
  • Elisa Baniassad +1
  • PDF
  • Research Article
  • Citations1

Modeling the dynamic semantics of a computer program

  • Dec 27, 2023
  • Digital models and solutions
  • K Iklassova +1
  • Conference Article
  • Citations28

SemCluster: clustering of imperative programming assignments based on quantitative semantic features

  • Jun 08, 2019
  • David M Perry +3
  • Conference Article
  • Citations21

Modular development of certified program verifiers with a proof assistant

  • Sep 16, 2006
  • Adam Chlipala
  • Supplementary Content

Program Composition and Optimization: An Introduction

  • Jan 01, 2010
  • DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)
  • Christoph Keßler +3
  • Book Chapter

Inductive and Recursive Definitions

  • Jan 01, 2013
  • Faron Moller +1
  • Book Chapter
  • Citations7

The PSG system: From formal language definitions to interactive programming environments

  • Jan 01, 1988
  • Rolf Bahlke +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.