我已经在程序切片上工作了一段时间。由于向后切片适用于控制流图(CFG),并且有很多工具可以生成CFG,因此我可以轻松地使用Java实现向后切片算法。
但是,在阅读一些文章时,我看到前向切片适用于系统依赖关系图(SDG),我发现WALA生成SDG,但也实现了正向切片。
WALA是一个非常大的项目,我有点迷失在它的代码和文档中。有没有关于如何使用 WALA 的前向切片用于 Java 的示例?或者至少我如何以点格式生成给定程序的 SDG,以便我也可以使用 Graphviz 对其进行可视化。
WALA 的用户指南可能对您有所帮助。在其示例中,您可以将computeBackwardSlice
方法更改为computeForwardSlice
方法以实现正向切片。
Wala 已经实现了 jars,你可以去下载以下四个 jar 来调用它们的方法。 com.ibm.wala.core
com.ibm.wala.cast
com.ibm.wala.shrike
com.ibm.wala.util