如何解决控制流图CFG是抽象语法树AST的子集吗?
我知道可以从抽象语法树 (AST) 构建控制流图 (CFG)。
但是,我不清楚 CFG 是否是 AST 的子集?
举个例子,给定一个 CFG,我们可以回到 AST 吗?
解决方法
但是,我不清楚 CFG 是否是 AST 的子集?
不,AST 是一个完全语法结构。但是 CST 与语言的语义很好地集成在一起。它们也代表不同的东西。
举个例子,给定一个 CFG,我们可以回到 AST 吗?
这取决于语言,以及该语言中的构造如何映射到控制流。例如,这两个片段将构建完全不同的 AST;
print('a') if a else print('b')
if a:
print('a')
else:
print('b')
但是生成的 CFG 对这两者来说是相等的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。