1

我想知道 PDG 中曲线或圆弧的含义。哪些是数据依赖,哪些是控制依赖等等。

在此处输入图像描述

4

1 回答 1

2

边缘的颜色代表数据依赖关系:蓝色代表是,黑色代表。箭头的形状代表控制依赖关系:圆圈代表是,普通箭头否则。线的种类代表地址依赖关系:点表示是,否则是普通的。

地址依赖关系类似于数据依赖关系,但针对分配的正确部分。例如,声明:

*p = c ? a : b;

具有对 的控制依赖c、对 和 的数据依赖以及对和ab地址依赖。&pp

好吧,这在真正的 PDG 中并不完全像这样,因为该语句由 Frama-C 在中分解:

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

但这就是想法。

于 2012-09-10T06:39:49.487 回答