Refining schizophrenia via graph reachability in Esterel

Esterel is an imperative synchronous language for control-dominant reactive systems. The combination of imperative structures and the perfect synchrony hypothesis often result in schizophrenic statements. Previous studies explain the characteristics of schizophrenia as the instantaneous reentrance to block statements: local signal declarations and parallel statements. In practice, however, most instantly-reentered block statements do not cause any problems in Esterel compilation. In this paper, we refine schizophrenic problems in terms of signal emissions, and suggest an algorithm to detect harmful schizophrenia using reachability on control flow graphs (CFGs) in Esterel. Our algorithm performs well in analyzing practical programs. Moreover, it can be easily applied to existing compilers.

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

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

[3]  Olivier Tardieu,et al.  Loops in Esterel: From Operational Semantics to Formally Specified Compilers , 2004 .

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

[5]  Olivier Tardieu,et al.  A deterministic logical semantics for pure Esterel , 2007, TOPL.

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

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

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

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

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

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

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

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

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

[15]  Robert de Simone,et al.  Loops in esterel , 2005, TECS.

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

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

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

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

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

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

[22]  Mike Tien-Chien Lee,et al.  Eliminating false loops caused by sharing in control path , 1998, TODE.

[23]  François Pottier,et al.  A constraint-based approach to guarded algebraic data types , 2007, TOPL.