1

I want know what's the meaning of a curve or arc in PDG. Which are data dependence and which are control dependence and so on.

enter image description here

Wooble
  • 87,717
  • 12
  • 108
  • 131
Zhang LongQI
  • 494
  • 1
  • 11
  • 25
  • Related to http://stackoverflow.com/questions/9926688/whats-the-meaning-of-the-circle-node-in-pdgs-which-is-generated-by-frama-c and http://stackoverflow.com/questions/9926688/whats-the-meaning-of-the-circle-node-in-pdgs-which-is-generated-by-frama-c – Pascal Cuoq Sep 10 '12 at 15:51

1 Answers1

2

The color of the edge represent the data dependencies : blue for yes, black otherwise. The shape of the arrow represent the control dependencies : circle for yes, normal arrow otherwise. The kind of the line represent the address dependencies : dotted for yes, plain otherwise.

Address dependencies are like data dependencies, but for the right part of an assignment. For instance, the statement :

*p = c ? a : b;

has a control dependency on c, data dependencies on a and b, and address dependencies on &p and p.

Well, this is not exactly like this in the real PDG since the statement is decomposed by Frama-C in :

if (c) { *p = a; } else { *p = b; }

But this is the idea.

Anne
  • 1,270
  • 6
  • 15