Type-based initialization analysis of a synchronous dataflow language

Jean-Louis Colaço and Marc Pouzet

From the issue entitled "Special section on tool integration applications and frameworks"

View Related Documents

Abstract

One of the appreciated features of the synchronous dataflow approach is that a program defines a perfectly deterministic behavior. But the use of the delay primitive leads to undefined values at the first cycle; thus a dataflow program is really deterministic only if it can be shown that such undefined values do not affect the behavior of the system.
This paper presents an initialization analysis that guarantees the deterministic behavior of programs. This property being undecidable in general, the paper proposes a safe approximation of the property, precise enough for most dataflow programs. This analysis is a one-bit analysis – expressions are either initialized or uninitialized – and is defined as an inference-type system with subtyping constraints. This analysis has been implemented in the Lucid Synchrone compiler and in a new Scade-Lustre prototype compiler at Esterel Technologies. The analysis gives very good results in practice.

Keywords  Synchronous dataflow languages - Lustre - Type systems with subtyping - Program analysis

Fulltext Preview

Image of the first page of the fulltext document