Translation Validation for Synchronous Data-Flow Specification in the SIGNAL Compiler

We present a method to construct a validator based on translation validation approach to prove the value-equivalence of variables in the compilation of the Signal compiler. The computation of output signals in a Signal program and their counterparts in the generated C code is represented by a Synchronous Data-flow Value-Graph (Sdvg). Our validator proves that every output signal and its counterpart variable have the same values by transforming the Sdvg graph.

[1]  Sandrine Blazy Which C semantics to embed in the front-end of a formally verified compiler? , 2008 .

[2]  Pascal Aubry,et al.  Synchronous distribution of SIGNAL programs , 1996, Proceedings of HICSS-29: 29th Hawaii International Conference on System Sciences.

[3]  Paul Le Guernic,et al.  Compilation of Polychronous Data Flow Equations , 2010, Synthesis of Embedded Software.

[4]  Michael D. Ernst,et al.  Value dependence graphs: representation without taxation , 1994, POPL '94.

[5]  Amir Pnueli,et al.  Translation Validation: From SIGNAL to C , 1999, Correct System Design.

[6]  P. Le Guernic,et al.  Hybrid dynamical systems theory and the Signal language , 1990 .

[7]  Paul Le Guernic,et al.  Formal verification of synchronous data-flow program transformations toward certified compilers , 2013, Frontiers of Computer Science.

[8]  Paul Le Guernic,et al.  Code generation in the SACRES project , 1999 .

[9]  André Platzer,et al.  Correct System Design , 2015, Lecture Notes in Computer Science.

[10]  Arthur B. Maccabe,et al.  The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages , 1990, PLDI '90.

[11]  Michael Stepp,et al.  Equality saturation: a new approach to optimization , 2009, POPL '09.

[12]  Paul Le Guernic,et al.  Distributed Implementation of SIGNAL: Scheduling & Graph Clustering , 1994, FTRTFT.

[13]  J. Gregory Morrisett,et al.  Evaluating value-graph translation validation for LLVM , 2011, PLDI '11.

[14]  Paul Le Guernic,et al.  Formal Verification of Compiler Transformations on Polychronous Equations , 2012, IFM.

[15]  Van Chan Ngo,et al.  Formal Verification of a Synchronous Data- flow Compiler : from Signal to C. (Vérification Formelle d'un Compilateur Synchrone: de Signal vers C) , 2014 .

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

[17]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.