Modular Causality in a Synchronous Stream Language

  • Pascal Cuoq
  • Marc Pouzet
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2028)


This article presents a causality analysis for a synchronous stream language with higher-order functions. This analysis takes the shape of a type system with rows. Rows were originally designed to add extensible records to the ML type system (Didier Rémy, Mitchell Wand). We also restate briefly the coiterative semantics for synchronous streams (Paul Caspi, Marc Pouzet), and prove the correctness of our analysis with respect to this semantics.


Normal Form Type System Target Language Causality Analysis Type Scheme 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    A. Benveniste, P. LeGuernic, and C. Jacquemot. Synchronous programming with events and relations: the SIGNAL language and its semantics. Science of Computer Programming, 16:103–149, 1991.zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    P. Caspi and M. Pouzet. The Lucid Synchrone distribution.
  3. 3.
    P. Caspi and M. Pouzet. A co-iterative characterizations of synchronous stream functions. Technical Report 07, VERIMAG, October 1997. Workshop on Coalgebraic Methods in Computer Science (CMCS’98), Electronic Lecture Notes in Theoretical Computer Science, Portugal, Lisbon (28-29 March 1998).Google Scholar
  4. 4.
    B. Cook, J. Launchbury, and J. Matthews. Specifying superscalar microprocessors in Hawk. In 1998Workshop on Formal Techniques for Hardware, 1998.Google Scholar
  5. 5.
    P. Cuoq and M. Pouzet. Modular causality in a stream language.
  6. 6.
    E. Giménez. Structural recursive definitions in type theory. In ICALP’98, LNCS series no. 1443, July 1998.Google Scholar
  7. 7.
    J.-Y. Girard, Y. Lafont, and P. Taylor. Proofs and Types, volume 7 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1989.Google Scholar
  8. 8.
    N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language lustre. Proceedings of the IEEE, 79(9):1305–1320, September 1991.CrossRefGoogle Scholar
  9. 9.
    P. Hudak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell, a non strict purely functional language (version 1.2). ACM SIGPLAN Notices, 27(5), 1990.Google Scholar
  10. 10.
    J. Hughes, L. Pareto, and A. Sabry. Proving the Correctness of Reactive Systems Using Sized Types. In ACM Principles of Programming Languages, St Petersburg, Florida, January 1996.Google Scholar
  11. 11.
    S. Malik. Analysis of cyclic combinational circuits. IEEE Transactions on Computer Aided Design, 13(7):950–956, July 1994.CrossRefGoogle Scholar
  12. 12.
    F. Pessaux and X. Leroy. Type-based analysis of uncaught exceptions. ACM Trans. Prog. Lang. Syst., 22(2):340–377, 2000.CrossRefGoogle Scholar
  13. 13.
    D. Rémy. Extending ML type system with a sorted equational theory. Research Report 1766, Institut National de Recherche en Informatique et Automatique, Rocquencourt, BP 105, 78 153 Le Chesnay Cedex, France, 1992. Scholar
  14. 14.
    D. Rémy. Type inference for records in a natural extension of ML. In C. A. Gunter and J. C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.
  15. 15.
    J. Saraiva, D. Swiersrta, M. Kuiper, and M. Pennings. Strictification of lazy functions. Technical report, 1996.
  16. 16.
    T. R. Shiple, G. Berry, and H. Touati. Constructive analysis of cyclic circuits. In Proc. International Design and Testing Conference, Paris, 1996.Google Scholar
  17. 17.
    S. Singh and M. Sheeran. Designing FPGA circuits in Lava. Technical report.
  18. 18.
    J.-P. Talpin and D. Nowak. A synchronous semantics of higher-order processes for modeling reconfigurable reactive systems. Conference on Foundations of Software Technology and Theoretical Computer Science, 1998.Google Scholar
  19. 19.
    P. Wadler. Deforestation: transforming programs to eliminate trees. Theoretical Computer Science, (Special issue of selected papers from 2’nd European Symposium on Programming), 73:231–248, 1990.Google Scholar
  20. 20.
    M. Wand. Type inference for record concatenation and multiple inheritance. Information and Computation, 93:1–15, 1991.zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Pascal Cuoq
    • 1
  • Marc Pouzet
    • 1
  1. 1.INRIALIP6Germany

Personalised recommendations