Skip to main content
Log in

Type-based initialization analysis of a synchronous dataflow language

  • Regular contribution
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aiken A, Wimmers E (1993) Type inclusion constraints and type inference. In: 7th conference on functional programming and computer architecture, Copenhagen. ACM Press, June 1993, pp 31–41

  2. Aiken A, Wimmers E, Palsberg J (1997) Optimal representations of polymorphic types with subtyping. In: Theoretical Aspects of Computer Software (TACS), September 1997

  3. Ashcroft EA, Wadge WW (1985) Lucid, the data-flow programming language. In: APIC studies in data processing, vol 22. Academic

  4. Caspi P, Pouzet M (1996) Synchronous Kahn networks. In: ACM SIGPLAN international conference on functional programming, Philadelphia, May 1996

  5. Caspi P, Pouzet M (2001) Lucid Synchrone, a functional extension of Lustre. Available at: www-spi.lip6.fr/∼pouzet

    Google Scholar 

  6. Colaço J-L, Pouzet M (2002) Type-based initialization of a synchronous data-flow language. In: Synchronous languages, applications, and programming, vol 65. Electronic notes in theoretical computer science

  7. Cuoq P, Pouzet M (2001) Modular causality in a synchronous stream language. In: European symposium on programming (ESOP’01), Genova, Italy, April 2001

  8. Halbwachs N, Caspi P, Raymond P, Pilaud D (1991) The synchronous dataflow programming language lustre. Proc IEEE 79(9):1305–1320

    Article  Google Scholar 

  9. Kahn G (1974) The semantics of a simple language for parallel programming. In: IFIP 74 Congress. North Holland, Amsterdam

  10. Mitchell JC (1996) Foundations for programming languages. MIT Press, Cambridge, MA

  11. Pottier F (1996) Simplifying subtyping constraints. In: Proceedings of the ACM SIGPLAN international conference on functional programming (ICFP’96), May 1996, pp 122–133

  12. Pottier F (2001) Simplifying subtyping constraints: a theory. Inf Comput 170(2):153–183

    Article  MathSciNet  Google Scholar 

  13. Pouzet M (2001) Lucid Synchrone, version 2. Tutorial and reference manual. Université Pierre et Marie Curie, LIP6, May 2001. Available at: www-spi.lip6.fr/lucid-synchrone

    Google Scholar 

  14. SCADE (2004) http://www.esterel-technologies.com/scade/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jean-Louis Colaço.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Colaço, JL., Pouzet, M. Type-based initialization analysis of a synchronous dataflow language. Int J Softw Tools Technol Transfer 6, 245–255 (2004). https://doi.org/10.1007/s10009-004-0160-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-004-0160-y

Keywords

Navigation