Implementations of synchronous programs
ocrep distributes automatically synchronous programs according to specifications given by the user. Concretely, starting from a centralized source synchronous program obtained either with the Lustre or the Esterel compiler, from a number of desired computing locations, and an indication of where each input and output of the source program must be computed, ocrep produces several programs, one for each location, each one computing only its assigned variables and outputs, and communicating harmoniously. Their combined behavior is equivalent to the behavior of the centralized source program and that there is no deadlock.
Currently our software ocrep is distributed in the form of executable on the web (http://pop-art.inrialpes.fr/people/girault/Ocrep/ ). It consists in 15000 lines of C++ code. In 2002, a contract for industrial transfer was drawn up with France Télécom R&D in order to integrate ocrep into their compiler Saxo-RT for Esterel programs.
We have been cooperating for several years with the Inria team Aoste ( Inria Sophia-Antipolis and Rocquencourt) on the subject of fault tolerance. In particular, we have implemented several new heuristics for fault tolerance and reliability within their software SynDEx (http://www-rocq.inria.fr/syndex ). This has taken place within the framework of the European project EAST-EEA in which we participated together with Aoste . In this context, we have developed several new scheduling heuristics that produce static multiprocessor schedules tolerant to a specified number of processor and communication link failures  . The basic principles upon which we rely to make the schedules fault tolerant is, on the one hand, the active replication of the operations  , and on the other hand, the active replication of communications for point-to-point communication links, or their passive replication coupled with data fragmentation for multi-point communication media ( i.e. , buses)  .