我是Haskell程序员(我通常实现algorithms in 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代码来优化它。如果你能给出一些更好的例子并且原谅我,如果我听起来很愚蠢的话会很棒。
答案 0 :(得分:5)
一个好的起点是拉动git repo,它与Hackage上的内容相比有很多额外的文件。查看/ testing子目录,您可以看到一些简单的代码,用于定义基本的命令式语言并对其进行一些优化。