作者noctem (noctem)
看板PLT
标题Re: [Haskell] GHC「简」介
时间Mon Oct 1 12:36:38 2007
※ 引述《godfat (godfat 真常)》之铭言:
: GHC 是 Glasgow Haskell Compiler 的缩写,
: 顾名思义就是一种 Haskell 的 compiler...
: 可能也是现在用最多的 haskell compiler 吧?
: 而他本身也是个由自己去 compile 自己的 compiler.
嗯,GHC 本来是在苏格兰的 University of Glasgow 开发的。
那几年风云际会,Glasgow 聚集了不少 functional programming (FP)
的研究者,霎时好像变成做这方面研究最好的地方。
GHC 本身用 Haskell 写,算是当作一个 Haskell 也可以写「真的」
程式的证明。本来的计画是要使用 FP 适合数学论证的特性,希望能
用 literal programming 的方式一边写 compiler,一边证明这个
compiler 是对的,然後还可以出一本书,里头就是这个 compiler
的 code 和证明。
不过渐渐地 GHC 面临了抉择:到底要成为一个 source code 很容易
看得懂的 compiler, 还是成为一个实用上很有用的 optimising compiler?
後来 GHC 选择了後者。所以现在 GHC 是最好的(compile 出来的
程式效率一般说来最好)compiler, 但大部分的 code 已经不可能很
漂亮,证明/出书的想法也被放弃了。
我当时以为自己会到 Glasgow 去。结果几年之後人事异动,这些人
一个个被挖角,Univ. of Glasgow 好像空了。其中几个重点人物被
Microsoft Research 聘去,当时算是大新闻(M$? 他们不是坏人吗?)。
现在虽然名字仍叫做 Glasgow Haskell Compiler, 主要的维护倒都
是和 Microsoft 有关的几位在做的。
: 而 compile GHC 所需要的时间...就我的经验上大概比 GCC 4.2 快一点吧 @_@
: 记得在我现在的 2.16 Core 2 Duo 上需要三四个小时...
: 不过应该没用到双核就是了,不然不应该这麽慢。
在以前,GHC compile 的速度算是慢的 --- 毕竟是比不过用 ML
甚至 C 写的 compiler. 我当时不知为什麽要自找麻烦用 GHC 做
毕业 project, compile 一个程式要五分钟,然後告诉我 type
error (其实聪明一点用 Hugs 确定没错再 compile 不就好了..)。
GHC 当时的强项是 compile 出的程式的效率。
不过渐渐它把大部分竞争者都打败了。想来大概也是进步了不少吧。
: 另外 GHC 本身也实作了非常多不在 Haskell 98 中的东西,
: 所以应该被拿来做了很多实验吧? :p
嗯,这里可以看得出来有一个 compiler 在手上的好处。每年很多人
出一大票论文建议这个那个 language feature, 不过最後哪些会
留下来呢?答案是做到 GHC 里面的才算数。GHC 觉得有兴趣,做
出来了,就好像一个认证一样的。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.20.217
1F:推 caml:最好的﹖﹖比gcc,ocaml还有相当距离吧﹐仅比sbcl强一点。 10/01 13:02
2F:推 jaiyalas:是指haskell而言最好吧... 10/01 13:07
3F:→ noctem:嗯,当然讲的是 Haskell compiler 啦... :) 10/01 14:00
4F:推 caml:主要以前在米国碰到过很多说haskell最好的学生﹐刚才就条件 10/01 14:01
5F:→ caml:反射了一下﹐勿怪。 10/01 14:03
6F:→ noctem:No problem. 如果是论效率, 我对 Haskell 期望都不高啦.. 10/01 16:49