卷2:第5章 Glasgow Haskell编译器

上世纪九十年代,Glasgow Haskell编译器(诞生于格拉斯哥[Glasgow]大学)开始时作为英国政府资助的学术研究项目的一部分,有着如下几个计划目标:
- 可以免费获得的,健壮且可移植的Haskell编译器,能够产出高性能的代码
- 模块化设计,便于其他研究人员扩展和开发
- 让人学习真实程序如何运作,来设计和构建更好的编译器

GHC有了20多年的历史了,从诞生之日起,他的开发一直保持着活跃的状态。今天,GHC发布后会被成千上万的人下载,在线的Haskell library仓库中包的数量超过了3000。许多大学课程中使用GHC进行教学,商业使用GHC的案例也在不断增长。

整个GHC的开发历史中一般大约有2到3个活跃开发者,尽管提交代码的人成百上千。对于作为GHC开发者的我们,最终的目标是研究而不是代码,但开发GHC有个核心的前提:研究成果要回馈给GHC,这样利用GHC可以基于之前的想法进行下一步的研究。此外,GHC具有工业强度的品质也很重要,他可以让GHC的研究成果具有更高的可信度。所以虽然GHC充满前沿的想法,但我们付出很大的努力,让其可以在产品中可靠地使用。虽然研究和产品使用这两个方向看起来有强烈冲突,但我们找到可行的方法,让两方面都有获益。

在此章中,我们会描述GHC的总体架构,关注那些使GHC成功的关键想法,还有一些不如意的地方。希望你能够在下面的讲述中学到在20多年的开发GHC如何保持庞大项目开发的活跃,而没有被自身的重量压垮,一个非常小型的开发团队一般要考虑哪些事情。