问题标签 [anf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compiler-construction - 计算行政范式
管理范式是代码的中间表示,适合编译器使用,在逻辑上等同于单一静态赋值,但有一些优点。例如,检查一个程序是否是有效的 SSA 形式是一个关于通过图的可能路径集的存在性问题。然而,检查一个程序是否是一个有效的 ANF 表达式只是本地语法的问题。
从严格的函数式代码生成 ANF 非常容易,但我有兴趣从包含变量更新、循环等的命令式代码生成它。
有将 SSA 转换为 ANF 的简单算法。但是,如果您想快速生成 SSA,那么首先生成 SSA 就变得非常重要。看起来很直观,如果您最终想要的是更直接、更透明的格式,那么直接生成它而不是通过更不透明的格式应该更有效。
是否有已发布的算法可以直接从命令式代码生成 ANF?