A Verified Compiler for Synchronous Programs with Local Declarations

We describe the translation of Esterel-like programs with delayed actions to equivalent equation systems. Potential schizophrenia problems arising from local declarations are solved by (1) generating copies of the surface of the statement and (2) renaming the local variables in one of the copied surfaces generated a loop. The translation runs in quadratic time and has been formally verified with the HOL theorem prover.

[1]  K. Schneider,et al.  A new method for compiling schizophrenic synchronous programs , 2001, CASES '01.

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

[3]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[4]  Klaus Schneider,et al.  Improving Constructiveness in Code Generators , 2005 .

[5]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[6]  Carl-Johan H. Seger,et al.  Asynchronous Circuits , 1995, Monographs in Computer Science.

[7]  Ellen Sentovich,et al.  Quick conservative causality analysis , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

[8]  Tobias Schüle,et al.  Causality analysis of synchronous programs with delayed actions , 2004, CASES '04.

[9]  Sharad Malik Analysis of cyclic combinational circuits , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[10]  Klaus Schneider,et al.  Proving the Equivalence of Microstep and Macrostep Semantics , 2002, TPHOLs.

[11]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[12]  Klaus Schneider A Verified Hardware Synthesis of Esterel Programs , 2000, DIPES.

[13]  Frédéric Boussinot,et al.  SugarCubes Implementation of Causality , 1998 .

[14]  Luciano Lavagno,et al.  ECL: a specification environment for system-level design , 1999, DAC '99.

[15]  Nicolas Halbwachs,et al.  On the Symbolic Analysis of Combinational Loops in Circuits and Synchronous Programs , 1995 .

[16]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[17]  Robert de Simone,et al.  Curing schizophrenia by program rewriting in Esterel , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[18]  Tobias Schüle,et al.  Maximal causality analysis , 2005, Fifth International Conference on Application of Concurrency to System Design (ACSD'05).

[19]  Klaus Schneider,et al.  Embedding imperative synchronous languages in interactive theorem provers , 2001, Proceedings Second International Conference on Application of Concurrency to System Design.

[20]  Leszek Holenderski,et al.  Boolean automata for implementing pure Esterel , 1995 .

[21]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

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

[23]  Stephen A. Edwards,et al.  Compiling Concurrent Languages for Sequential Processors , 2001 .

[24]  Olivier Tardieu,et al.  Goto and Concurrency Introducing Safe Jumps in Esterel , 2006, SLAP@ETAPS.

[25]  Thomas R. Shiple,et al.  Constructive analysis of cyclic circuits , 1996, Proceedings ED&TC European Design and Test Conference.

[26]  David J. Goodman,et al.  Personal Communications , 1994, Mobile Communications.

[27]  A. Sangiovanni-Vincentelli,et al.  Formal analysis of synchronous circuits , 1996 .