Over-Approximated Control Flow Graph Construction on Pure Esterel

Esterel is an imperative synchronous language for control-dominant reactive systems. Regardless of imperative features of Esterel, combination of parallel execution and preemption makes it difficult to build control flow graphs (CFGs) of Esterel programs. Simple and convenient CFGs can help to analyze Esterel programs. However, previous researches are not suitable for flow analyses of imperative languages. In this work, we present a method to construct over-approximated CFGs for Pure Esterel. Generated CFGs expose invisible interferences among threads and show program structures explicitly so that they are useful for program analyses based on graph theory or control-/data- flows.

[1]  Gérard Berry,et al.  Preemption in Concurrent Systems , 1993, FSTTCS.

[2]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[3]  Stephen A. Edwards,et al.  Approximate Reachability for Dead Code Elimination in Esterel , 2005, ATVA.

[4]  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.

[5]  S. Ramesh,et al.  Slicing tools for synchronous reactive programs , 2004, ISSTA '04.

[6]  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..

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

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

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

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

[11]  Janusz Zalewski Synchronous programming of reactive systems: by Nicolas HALBWACHS; Kluwer International Series in Engineering and Computer Science: Real-Time Systems; Kluwer Academic Publishers; Dordrecht, The Netherlands; 1993; xiv + 174 pp.; $79.95; ISBN: 0-7923-9311-2 , 1995 .

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

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

[14]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

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

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

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

[18]  Stephen A. Edwards,et al.  Code Generation in the Columbia Esterel Compiler , 2007, EURASIP J. Embed. Syst..

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

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

[21]  Taisook Han,et al.  Refining schizophrenia via graph reachability in Esterel , 2009, 2009 7th IEEE/ACM International Conference on Formal Methods and Models for Co-Design.