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.
Asked
Active
Viewed 346 times
1
-
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 Answers
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