最近,我一直想创建一个小型的(有教育意义的)函数式优化编译器。对于优化部分,我想使用SSA。事情是这样的(据我所知,大多数)函数式编程语言都有不可变的变量(默认情况下),所以每个变量只赋值一次,就像SSA一样。是否需要SSA?函数式程序(例如,在Haskell中)是否已经以SSA形式存在?
发布于 2020-10-15 15:54:05
是的,用纯函数式语言编写的程序(例如,Haskell)是SSA形式的。你可以在this research paper中找到更多的解释。
注意,并不是所有的函数式语言都是这样。例如,OCaml允许程序员改变变量和编写命令式代码块(这使得OCaml不是一种纯函数式语言),从而打破了SSA语言的形式。
https://stackoverflow.com/questions/64364208
复制相似问题