Passive code in synchronous programs

The synchronous model of computation requires that in every step, inputs are read and outputs are synchronously computed as the reaction of the program. In addition, all internal variables are updated in parallel even though not all of these values might be required for the current and the future reaction steps. To avoid unnecessary computations, we present a compile-time optimization procedure that computes for every variable a condition that determines whether its value is required for current or future computations. In this sense, our optimizations allow us to identify passive code that can be disabled to avoid unnecessary computations and therefore to reduce the reaction time of programs or their energy consumption.

[1]  Stephen A. Edwards,et al.  Compiling Esterel into Static Discrete-Event Code , 2006, SLAP@ETAPS.

[2]  Mads Dam CTL* and ECTL* as Fragments of the Modal mu-Calculus , 1994, Theor. Comput. Sci..

[3]  Bernhard Steffen,et al.  Data Flow Analysis as Model Checking , 1990, TACS.

[4]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.

[5]  J. W. de Bakker Least Fixed Points Revisited , 1976, Theor. Comput. Sci..

[6]  Jean-Pierre Banâtre,et al.  Parallel Program Design , 1991, Research Directions in High-Level Parallel Programming Languages.

[7]  Rance Cleaveland,et al.  Faster Model Checking for the Modal Mu-Calculus , 1992, CAV.

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

[9]  Stephen A. Edwards,et al.  An Esterel compiler for large control-dominated systems , 2002, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[10]  Barry K. Rosen,et al.  High-level data flow analysis , 1977, CACM.

[11]  Jeffrey D. Ullman,et al.  Analysis of a simple algorithm for global data flow problems , 1973, POPL.

[12]  Dexter Kozen,et al.  Results on the Propositional µ-Calculus , 1982, ICALP.

[13]  Masterarbeit,et al.  Dependency Analysis of Synchronous Programming Languages , 2010 .

[14]  Peter A. Beerel,et al.  Implicit enumeration of strongly connected components and anapplication to formal verification , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

[16]  David A. Schmidt Data flow analysis is model checking of abstract interpretations , 1998, POPL '98.

[17]  Klaus Schneider,et al.  Exact high level WCET analysis of synchronous programs by symbolic state space exploration , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[18]  Samarjit Chakraborty,et al.  Timing analysis of esterel programs on general-purpose multiprocessors , 2010, Design Automation Conference.

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

[20]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

[21]  Michel Poize,et al.  SAXO-RT: Interpreting Esterel Semantic on a Sequential Execution Structure , 2002, SLAP@ETAPS.

[22]  Fabio Somenzi,et al.  An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps , 2000, Formal Methods Syst. Des..

[23]  Norbert Wehn,et al.  XEEMU: An Improved XScale Power Simulator , 2007, PATMOS.

[24]  Michel Poize,et al.  TAXYS: A Tool for the Development and Verification of Real-Time Embedded Systems , 2001, CAV.

[25]  Bin Jiang,et al.  I/O-and CPU-Optimal Recognition of Strongly Connected Components , 1993, Inf. Process. Lett..

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

[27]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[28]  Klaus Schneider,et al.  Verification of Reactive Systems: Formal Methods and Algorithms , 2003 .

[29]  J. W. de Bakker,et al.  Least fixed points revisited , 1975, Lambda-Calculus and Computer Science Theory.

[30]  Samarjit Chakraborty,et al.  Context-sensitive timing analysis of Esterel programs , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[31]  Margo McCall,et al.  IEEE Computer Society , 2019, Encyclopedia of Software Engineering.

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

[33]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[34]  Robert de Simone,et al.  Optimizations for faster execution of Esterel programs , 2003, First ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2003. MEMOCODE '03. Proceedings..

[35]  Klaus Schneider,et al.  Improving Automata Generation for Linear Temporal Logic by Considering the Automaton Hierarchy , 2001, LPAR.

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

[37]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[38]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[39]  Stephen A. Edwards,et al.  Generating fast code from concurrent program dependence graphs , 2004, LCTES '04.

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

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

[42]  Jeffrey D. Ullman,et al.  Characterizations of Reducible Flow Graphs , 1974, JACM.

[43]  Robert de Simone,et al.  Instantaneous Termination in Pure Esterel , 2003, SAS.

[44]  Nicolas Halbwachs,et al.  Generating Efficient Code From Data-Flow Programs , 1991, PLILP.

[45]  Pascal Raymond,et al.  Compilation efficace d'un langage déclaratif synchrone : le générateur de code Lustre-V3. (Efficient Compilation of a Declarative Synchronous Language:the Lustre-V3 Code Generator) , 1991 .

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

[47]  Klaus Schneider,et al.  Data-Flow Analysis of Extended Finite State Machines , 2011, 2011 Eleventh International Conference on Application of Concurrency to System Design.

[48]  Andrew M. Gravell Review of Chandy, K.M. and Misra, J. Parallel Program design: A Foundation , 1989 .

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

[50]  Klaus Schneider,et al.  Static data-flow analysis of synchronous programs , 2009, 2009 7th IEEE/ACM International Conference on Formal Methods and Models for Co-Design.

[51]  Stephen A. Edwards,et al.  Compiling Esterel , 2007 .

[52]  A. Prasad Sistla,et al.  On model checking for the µ-calculus and its fragments , 2001, Theor. Comput. Sci..

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

[54]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[55]  Mads Dam,et al.  CTL* and ECTL* as Fragments of the Modal µ-Calculus , 1992, CAAP.

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

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

[58]  M. Sharir,et al.  A strong-connectivity algorithm and its applications in data flow analysis. , 2018 .

[59]  Klaus Schneider,et al.  Separate compilation for synchronous programs , 2009, SCOPES.

[60]  Tobias Schüle,et al.  Abstraction of assembler programs for symbolic worst case execution time analysis , 2004, Proceedings. 41st Design Automation Conference, 2004..

[61]  A. Prasad Sistla,et al.  On Model-Checking for Fragments of µ-Calculus , 1993, CAV.

[62]  Reino Kurki-Suonio,et al.  The DisCo Language and Temporal Logic of Actions , 1990 .