Symbolic Execution
符号执行是一种经典的路径敏感分析方法,它枚举并分析程序的每一条路径。
- 用于发现错误;
- 用于软件测试;
程序路径转化成路径约束
右下角这个check是判断这个assert何时fail的
还有这种路径可能
需要分析那么多路径,太麻烦了,且约束求解很难搞
优化
- 路径合并
- 循环的导入
但是实际上不是每个都适用,比如在while里再放一层ifelse就失效了
- 并发执行
- 推测执行
Satisfiability
Propositional Logic(PL)
- 在PL中,公式F的解是指映射I,该映射将每个变量映射为⊤或⊥
- 若存在映射I:I⊨F,则PL中的公式F是可满足的
- 若对于所有映射I:I⊨F,公式F都是有效的。