EN FR
EN FR




Application Domains
Bibliography




Application Domains
Bibliography


Section: New Results

Formal Verification of Transformations on Data Dependency in Synchronous Compilers

Participants : Van-Chan Ngo, Jean-Pierre Talpin, Paul Le Guernic.

We propose an approach to prove the data dependency semantic preservation of transformations in a synchronous compiler (such as that of Signal). In the Signal language, the scheduling or data dependency is expressed implicitly through polychronous equations. We use Synchronous Data-flow Dependence Graphs (SDD Graphs) [46] , [50] to formalize the data dependency semantics of polychronous equations. A tuple <G,C,fE> is a SDD graph if and only if:

  • G=<N,E,I,O> is a dependence graph <N,E> with I/O nodes: the inputs I and the output O such that I, O are subsets of N and I and O are disjoint.

  • C is a set of constraints, called clocks.

  • fE:EC is a mapping labeling each edge with a clock; it specifies the existence condition of the edges.

For instance, for the counter example:

zv:=v$1|v:=(1whenrst)defaultzv+1

we get a SDD graph with:

  • N={1,v,zv+1}

  • E={(1,v),(zv+1,v)}

  • C={rst^,v^¬rst^}

  • fE((1,v))=rst^,fE((zv+1,v))=v^¬rst^

Let SDD1=<G1,C1,fE1> and SDD2=<G2,C2,fE2> to be two SDD graphs which represent the data dependency semantics of source and transformed programs, we say that SDD2 is a correct transformation of SDD1 on data dependency, or SDD2 refines SDD1 w.r.t the data dependency semantics, if it satisfies that for any pair of nodes x,yG1G2 with (x,y)E1:

  • fE1(x,y))((x,y)E2fE2(x,y)) (reinforcement)

  • (fE2(x,y)fE2(y,x)false) (deadlock consistency)