## Clock Analysis of Synchronous Dataflow Programs (1995)

Venue: | In Proc. of ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation |

Citations: | 8 - 2 self |

### BibTeX

@INPROCEEDINGS{Jensen95clockanalysis,

author = {Thomas P. Jensen},

title = {Clock Analysis of Synchronous Dataflow Programs},

booktitle = {In Proc. of ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation},

year = {1995},

pages = {156--167},

publisher = {ACM Press}

}

### OpenURL

### Abstract

Synchronous dataflow languages such as Lustre and Signal have been proposed as a tool for programming reactive systems. These languages rely on a clock analysis to ensure that synchronous operations receive their arguments at the same time. We present a denotational model of a Lustre-like dataflow language and show how a range of clock analyses for this language can be designed and proved correct. To the best of our knowledge this is the first formal correctness proof for such an analysis. We then give a type system formulation of this analysis using clocks as types and show how adding polymorphic clocks enables us to treat programs where clocks vary according to their context. The relationship to the clock analysis by constraint solving used in the language Signal is discussed. 1 Introduction One of the earliest models of concurrent computation is Kahn's networks of processes [Kah74, KM77]. Such a network consists of a set of deterministic processes, or agents, communicating in an ...

### Citations

1958 |
Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...mantics (Section 3). This defines rigorously the notion of timed dataflow presented above. The semantics assigns a dataflow and a clock to every expression in an L program. An abstract interpretation =-=[CC77]-=- is used to extract an approximation to the clocks of the flows of a program (Section 6) and we prove that the information calculated by the analysis is always a safe approximation of the semantics of... |

958 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...nt system In order to accommodate clocks that can vary according to the contexts we shall make use of "polymorphic clock variables" akin to the polymorphic types known from other languages s=-=uch as ML [Mil78]-=-. An expression with a polymorphic clock can be synchronised with any other expression of arbitrary clock including another polymorphic clock. The synchronisation results in the constraint that these ... |

660 | Systematic design of program analysis frameworks - Cousot, Cousot - 1979 |

421 | Synchronous programming of reactive systems
- Halbwachs
- 1993
(Show Context)
Citation Context ...gents are instantaneous, compared to the time between the arrivals of two sets of input. These assumptions of synchrony implies that dataflow semantics and reactive semantics coincide. See [BB91] and =-=[Hal93]-=- for general introductions to synchronous programming. In order to verify that the flows of arguments to synchronous operations have the same clock, Lustre uses a clock analysis to calculate the clock... |

258 | LUSTRE: A declarative language for programming synchronous systems
- Caspi, Pilaud, et al.
- 1987
(Show Context)
Citation Context ...estrictions can we impose on a network and its input flows so that the dataflow semantics and the reactive semantics coincide? One solution is presented in the Lustre synchronous programming language =-=[CPHP87]-=-. A Lustre program describes a network where the assumptions are that the n-th input tokens arrive at the same moment in time at all agents and that the computations and communications taking place at... |

177 | Coroutines and Networks of Parallel Processes - Kahn, MacQueen |

72 | Denotational abstract interpretation of logic programs - Marriott, Søndergaard, et al. - 1994 |

56 | Prop revisited: Propositional formulas as abstract domain for groundness analysis - Cortesi, File, et al. - 1991 |

47 |
SIGNAL, a declarative language for synchronous programming of real-time systems
- Gauthier, Guernic, et al.
- 1987
(Show Context)
Citation Context ...t of constraints has been obtained we are left with the problem of solving it or at least finding out whether it admits a solution. We shall not enter into the details of how this is done (see [LB86],=-=[GLB87]-=- or [BLL92]) but just mention that the Signal system employs an ingenious method for solving sets of constraints based on solving a set of equations over the finite field F3 = Z=Z3 . The three element... |

43 |
ch. The Semantics of a Simple Language for Parallel Processing
- Kahn
- 1974
(Show Context)
Citation Context ... Denotational semantics The denotational semantics of L is based on the semantics for Lustre defined by Plaice [Pla88] which in turn is an extension of Kahn's original semantics for dataflow networks =-=[Kah74]-=-. The difference between our semantics and that of Plaice is in the definition of the sampling operators and the presentation of the underlying domains. Bergerand's semantics [Ber86] is only defined f... |

36 | Polymorphic binding-time analysis - Henglein, Mossin |

32 | Complexity of flow analysis, inductive assertion synthesis and a language due to dijkstra - Jones, Muchnick - 1980 |

30 | Programming real-time applications with - Guernic, Gautier, et al. - 1991 |

14 |
A denotational theory of synchronous reactive systems
- Benveniste, Guernic, et al.
- 1992
(Show Context)
Citation Context ...f a synchronous dataflow language and shown how this semantics can be used to define and prove the correctness of clock analyses for this language. Our semantic framework is less general than that of =-=[BLSS92]-=- but its simplicity has made a correctness proof of the analysis feasible. To the best of our knowledge this is the first correctness proof for a Lustre-like clock analysis and thus fills a gap left o... |

10 |
Sémantique et compilation de Lustre, un langage déclaratif synchrone. Thesis, Institut National Polytechnique de Grenoble
- Plaice
- 1988
(Show Context)
Citation Context ...pulating the clocks of flows which makes the clock calculus undecidable and an approximate clock analysis is therefore called for. Two such analyses have been proposed by Bergerand [Ber86] and Plaice =-=[Pla88]-=-. The present paper presents a framework for designing such analyses and for proving them correct. We stress that the goal of clock analysis as it is employed in current languages is to check the vali... |

8 |
LUSTRE: Un langage déclaratif pour le temps réel
- Bergerand
- 1986
(Show Context)
Citation Context ...operations for manipulating the clocks of flows which makes the clock calculus undecidable and an approximate clock analysis is therefore called for. Two such analyses have been proposed by Bergerand =-=[Ber86]-=- and Plaice [Pla88]. The present paper presents a framework for designing such analyses and for proving them correct. We stress that the goal of clock analysis as it is employed in current languages i... |

8 |
Guernic. Signal as a model for real-time and hybrid systems
- Benveniste, Borgne, et al.
- 1992
(Show Context)
Citation Context ...aints has been obtained we are left with the problem of solving it or at least finding out whether it admits a solution. We shall not enter into the details of how this is done (see [LB86],[GLB87] or =-=[BLL92]-=-) but just mention that the Signal system employs an ingenious method for solving sets of constraints based on solving a set of equations over the finite field F3 = Z=Z3 . The three elements in F3 enc... |

6 |
Real-time, synchronous, data-flow programming: the language SIGNAL and its mathematical semantics
- Guernic, Benveniste
- 1986
(Show Context)
Citation Context ... operators like + and by a special program directive synchro(x;y) which specifies that the flows of x and y be synchronised. Clocks in Signal can therefore be viewed as equivalence relations on flows =-=[LB86]-=- such that two flows are related if they must be on the same clock. Sampling in Signal is somewhat different from Lustre sampling in that e and x are not required to have equal clocks; rather e when x... |

5 |
Another look at real-time programming, special section of
- Benveniste, Berry, et al.
- 1991
(Show Context)
Citation Context ...tween the agents are instantaneous, compared to the time between the arrivals of two sets of input. These assumptions of synchrony implies that dataflow semantics and reactive semantics coincide. See =-=[BB91]-=- and [Hal93] for general introductions to synchronous programming. In order to verify that the flows of arguments to synchronous operations have the same clock, Lustre uses a clock analysis to calcula... |

3 | Local type reconstruction by means of symbolic fixed point iteration - Amtoft - 1994 |

1 | Efficient type inference for higher-- order binding--time analysis - Henglein - 1991 |