为什么Haskell等函数式语言中没有尖端的编译器后端?

时间:2011-05-26 11:26:15

标签: compiler-construction haskell functional-programming

当前最先进的编译器后端主要是用C / C ++编写的,最好的例子可能是LLVM基础结构。此外,人们经常说,用功能语言实现某种杀手级项目会很好。

功能编程声称具有以优雅(现在快速)的方式解决大量算法问题的优势 - 与命令式语言相比。然而,大多数编译器后端都是用C / C ++实现的。我知道存在,例如MLRisc但它似乎过时了。

感谢希望闪电般的答案。对我来说,完整的编译器工具链将成为语言成熟的真实证明。

最好的问候, ULI

1 个答案:

答案 0 :(得分:9)

可能最为尖端的编译器都是用GHC编写的。它编译Haskell并且 - 除了完全用Haskell编写的运行时系统之外。我读到了一些编译器枪战(遗憾的是,我找不到源代码),Haskell在C和C ++之后排在第三位。这真是一个非常酷的项目。

GHC支持各种目标架构,包括x86和x64,SPARK以及其他一些架构。 GHC被移植到各种平台,包括Linux,Windows,Mac OS X和各种BSD。 GHC可以直接发出程序集,也可以使用LLVM后端来使用强大的LLVM优化器。此外,还有一个C后端,但它将在下一个版本中删除。