Frama-C EVA插件中“之后”专栏的含义和目的是什么

时间:2018-07-23 15:14:23

标签: frama-c value-analysis

EVA tutorial中,我找到了以下屏幕截图:EVA tutorial screen shot并作了解释:“引起此情况的确切值显示在列c5:-1中。C标准考虑了的左移负数表示未定义行为。因为-1是此调用栈中唯一可能的值,所以由警报引起的减少导致后状态为。”

所以,我想问:

Frama-C EVA插件中“之后”专栏的含义和目的是什么?

是否有更详细的文档来理解EVA中使用的“减少”和“事后状态”一词?

1 个答案:

答案 0 :(得分:4)

在GUI中选择语句() => String时,有两种相关的内存状态:s之前的状态(也称为前状态)和副作用之后的状态s中的所有内容都已完成(也称为后期状态)。这就是为什么在s选项卡中有两列您感兴趣的每个lval的原因。在程序验证中,前状​​态和后状态的概念非常标准,基本上可以追溯到Hoare Logic。 / p>

术语“减少”是指以下事实:发出警报后,EVA将尝试从其抽象状态中删除与肯定会导致不确定行为的具体状态相对应的元素。实际上,抽象状态应该是所有可能达到语句而未事先触发未定义行为的具体状态的过度逼近:如果在Values之前发生故障,那就没有意义了在推测评估s时会发生什么。在您引用的示例中,我们遇到了一种特殊情况,即所有可能的具体状态都将导致错误。因此,我们以s抽象状态结束,它代表一组空的具体状态,并且对该分支的分析结束了。