9

管理范式是代码的中间表示,适合编译器使用,在逻辑上等同于单一静态赋值,但有一些优点。例如,检查一个程序是否是有效的 SSA 形式是一个关于通过图的可能路径集的存在性问题。然而,检查一个程序是否是一个有效的 ANF 表达式只是本地语法的问题。

从严格的函数式代码生成 ANF 非常容易,但我有兴趣从包含变量更新、循环等的命令式代码生成它。

有将 SSA 转换为 ANF 的简单算法。但是,如果您想快速生成 SSA,那么首先生成 SSA 就变得非常重要。看起来很直观,如果您最终想要的是更直接、更透明的格式,那么直接生成它而不是通过更不透明的格式应该更有效。

是否有已发布的算法可以直接从命令式代码生成 ANF?

4

0 回答 0