作者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