Causality analysis of synchronous programs with refined clocks

Synchronous languages are based on the synchronous abstraction of time, which divides the execution of programs into an infinite sequence of macro steps that consist of finitely many micro steps. A well-studied problem of this model of computation are cyclic dependencies of micro steps whose constructiveness has to be checked by a causality analysis during compilation. Recently, we showed that temporal refinement can be introduced to imperative synchronous languages by refined clocks. In this paper, we formally define the causality analysis for this extension. To this end, we translate the program into a transition system, which can then be used to verify the correct causal behavior with a model checker. We also list optimizations that can be used by compilers to conservatively approximate causality checking.

[1]  Paul Le Guernic,et al.  SIGNAL: A declarative language for synchronous programming of real-time systems , 1987, FPCA.

[2]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[3]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

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

[5]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

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

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

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

[9]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

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

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

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

[13]  Stephen A. Edwards,et al.  Making cyclic circuits acyclic , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[14]  G. Friedlander [Signal]. , 2020, Medecine sciences : M/S.

[15]  M. Shams Asynchronous Circuits , 2005 .

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

[17]  Tobias Schüle,et al.  A Verified Compiler for Synchronous Programs with Local Declarations , 2006, SLAP@ETAPS.

[18]  Klaus Schneider,et al.  Performing causality analysis by bounded model checking , 2008, 2008 8th International Conference on Application of Concurrency to System Design.

[19]  Klaus Schneider,et al.  Formal Reasoning About Causality Analysis , 2008, TPHOLs.

[20]  Klaus Schneider,et al.  The Synchronous Programming Language Quartz , 2009 .

[21]  Klaus Schneider,et al.  A Formal Semantics of Clock Refinement in Imperative Synchronous Languages , 2010, 2010 10th International Conference on Application of Concurrency to System Design.

[22]  Klaus Schneider,et al.  Schizophrenia and causality in the context of refined clocks , 2011, FDL 2011 Proceedings.

[23]  Klaus Schneider,et al.  Separate Translation of Synchronous Programs to Guarded Actions , 2011 .

[24]  Klaus Schneider,et al.  Clock refinement in imperative synchronous languages , 2013, EURASIP J. Embed. Syst..