Compilation modulaire d'un langage synchrone Spécification, simulation, implémentation et vérification d'applications synchrones

In this paper, we study the modular compilation of imperative synchronous programs. We rely on a formal framework well suited to perform compilation and formal validation of systems. In practice, we design and implement a special purpose language (LE) and its execution equational semantics that allows the modular compilation of programs into software and hardware targets (C code, Vhdl code, FPGA synthesis, Verification tools). We show the correctness of this semantics, and we introduce a new algorithm to check program causality with respect to our modular approach. Relying in this formal approach, we defined a toolkit dedicated to the compilation and the verification of reactive applications. MOTS-CLES : langages synchrones, methodes formelles, compilation separee, verification

[1]  Stephen A. Edwards,et al.  The semantics and execution of a synchronous block-diagram language , 2003, Sci. Comput. Program..

[2]  Edward F. Moore,et al.  Gedanken-Experiments on Sequential Machines , 1956 .

[3]  Stephen A. Edwards Compiling Esterel into sequential code , 1999, CODES '99.

[4]  Paul Le Guernic,et al.  An ML-Like Module System for the Synchronous Language SIGNAL , 1997, Euro-Par.

[5]  Patrick Cousot,et al.  On Abstraction in Software Verification , 2002, CAV.

[6]  Albert Benveniste,et al.  programmi language and its , 2001 .

[7]  Stavros Tripakis,et al.  Modularity vs. Reusability: Code Generation from Synchronous Block Diagrams , 2008, 2008 Design, Automation and Test in Europe.

[8]  Valérie Bertin,et al.  Efficient compilation of ESTEREL for real-time embedded systems , 2000, CASES '00.

[9]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

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

[11]  Rob Gerth,et al.  Semantics of Reactive Systems in Abstract Time , 1991, REX Workshop.

[12]  Florence Maraninchi,et al.  Operational and Compositional Semantics of Synchronous Automaton Compositions , 1992, CONCUR.

[13]  Annie Ressouche,et al.  The Clem Toolkit , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[14]  Marc Pouzet,et al.  Clock-directed modular code generation for synchronous data-flow languages , 2008, LCTES '08.

[15]  Edmund M. Clarke,et al.  Verification Tools for Finite-State Concurrent Systems , 1993, REX School/Symposium.

[16]  George H. Mealy,et al.  A method for synthesizing sequential circuits , 1955 .

[17]  Nicolas Halbwachs,et al.  Synchronous Observers and the Verification of Reactive Systems , 1993, AMAST.

[18]  Annie Ressouche,et al.  Modular Compilation of a Synchronous Language , 2008, ArXiv.

[19]  Stephen A. Edwards,et al.  Separate Compilation for Synchronous Modules , 2005, ICESS.

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