Separate Compilation of Polychronous Specifications

As code generation for synchronous programs requires strong safety properties to be satisfied, compositionality becomes a difficult goal to achieve. Most synchronous languages, such as Esterel, Lustre or Signal require a given module or compilation unit to be insensitive to latency that communication with its environment may incur. In Lustre or Signal, for instance, a compilation unit must satisfy the so-called property of endochrony. To preserve endochrony in an asynchronous environment, an ad-hoc protocol is synthesized to interface the module. However, endochrony is not preserved by composition. Consequently, the protocol has to be rebuilt every time a new module is added in the environment. We propose a methodology and code generation scheme which simplifies this concern. It consists of weakening the global objective of globally preserving endochrony. Instead, we aim at the preservation of a more liberal and compositional objective, weak endochrony [D. Potop-Butucaru and B. Caillaud and A. Benveniste. Concurrency in Synchronous Systems. In Formal Methods in System Design, v. 28(2). Springer, March 2006], which is compositional and much closer from the expected requirement of insensitivity to communication latency. As a result, our code generation scheme supports true separate compilation: a locally compiled synchronous module does not require its synthesized interface with the environment to be rebuilt once composed with another module.

[1]  Nancy A. Lynch,et al.  A Proof of the Kahn Principle for Input/Output Automata , 1989, Inf. Comput..

[2]  Albert Benveniste,et al.  A Protocol for Loosely Time-Triggered Architectures , 2002, EMSOFT.

[3]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[4]  Benoît Caillaud,et al.  Concurrency in synchronous systems , 2004, Proceedings. Fourth International Conference on Application of Concurrency to System Design, 2004. ACSD 2004..

[5]  P. Caspi,et al.  Distributing reactive systems , 1994 .

[6]  Jean-Pierre Talpin,et al.  From multi-clocked synchronous processes to latency-insensitive modules , 2005, EMSOFT.

[7]  Albert Benveniste,et al.  Compositionality in Dataflow Synchronous Languages: Specification and Distributed Code Generation , 2000, Inf. Comput..

[8]  Stephen A. Edwards,et al.  The Synchronous Languages Twelve Years Later , 1997 .

[9]  Paul Caspi,et al.  About the Design of Distributed Control Systems: The Quasi-Synchronous Approach , 2001, SAFECOMP.

[10]  P. Aubry Mises en oeuvre distribuees de programmes synchrones , 1997 .

[11]  Olivier Maffeis Ordonnancement de graphes de flots synchrones : application a la mise en oeuvre de signal , 1993 .

[12]  Benoît Caillaud,et al.  Compositional synthesis of latency-insensitive systems from multi-clocked synchronous specifications , 2005 .

[13]  Alain Girault,et al.  Clock-Driven Automatic Distribution of Lustre Programs , 2003, EMSOFT.

[14]  Loïc Besnard Compilation de SIGNAL : horloges, dépendances, environnement , 1992 .

[15]  Jean-Christophe Le Lann,et al.  POLYCHRONY for System Design , 2003, J. Circuits Syst. Comput..

[16]  Klaus Schneider,et al.  Efficient code generation from synchronous programs , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[17]  Alberto L. Sangiovanni-Vincentelli,et al.  Theory of latency-insensitive design , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..