我是 Haskell 程序员(我通常在 Haskell 中实现算法)并试图理解HOOPL库,但我无法对其进行解码。我没有编译器背景(目前正在学习 Coursera 和编译器:原理、技术和工具),如果您能建议我一种系统的方法来继续理解 HOOPL 库(先决条件是什么),那就太好了。假设我有一个小的 Haskell 代码,我想在其上使用 HOOPL 应用数据流优化
add :: Int -> Int -> Int
add x y = z where
x' = 1
y' = 1 -- this will be dead code elimination
z = x' + 1
如何编写 HOOPL 代码来优化它。如果你能举一个更好的例子,如果我听起来很愚蠢,请原谅我。