2
我有一个域特定的语言,我想对该语言进行静态分析以获得更好的图。感谢有人能为此推荐行动计划。对域特定语言执行静态分析
域语言
的语言{
run_and_branch(ULSDCompHash)
then
{
run(DownComponent_Reset);
run(DownComponent_Reset2);
}
else
{
run(ULSD_EndOfTest);
}
run(ULSD_EndOfTest2);
}, closed,"EMCSETUP",""
详细信息,如果条件合格或不合格
- 运行并不关心是一样,如果 - 否则,如果通或失败种类
- ()中的值是名称节点的
期望输出(如果运行在图中以DFS)
ULSDCompHash -> DownComponent_Reset -> DownComponent_Reset2 -> ULSD_EndOfTest2
ULSDCompHash -> ULSD_EndOfTest -> ULSD_EndOfTest2
你想要创建什么样的图形?控制流程图?它是纯文本表示的工件吗?还是应该在两个代码路径中确实存在单独的节点? – delnan 2012-04-01 07:51:14
我觉得一个控制流图是合适的,这样我就可以执行DFS遍历来获得所有可能的路径。该图应该模仿纯文本表示。所以在我的例子中,会有一个节点ULSDCompHash,它有一个出口边缘到DownComponent_Reset,另一个出口边缘到ULSD_EndofTest – tabiul 2012-04-01 11:35:19
在做了更多的搜索之后,第一步是为源代码创建AST树,然后将其转换为控制流程图。我无法找到像一步一步解释如何将AST转换为CFG的好资源 – tabiul 2012-04-01 12:46:42