optimization - 功能程序是否已采用 SSA 形式?

标签 optimization functional-programming compiler-construction immutability ssa

最近,我一直想创建一个小型(教育)功能优化编译器。对于优化部分,我想使用SSA。问题是(据我所知,大多数)函数式编程语言都有不可变变量(默认情况下),因此每个变量只分配一次,就像在 SSA 中一样。需要SSA吗?函数式程序(例如 Haskell 中的程序)是否已采用 SSA 形式?

最佳答案

是的,用纯函数式语言(例如 Haskell)编写的程序是 SSA 形式。您可以在this research paper中找到更多解释.

请注意,并非所有函数式语言都是如此。例如,OCaml 允许程序员改变变量并编写命令式 block (这使得 OCaml 不是纯函数式语言),从而打破了 SSA 形式。

关于optimization - 功能程序是否已采用 SSA 形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64364208/

相关文章:

python - python 中的高效字符串比较,包括数值评估

c# - 优化象限选择

javascript - 如何在功能上将各个时间戳聚合到时间范围中

作为参数传递的 Swift `rethrows` 函数导致编译器错误

c - 未识别结构类型?

optimization - 强化学习与运筹学

haskell - 寻找 `if p x then x else empty` 构造的概括

java - 如何创建自定义 Eclipse 警告?

c++ - 函数体内的url如何被编译

python /赛通 : Overhead with classes stored in numpy arrays