动态区间分析:抽象解释视角下的浮点计算
1. 基础概念与定义
在程序分析中,程序状态和执行轨迹的表示是关键。对于程序组件 (S),我们有其具体的轨迹语义 (\mathcal{S}^ _{\mathbb{V}}[S]),这里 (\mathbb{V}) 可以是实数集 (\mathbb{R})、浮点数集 (\mathbb{F}) 或区间集 (\mathbb{I})。例如,对于 while 循环语句,其语义定义如下:
(\mathcal{F}^ {\mathbb{V}}[\text{while } \ell(B) S_b] X \triangleq { \langle \ell, \rho \rangle \mid \rho \in \text{Ev} {\mathbb{V}} })
(\cup { \pi_2 \langle \ell’, \rho \rangle \langle \text{aft}[S], \rho \rangle \mid \pi_2 \langle \ell’, \rho \rangle \in X \land \mathcal{B}[B] \rho = \text{ff} \land \ell’ = \ell })
(\cup { \pi_2 \langle \ell’, \rho \rangle \langle \text{at}[S_b], \rho \rangle \pi_3 \mid \pi_2 \langle \ell’, \rho \rangle \in X \land \mathcal{B}[B] \rho = \text{tt} \land \langle \text{at}[S_
超级会员免费看
订阅专栏 解锁全文
1011

被折叠的 条评论
为什么被折叠?



