Haskell中尚未在GHC中实现的可能优化?

因此,由于纯代码和不纯代码之间的明确分离,纯功能语言有其自身的潜能。 我看到了几个在Haskell中实现起来比较简单的特性,比如嵌套数据并行或者流融合。

我的问题是,在可行性/简单性方面,Haskell或多或少具有独特性但尚未实现的其他改进/优化是什么? (我主要关心GHC,但也喜欢听到其他人)


我希望在GHC中看到的一种优化是超级编译。 然而,在GHC的不远的将来,这似乎不大可能,因为它是整个程序的优化,GHC非常专注于模块一次编译。

基本上,超编译在编译时尽可能多地执行程序。 它自然包含内联,森林砍伐,专业化以及其他任何技术。 早期的实验结果一直很有希望,但这是一个非常昂贵的过程。 很难看到它是一个实际的优化,但这个概念是可笑的真棒。


SPJ在他关于模块化超级编译的论文中提到的另一个问题是将超级编译与拆箱相结合。 超级编译程序拆箱的可能性显着降低。 与通过GHC strict-analyzer / unboxer传递的未优化程序相比,这会导致性能下降。 请参阅http://research.microsoft.com/en-us/um/people/simonpj/papers/supercompilation/


另一个强大但也“尚未准备好用于生产”的技术是工人包装转换。

链接地址: http://www.djcxy.com/p/7467.html

上一篇: Possible optimizations in Haskell that are not yet implemented in GHC?

下一篇: Typescript: Generic type of function parameter signature