Synchronous Kahn networks
- 15 June 1996
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 31 (6) , 226-238
- https://doi.org/10.1145/232627.232651
Abstract
Synchronous data-flow is a programming paradigm which has been successfully applied in reactive systems. In this context, it can be characterized as some class of static bounded memory data-flow networks. In particular, these networks are not recursively defined, and obey some kind of "synchronous" constraints (clock calculus). Based on Kahn's relationship between data-flow and stream functions, the synchronous constraints can be related to Wadler's listlessness, and can be seen as sufficient conditions ensuring listless evaluation. As a by-product, those networks enjoy efficient compiling techniques. In this paper, we show that it is possible to extend the class of static synchronous data-flow to higher order and dynamical networks, thus giving sense to a larger class of synchronous data-flow networks.This is done by extending both the synchronous operational semantics, the clock calculus and the compiling technique of static data-flow networks, to these more general networks.Keywords
This publication has 14 references indexed in Scilit:
- The Esterel synchronous programming language: design, semantics, implementationScience of Computer Programming, 1992
- Report on the programming language HaskellACM SIGPLAN Notices, 1992
- Clocks in dataflow languagesTheoretical Computer Science, 1992
- Synchronous programming with events and relations: the SIGNAL language and its semanticsScience of Computer Programming, 1991
- The synchronous data flow programming language LUSTREProceedings of the IEEE, 1991
- A report on the sisal language projectJournal of Parallel and Distributed Computing, 1990
- Deforestation: transforming programs to eliminate treesTheoretical Computer Science, 1990
- LUSTRE: a declarative language for real-time programmingPublished by Association for Computing Machinery (ACM) ,1987
- Principal type-schemes for functional programsPublished by Association for Computing Machinery (ACM) ,1982
- Lucid, a nonprocedural language with iterationCommunications of the ACM, 1977