在没有模型检查的情况下实现符号执行

时间:2016-09-14 12:34:48

标签: testing verification model-checking

如何symbolic execution particular language实施model checking而不使用Finite State Machine (FSM)not,例如Java Path Finder,例如document.getElementById(id).innerHTML = ''; ?我需要一个关于它的细节。例如,通过什么语言我可以实现这种符号执行以及我需要知道的其他事情?

1 个答案:

答案 0 :(得分:3)

你需要:

  • 可以构建ASTs的符号执行语言的解析器
  • 名称解析(和关联的符号表),因此当您的执行引擎遇到标识符时,它可以确定关联的类型和值
  • 控制流分析,以便符号执行引擎可以通过程序跟踪控制流程
  • 可以组成和简化符号术语的符号代数。 这需要一个解析器(所以你可以输入这样的公式)和prettyprinter(所以你可以看到它计算的是什么)
  • 一种在符号执行开始时指定假定值的方法

这是相当多的机器,很难在一个地方找到它。仅仅为一个工具构建它是更难的,这是你找不到这样的工具的部分原因。

我们的DMS Software Reengineering Toolkit具备所有必需品。您可能会发现an example of a symbolic language implemented with DMS很有趣。