【发布时间】:2021-09-06 17:19:45
【问题描述】:
我知道控制流图 (CFG) 可以从抽象语法树 (AST) 构建。
但是,我不清楚 CFG 是否是 AST 的子集?
例如,给定一个 CFG,我们可以回到 AST 吗?
【问题讨论】:
-
它不是一个子集,它是一个新结构。但显然它们是相关的。而且你总是可以设计一个可逆的变压器,所以“我们能回去吗”是微不足道的。 (Q.v. 函数式编程。,)
-
您如何定义 CSG? Wikipedia's page on CFGs 有一张图片,其中包含一些很明显不能用于恢复 AST 的示例,因为除了每个基本块的节点和每个可能的转换的边之外,该图不包含任何信息。跨度>
标签: abstract-syntax-tree control-flow-graph