“…A first solution was proposed in Alain Girault's thesis [CGP99], which consists of (1) replicating the whole sequential code for each site, (2) slicing the code on each site according to the variables to be computed locally, and (3) adding communication and synchronization code, assuming a very simple communication mechanism (fixed size FIFOs). Another solution, inspired by control theory and industrial uses, was proposed in Rym Salem's thesis [CMSW99]: this proposal does not pretend to implement exactly the synchronous semantics of the centralized program, but takes advantage of the remaining non-determinism at the interface between synchronous and asynchronous worlds (mainly asynchronous input sampling). More recently, the problem of really multicycle programs was addressed: through the mechanism of clocks, LUSTRE allows variables to evolve at different rates; however, even if a variable is "slow", its computation must take place in the same "short" cycle than other variables.…”