提升HOL4中机器码反编译的工具支持
1. 状态表示与异常处理
在某些场景下,状态的表示会结合异常状态,即 state′ = state[× exception −status] 。此时,结果的范围由一个值和一个状态组成,状态可能包含异常状态组件。当异常发生时,结果的值和状态部分会被视为无意义,异常通过 state′ 的异常状态组件来标记。
这种表示方式虽不够严谨,因为异常发生时会返回无用的值和状态,但它的优势在于可以使用标准的状态转换单子或普通的 let 表达式来表达操作语义,这使得生成的模型更易于处理。
下面是一个教学用的L3规范示例:
exception
UNPREDICTABLE {- declare a new exception type -}
declare { A : : bits (8), B : : bits (8) } {- global variables -}
bits (8)
example (c : : bits (8)) =
{
A <- B; {- assignment -}
when A < 4 do # UNPREDICTABLE ; {- raise an exception -}
return (A * c + 1)
}
该L3规范声明了一个新的模型异常 UNPREDICTABLE 、两个全局状态组件 A 和 B 以及一个一元
提升HOL4反编译工具性能
超级会员免费看
订阅专栏 解锁全文
4411

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



