高阶函数的健全且完备的混合测试
1. 变量与具体化扩展
在程序测试中,有两个重要的元函数。 locals 元函数会接收一个上下文 C° ,并提取出在当前位置可见的所有局部变量集合。而 localsp 元函数与 locals 类似,但它仅提取那些绑定到函数的变量。
为了增强测试的能力,引入了具体化扩展。以下是相关的语法规则:
e_ ::= .... | concretize(e_)
e ::= .... | concretize(e)
n = E, t
, , concretize(‹t›)
, , ‹n›
[R-CONCRETIZE]
这里将具体值标识为 ‹n› ,并认为这样的项可以与外部函数进行交互。没有引入特定的具体求值规则,而是通过 [R-Concretize] 规则,借助 E 元函数将 concretize(‹t›) 形式的表达式简化为其具体的对应形式。 E 元函数会使用当前输入 来计算混合值公式 t 的值。
下面通过一个排序函数的例子来说明具体化的应用:
date<
main-bad
= d1. d2. (or ((date-
超级会员免费看
订阅专栏 解锁全文
2716

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



