高德纳设置了一个悬赏游戏。如果有人挑出了他编写的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
这个数字很好,于是便宣布不再收学生了。尽管如此,他仍然为想要师从于他的人们留下了一个盼头:他开了一门公开课,每次会提出一个问题,如果谁能快速解出
来,高德纳就会为他的博士论文签名。不知道哪位后起之秀能够获得如此殊荣呢,我们拭目以待吧。
高德纳著作:(来自维基百科)
高德纳的《计算机程序设计艺术》計劃出版七卷,该书自第三卷于二十世纪七十年代初版以来,一直沒有下一卷的進展。因此他自1990年起就停止使用电子邮件(高德納自1975年就開始使用電子郵件)以专心撰写余下的四卷。最新消息是,第四卷將至少出成4A、4B、4C三本,目前已有部分草稿譯出。
在计算机科學以外,高德纳亦著有論述基督教信仰的書籍,如《3:16 Bible Texts Illuminated》(1991), ISBN
0-89579-252-4,以及《Things A Computer Scientist Rarely Talks About》(2001),ISBN
1-57586-326-X,這些被視為计算机科學家少有的作品。
阅读(975) | 评论(0) | 转发(0) |