Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction Haskell编译器_Compiler Construction_Haskell_Ghc - Fatal编程技术网

Compiler construction Haskell编译器

Compiler construction Haskell编译器,compiler-construction,haskell,ghc,Compiler Construction,Haskell,Ghc,AFAIK GHC是当今最常见的编译器,但我也看到,还有一些其他编译器可用。GHC真的是所有目的的最佳选择吗?还是我可以用其他东西代替?例如,我读到一些编译器(忘记了名称)在优化方面做得更好,但没有实现所有扩展。ghc是一个可靠的编译器。说它是所有目的的最佳选择是非常有力的。而寻找这样的工具是徒劳的 使用它,如果你真的需要其他东西,那么到那时你可能会知道它是什么。GHC是迄今为止使用最广泛的Haskell编译器,它提供了最多的功能。不过,还有其他选择,有时比GHC有一些好处。以下是一些更受欢迎的

AFAIK GHC是当今最常见的编译器,但我也看到,还有一些其他编译器可用。GHC真的是所有目的的最佳选择吗?还是我可以用其他东西代替?例如,我读到一些编译器(忘记了名称)在优化方面做得更好,但没有实现所有扩展。

ghc是一个可靠的编译器。说它是所有目的的最佳选择是非常有力的。而寻找这样的工具是徒劳的


使用它,如果你真的需要其他东西,那么到那时你可能会知道它是什么。

GHC是迄今为止使用最广泛的Haskell编译器,它提供了最多的功能。不过,还有其他选择,有时比GHC有一些好处。以下是一些更受欢迎的替代方案:

-Hugs是一个快速高效的解释器(我认为它不包括编译器)。它也因产生比GHC更容易理解的错误消息而闻名

-一个完整的程序编译器。JHC可以生成非常高效的代码,但它的功能还不完整(这可能就是您所想的)。注意,它并不总是比GHC快,只是有时候。我没有太多地使用JHC,因为它没有实现多参数类型的类,我经常使用这些类。我听说源代码非常清晰易读,这使它成为一个很好的编译器。JHC也更便于交叉编译,通常生成较小的二进制文件

-Utrecht Haskell编译器已接近Haskell 98的功能完成(我认为唯一缺少的是n+k模式)。它实现了许多GHC最流行的扩展以及一些原始扩展。根据文档,代码不一定优化得很好。这也是一个很好的编译器


简而言之,如果您想要高效的代码和尖端功能,GHC是您的最佳选择。如果您不需要MPTC或其他一些功能,那么JHC值得一试。UHC的扩展在某些情况下可能很有吸引力,但我还不指望它能提供快速代码。

我认为它也值得一提。从主页上的简介:

nhc98是一款小型、易于安装的, 符合标准的编译器 哈斯凯尔98,懒惰的人 编程语言。这是非常重要的 便携式,旨在生产小型 少量运行的可执行文件 记忆。它产生中等速度 代码,编译本身就相当简单 快速的它还具有广泛的功能 自动控制的工具支持 汇编,外语 接口、堆和时间分析, 跟踪和调试

  • Haskell被非正式地定义为GHC处理的语言
  • GHC是Haskell平台的编译器
  • 尝试使用GHC优化代码可能比切换到另一个编译器获得更多回报,因为您将学到一些优化技能
  • GHC中有许多非常有用的扩展。我就是不知道没有他们怎么生活

  • 因此,对于任何严肃的事情(例如,非学术性、非实验性、非易失性或使用许多软件包),务实的选择是使用GHC。

    从2011年起,对于日常编程来说,除了GHC之外没有其他选择。HP团队强烈鼓励所有Haskell程序员使用GHC


    如果你是一名研究人员,你可能会使用UHC,如果你使用一个非常奇怪的系统,你可能只有拥抱或nhc98可用。如果您是像我一样的复古迷,您仍然安装了gofer、hbc和hbi:

    $ hbi
    Welcome to interactive Haskell98 version 0.9999.5c Pentium 2004 Jun 29!
    Loading prelude... 1 values, 4 libraries, 200 types found.
    Type "help;" to get help.
    > help;
            HBI  -- Interactive Haskell B 1.3
    
    hbi很酷,因为a)它实现了Haskell B,B)它在命令行支持完整的语言:

    > data L a = I | X a (L a) deriving Show;
    data L b = I | X b (L b) deriving (Show)
    > X 4 (X 3 I);
    X 4 (X 3 I)
    

    即使15年后,编译器也能产生相当好的代码。

    非常有趣和有用!非常感谢。在哪里可以买到?看来,所有与hbc的链接都已断开。这就是你要找的。