简体   繁体   English

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

[英]implement symbolic execution without model-checking

How can I implement symbolic execution for particular language without using model checking and Finite State Machine (FSM) for example not such as Java Path Finder ?我如何能实现symbolic execution针对particular language ,而不使用model checkingFinite State Machine (FSM)not这样Java Path Finder I need a detail about it.我需要有关它的详细信息。 for example by what language I can implement this symbolic execution and what other things I need to know?例如我可以通过什么语言来实现这个符号执行以及我需要知道的其他事情?

You need:你需要:

  • A parser for the language to be symbolically executed that can build ASTs要符号执行的语言的解析器,可以构建 AST
  • Name resolution (and associated symbol tables), so when your execution engine encounters an identifier it can determine the associated type and value名称解析(和关联的符号表),因此当您的执行引擎遇到标识符时,它可以确定关联的类型和值
  • Control flow analysis, so that the symbolic execution engine can follow flow of control through the program控制流分析,以便符号执行引擎可以通过程序跟踪控制流
  • A symbolic algebra that can compose and simplify symbolic terms.可以组合和简化符号项的符号代数。 This needs a parser (so you can enter such equations) and prettyprinter (so you can see what it computes)这需要一个解析器(这样你就可以输入这样的方程)和漂亮的打印机(这样你就可以看到它计算了什么)
  • A way to specify assumed values at the point of symbolic execution start在符号执行开始时指定假定值的方法

This is rather a lot of machinery, and it is hard to find it all in one place.这是相当多的机器,很难在一个地方找到所有的东西。 It is harder to build it all just for one tool, which is part of the reason you don't find many tools like this.仅为一个工具构建所有内容更困难,这也是您找不到很多这样的工具的部分原因。

Our DMS Software Reengineering Toolkit has all the requisites.我们的DMS 软件再造工具包具备所有必要条件。 You may find an example of a symbolic language implemented with DMS interesting.您可能会发现使用 DMS 实现的符号语言示例很有趣。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM