高纳德设置了一个悬赏游戏。若是有人挑出了他编写的TEX程序的错误,他就给挑错者奖励。第一个错误值2.56美圆,第二个值5.12美圆,第三个值10.24美圆。听说,这张10.24美圆的支票是他迄今为止为此签出的最后一张。程序员
高纳德是美国计算机科学家唐纳德·克努斯(DonaldKnuth)的中文名。这位“现代计算机科学的鼻祖”是计算机界的传奇人物。他在 年仅36岁时就得到了图灵奖,成为该奖历史上最年轻的获奖者。他的获奖做品《计算机程序设计艺术》原计划出七卷,至今才出到第四卷。尽管如此,它依然与爱 因斯坦的《相对论》、狄拉克的《量子力学》、费曼的《量子电动力学》等并列,被《科学美国人》杂志评选为20世纪最重要的12本物理学著做之一。算法
1 早期经历编程
“是男人就得-67”工具
1938年高纳德出生于美国密尔沃基。他的超凡智力在8岁时就显示出来了。当时,一家糖果商在孩子们当中举办了一项有趣的比赛,要求用 “Ziegler’s GiantBar”里面的字母,写出尽量多的单词。裁判事先准备了一份2500个单词的列表,可小高纳德使人惊讶地写出了4500多个单词。他为学校赢 得一台电视机,还为每一个同窗赢得一根棒棒糖。他的赛后感言是,我还能写出更多。学习
高纳德就读的大学是凯斯理工学院。1956年,他在这里第一次使用了IBM650,并开始学习编程。不久以后,高纳德就对编程有了许多体 会。当时高纳德还兼职管理学校的篮球队,因而他编写了一个程序,可以自动评估每名球员的价值,令球队的教练很是欣赏,还引来了CBS电视台。后来高纳德、 球队教练和IBM650的合影还被印到了IBM650的宣传册上。1960年,高纳德以公认出色的成就,打破了学校的惯例,同时得到了学士和硕士两个学 位。测试
随后,高纳德进入伯克利攻读数学博士学位。在此期间,他的编程生涯也正式开始了。他当时所写的程序中最值得一提的,是对ALGOL60编 译器提出的测试方法。ALGOL60常常会由于编译器不成熟而出故障。高纳德编写了一段很是简单的测试程序,江湖人称“Man or boytest”,翻译成中文就是“是男人就得-67”。高纳德说,只要用ALGOL60编译器来编译个人这段程序,若是运行结果等于-67,就说明这个 编译器是纯爷们儿。字体
2 获图灵奖翻译
盖茨为他“作推广”设计
1963年,25岁的高纳德拿到了博士学位,并留在伯克利任教。在毕业前一年,高纳德已经由于设计编译器而响誉计算机行业。著名的 Addison-Wesley出版社向他约稿,请他写一本关于编译器和程序设计方面的书。这原本是很日常的一件事,但不久以后,他就把这件事作成了计算机 科学史上的奇观。1962年约的稿,高纳德一直写到1966年还没交。编辑急了,找到高纳德,说这都4年了你写了多少啊。高纳德说,才写3000页手稿。 编辑大囧,忙问都这么长了怎么不交稿?答曰,我还没写到正题呢。编辑崩溃了,说那你出个多卷本吧……游戏
把一件日常的事作到人间极致,这就是高纳德。他不是故弄玄虚,他的内心攒着一股劲儿,要写一部与牛顿的《天然哲学的数学原理》相媲美的巨著。 1968年,《计算机程序设计艺术》(TAOCP)的第一卷正式出版了。这一卷的标题叫《基本算法》,但难度却并不低。听说比尔·盖茨曾经花了几个月的时 间读完这一卷,而且作了大量的练习,而后他说,若是你想成为一个优秀的程序员,那就去读这个《基本算法》吧。高纳德本人的说法更犀利:要是看不懂,就别当 程序员。
同年,高纳德跳槽到斯坦福大学,并当上了教授。一年后,TAOCP第二卷正式出版。1973年,这本书出到了第三卷。这三卷书被计算机界惊为“ 神做”,在最初的几年内就卖出去100多万套。按照计划,这套书一共是七卷,可是如今刚刚写完三卷,就已经是震古烁今。震到什么程度呢,连图灵奖颁奖委员都 坐不住了。按照惯例,图灵奖的获奖者都是成就等身,要通过时代的检验。但此时,美国计算机协会便决定当即为其颁发图灵奖。这对高纳德来讲,无疑是个殊荣, 这一年他只有36岁。至今,他仍保持着图灵奖最年轻获奖者的纪录。
3 中途辍笔
圆周率充当序列号
高纳德在获此殊荣以后,再一次令世界大跌眼镜:他宣布今后歇笔了,由于排版工具太差,破坏了这套书的美。这一动做让外界十分震惊。有人说,高德 纳江郎才尽,见好就收;有人说,图灵奖对前三卷的评价太高了,高纳德只好找理由撤了;还有人说,获奖以后中止写做,充分体现了他写书的目的就是为了功利。
可高纳德在辍笔的10年间竟然创造了三个重要的成果:字体设计系统METAFONT、文学化编程(Literate Programming),以及其中影响最大的排版系统TEX。
在Word系统中写科学论文是一件很辛苦的事,你须要调整格式,也很难表现数学式。可是在TEX中,这些麻烦几乎彻底不存在,只要载入样式文件,排版就自动完成了。TEX是一场出版界的革命,直到如今还是全球学术排版的不二规范。
TEX做为一个软件产品,也使人叹为观止。它的版本号不是天然数列,也不是年份,而是从3开始,不断逼近圆周率(目前最新版本是 3.1415926)。高纳德再一次用行动宣告,这个东西趋近完美,不可能再有什么大的改进了。他还设立了奖金:谁发现TEX的一个错误,就付他2.56 美圆,第二个错误5.12美圆,第三个10.24美圆……以此类推。结果直到今天,他也没有为此付出多少钱,可见TEX通过了怎样的千锤百炼。他设置的另 一个奖项是找出其著做中错误的人能获得2.56美圆,由于“256美分恰好是十六进制的一美圆”。听说,获奖者将有他签名的支票视为珍宝,并不兑现。
4 回归写做
计算机王者归来
歇笔十年的高纳德,手捧这三项成果重出江湖,打消了一切质疑。这时他才对十年前的歇笔事件作了一个轻描淡写的解释:一我的要想把事情作得漂亮,就必需要跟上帝保持和谐,如今,上帝终于让我去写四卷了。
1992年,高纳德为了专心写做,宣布提早退休,并停用电子邮箱(此人从1975年就开始玩电邮了)。高纳德一共带了28位博士生,他以为28 这个数字很好,因而便宣布再也不收学生了。尽管如此,他仍然为想要师从于他的人们留下了一个盼头:他开了一门公开课,每次会提出一个问题,若是谁能快速解出 来,高纳德就会为他的博士论文签名。不知道哪位后起之秀可以得到如此殊荣呢,咱们拭目以待吧。
2008年,在TAOCP的前三卷面市30年以后,第四卷终于面世了。而高纳德本身却已经是白发苍苍的古稀老人了。他对计算机科学的热爱,使他为这套丛书耗费了一辈子的心血。