八卦Knuth
【 以下文字转载自 TeX 讨论区 】
发信人: helloooo (花生), 信区: TeX
标 题: 八卦 Knuth (1)
发信站: BBS 水木清华站 (Tue Oct 7 22:47:30 2003), 转信
现在我开始当娱乐记者 :)
从今天开始 8g Knuth 老爹
传说 Knuth 写书写文章的第一稿都是用铅笔写的。很多人不明白他为什么不用键盘。其实原因是这样,Knuth 曾经参加过一个训练小秘的学习班,练习打字每分钟 80 个词以上。
到了后来,他发现他打字的速度大大高于他思考的速度,所以如果他用键盘,就会出现很多停顿。所以他决定用铅笔,这样可以与读者的思考速度保持一致。
八卦 Knuth (2)
Knuth 作为一个计算机科学家,为什么放下他所有的工作10年,专心研究排版美学,创造 TeX 系统。这是很奇怪的一件事情。
其实原因是这样。真正完美的数学排版应该是用金属活字进行的。但是自从70年代以来,真正懂得这项技术的人都死光了。新的排版机器,很不幸的都被计算机操 纵了 (想想 Matrix )。虽然当时计算机能够排出一些简单的报纸,杂志,但是它们不能很好的处理数学公式。Knuth 想写出一个小玩艺儿能够在不同的计算机上制造漂亮的数学公式,于是 TeX (读作 Tech(nology) 的前半部分) 就诞生了。
八卦 Knuth (3)
很多人都对 TeX 断行的算法感到满意,其实只有 Knuth 觉得担心。
他设计 TeX 的时候听说有一本书叫做 Aesthetic Measures,作者是美国 No.1 数学家 George David Birkhoff。
是说怎样用数学公式来衡量“美”。
他查阅了7个Harvard图书馆,其中有一个图书馆有一个拷贝,但是却被人借走了。无奈,跑到 MIT 去借。还好,借到了。后来他就在 TeX 里加入了一个变量叫做 badness,用来衡量一行文字的美感adness 越小这行文字就越美。
但是与 Birkhoff 不同,Knuth 对这个公式没有多少信心。
也许是因为谦虚。
八卦 Knuth (4)
Knuth 的书都是自己用 TeX 排版的,但是却不都是自己设计的。
传说 Knuth 和 Graham, Patashnik 合作写 Concrete Mathmatics 的时候请了一位有名的图书版面设计家为他们设计好了书的尺寸,字体大小,标题样式,
后来 Hermann Zapf 专门设计了一种数学字体叫做 Euler,自此,数学家 Euler 的灵魂浮游于 CM 当中……
另外一个图书设计家告诉 Knuth 一种格式数学公式的办法,就是不把数学居中,而是只相对正文缩进一定距离。
八卦 Knuth (5)
大家都知道 1974 年图灵奖授予 Knuth主要是因为他写了一部巨著叫做The Art of Computer Programming
但是不幸的是,很多人不能理解,甚至不相信他为这部书起了这么一个不“科学”的名字。
后来很多人的著作里出现这样的文献引用:
"The Act of Computer Programming, Donald Knuth."
八卦 Knuth (6)
Knuth 是个喜欢自夸的人,这是毫无疑问的。
在他出版 The Art of Computer Programming 之前就已经有这种苗头了。
还没有出版的时候,在一次会议上,有个人知道他的这种性格,就说:“我猜你正在写的这本书的书名肯定是 ‘An Introduction to Don Knuth’。”
Knuth 回答说:“正好相反。我要以你的名字来命名它。”
原来这个人的名字叫 "Art Evans".
八卦 Knuth (7)
Knuth 是Caltech数学系博士毕业的但是他常常说:“我戴着一顶计算机科学家的帽子,而不是一顶数学家的帽子。”
这说明他似乎对数学家有某些看法。
在他看来数学家只知道“What is it”,而他还知道 "How to do it".这就是他认为的数学与计算机科学的区别。
八卦 Knuth (8)
Knuth 回到 Stanford 时,学校让他自己给自己一个头衔,他就选了一个Professor Emeritus of The Art of Computer Programming
他其实觉得“计算机科学”不是科学。虽然大家很希望计算机编程变成科学,这是某ACM刊物提出的忠旨。但是 Knuth 觉得奇怪为什么大家这么喜欢科学,以致于他们瞬间把程序设计变成了科学,方法就是叫它“计算机科学”。-- Just call it "Computer Science"
在他眼里,计算机科学其实仍然是门艺术。
八卦 Knuth (9)
在 Knuth 的眼里,科学与艺术有什么区别呢?
艺术是人创造的,而科学不是。
艺术永远是可以无止境的提高的,而科学不是。
艺术需要天赋才能掌握,而科学不需要,按部就班就行。
所以,The ... ART ... of Computer Programming!
八卦 Knuth (10)
Knuth 的 The Art ... ft,这么长……以后简称TAOCP吧
…… 开始写的也不那么好。
传说有一天 Bob Floyd 给 Knuth 一封信,开门见山就说:
“Don, 请不要用那么多感叹号!”信的结尾至少打了五个概叹号。看了之后,Knuth 发现 TAOCP 里竟然平均每页有两个感叹号!!
八卦 Knuth (11)
有人说 Knuth 写完三卷 taocp 就去研究 TeX,其实是因为害怕写第四卷。
很多人早就希望他放下 TeX,继续写书。
Knuth 说:“一个人要把事情做的完美,只有当他跟上帝的意图保持和谐,现在上帝要我去写第四卷了。”
八卦 Knuth (12)
Knuth 很推崇随机算法。
他批改作业时,一般都是翻到随机一页,仔细看那一页,
之后就对学生的作业有了一个概貌,其它的部分就看的不那么仔细了。
Knuth 看书的时候首先看第316页,如果书很短就看第100页。
仔细看那一页。之后他就可以说那本书好不好。
据说这样做出判断的正确率很高。
不知道是否有很多人跟他学,看316和100.以后写书要注意把第316页或者100页写好呀!
八卦 Knuth (13)
继续八卦
你们知道 Knuth 发明了一种程序设计方法叫做 Literate Programming (文学编程)把程序当成文学作品来写。这样可以创造永恒的作品,甚至几十年后还有人用它作为茶余饭后的读物。
他为什么要发明这个东西。原因有2:
1. 他想让一个程序员(也许是他自己)在某一天拿到普利策奖。
2. 他想让提出“Structured Programming”(结构化程序)的那些家伙在写“非文学程序”的时候,就像他当年写“非结构化程序”
的时候一样觉得自己有罪。
他的“文学编程”思想最早是在英国 Computer Journal 发表的。
当人问他为什么不在美国发表。
他说,美国人没文化,他们不能理解这个东西。
八卦 Knuth (14)
今天写点有用的8g
Knuth 喜欢在他的作品里用 "we" 作为主语,虽然很多时候文章是他一个人写的。
有人认为使用被动语态好。但是 Knuth 认为不应该大量使用被动语态。
“用 We 可以减少被动语态带来的麻烦。‘we’是指你和你的读者。”
那么怎么称呼作者?答案是: the authors, the first author, 或者直接用名字。
但是他确实反对使用 "I",除非你是身名显赫,人人尊敬的君王式人物,否则最好不要在论文里用 "I"。
在你描述你的程序时,喜欢说 "we insert the element in the heap"还是 "it inserts the element in the heap" ?Knuth 总是喜欢用 "we"。显然他已经融于算法的动作之中了。
八卦 Knuth (15)
虽然他不喜欢论文里用 "I", 但是他喜欢让他的程序自称 "I".
看这里:
This is TeX, Version 3.14159 (Web2C 7.3.7x)! I can't find file `kkkk.tex'.kkkk.tex
Please type another input file name:
有很多人跟着他学,把这种称呼顽皮的发挥到极致:
Welcome to Scheme 48 0.57 (made by wy on 日 11月 24 13:20:27 CST 2002).Copyright (c) 1993-2001 by Richard Kelsey and Jonathan Rees.Please report bugs to .Type ,? (comma question-mark) for help.> (define (sq x) (* xx))
; no values returned>
Exit Scheme 48 (y/n)?I'll only ask another 100 times.Exit Scheme 48 (y/n)?I'll only ask another 99 times.Exit Scheme 48 (y/n)?I'll only ask another 98 times.Exit Scheme 48 (y/n)?I'll only ask another 97 times.Exit Scheme 48 (y/n)?I'll only ask another 96 times.Exit Scheme 48 (y/n)?I'll only ask another 95 times.Exit Scheme 48 (y/n)?I'll only ask another 94 times.Exit Scheme 48 (y/n)?......
八卦 Knuth (16)
Knuth 有一次布置了一个作业,要求在两个星期以内做出一个用于控制时代广场那种 8x256 像素的阵列显示屏幕的系统,
并且写出一个用户手册。这个用户手册必须让不懂电脑的人也能看懂。
作业交上来以后 Knuth 把文档拿给他夫人(Jill Knuth)看,结果发现 Jill 对文档里的 "Menu" 和 "Scrolling" 这样的单词都摸不着头脑,
更不要说 "left-indented", "exit", ...
八卦 Knuth (17)
Knuth 曾经在 American Mathematical Monthly 发表过一篇叫做 "The Toilet Paper Problem" 的论文,据说是一个研究怎样合理使用厕纸的算法。
现在收录于 Selected Papers on Analysis of Algorithms, p.111可惜清华图书馆没有。谁找到copy我一份。呵呵。
这篇论文投到 Monthly 时,在节标题使用了大量“粪便学”词汇。
编辑警告 Knuth 说,笑话在我们这里是危险的,请你三思!
不得已啊,Knuth 后来把小节标题里的那种词改掉了。
可是他很不想改文章的标题。
怎么办呢?
他给编辑一封信说,我已经以这个标题做过两次演讲,
这个主题已经被广泛的采用和讨论……云云。
最后编辑回信说:“你的厕纸被接受了!”
P.S. 附录:增加这篇论文的信息:
Stanford 计算机科学系楼里的厕纸架上可以并排放两筒厕纸。
人上厕所时有可能从两个中的一个取纸。
两个卷筒不一样大的时候,喜欢从大的那筒拿纸的人叫做 big-chooser喜欢从小的那筒拿纸的人叫做 little-chooser。
如果两筒大小差不多,一般人都会从离自己最近的那筒取纸。
厕纸用完的时候一般由janitor(门口老大爷?)提供新的纸。
如果一边的用完了,那就换掉那一边,
如果两边同时用完,那么有人就有麻烦了……(我怀疑Knuth遇到了那么一次
我没仔细看完。
Knuth 似乎在计算那种两筒同时用完的窘境出现的概率……
论文原文的一个拷贝在:
比较复杂的数学…… 有兴趣的可以看看。
另外,Don Norman 在这里有一些新设计的厕纸筒可以避免这种情况发生:
看来 Knuth 是在白费工夫。应该授予 IgNobel 或者 IgFields
八卦 Knuth (18)
Knuth 和 Graham 他们合写的 Concrete Mathematics 本来不会做的那么花哨的。
结果后来他们专门为那本书设计了字体,页面样式,所有习题都给出了出处。几乎所有页面都至少有一个涂鸦,连《爱利丝漫游奇境记》都被列入参考文献……
这是怎么回事呢?原因就是 Knuth 在写书期间去看了一部电影:
“白雪公主与七个小矮人”。
看完之后 Knuth 感叹道:
难以置信,这样完美的艺术品竟然可以在1937年完成。
我一定要把我的书做成一个艺术品,而且要在三个月之内完成!
结果他说到做到了。
1. 高德纳曾在自传开头幽默地发问:“Donald Knuth真的只是一个人么?”作为现代计算机科学的鼻祖,他完成了编译程序、属性文法和运算法则等领域的前沿研究,出版专著17部,发表论文150余篇(涉及巴比伦算法、圣经、字母“s”的历史等诸多内容),写出两个数字排版系统,同时在纯计算数学领域也有独特贡献。他获得的奖项难以胜数,其中包括ACM Turing Award颁发的图灵奖(1974),美国国家科学奖(1979),日本KYOTO奖(1996),瑞典科学院的Adelskold奖及冯诺伊曼奖。而他对荣誉从不经意,据说那只代表至高荣誉的图灵碗被用来盛放水果。——回首过往,几十年时光如白驹过隙,大约是他自己对做出的成果如此之多也感到吃惊,所以才有以上一问。
2.八岁时的高德纳即显出超凡智力:当时某糖果商以小学生为参与对象举办了一项益智趣味比赛,要求用“Ziegler’s Giant Bar”(分别为糖果厂名和出产的棒棒糖名)里的字母写出尽可能多的单词。高假装胃疼宅家两周,依靠一部大字典列出了4500个单词(超出裁判掌握的2000个单词一倍多),不仅使所在班级夺冠(奖品为一台电视机和每人一块Giant Bar),本人也赢得一付雪撬。其赛后感言曰:我还能写出更多。
3.在高中第一学年,高德纳并未对数学发生太大兴趣,他更喜欢听音乐与作曲,一度考虑过报考音乐专业。这个爱好深度影响到他后来的生活及研究——他将写作喻为演奏管风琴,其书房里的确也摆放有一台特制的84管管风琴,此外他还会萨克斯和大号等乐器。所著《娱乐和游戏论文集》一书有四个章节内容涉及到高的“主要副业”——音乐;进入90年代,当连续工作几天需要放松一下时,他会着手谱写管风琴乐曲。
4.1956年以科均97.5的分数高中毕业进入凯斯理工学院物理专业,期间创作于中学时的科幻小说《普茨比度量衡体系》在著名的《疯狂》(Mad)杂志发表,挣得稿费25美元及西屋“科学天才”提名奖。这个作品多次再版,直到作者临近退休的1991年还重印过一次。
5.大学一年级留校打工,毗邻的计算机房新到了一台IBM650——这个指示灯闪烁不定的庞然大物让高德纳生出莫大兴趣。当获准在晚上操作那台计算机后,他几天不眠不休地观察探究,并且改动了说明手册上的程序使之更加好用。一年后,高改入数学系,自此终生同计算机结缘。当时兼职学校篮球队的他用IBM650写了一个程序,用于对球员在每场比赛中得分、助攻、抢断、篮板球、盖帽等一揽子数据的分析评估,球队教练据此挑选球员,使凯斯理工学院赢得了1960年的联赛冠军。这个“神奇的公式和程序”引来了当地媒体乃至CBS电视台的大肆报道,高所在球队和IBM650的合影被IBM印到了产品宣传册上。这段经历的重要性不言而明,以至高德纳在巨著《计算机程序设计的艺术》第一卷卷首写下“献给曾经安装在开思理工学院的650型计算机,以纪念那些愉快的夜晚”的题辞。
6.上大二那年,某教授在课堂上给出一个***钻的题目,宣称谁能破解就可记成绩“A”。高跟大多数同学都以为那是道无解的题,直到某日他未赶上公共汽车,只能步行去看一个演出时,方决定利用路上的闲暇碰下运气。不承想问题很快便获得解决,成功地得到了“A”。在接下来的那个学年里,他的离散数学成绩又一次被老师评为“A”。 7.高德纳1960年毕业于开思理工学院,因学业特别出色,被破例同时授予学士和硕士学位。之后在伯克利攻读数学博士期间,ALGOL60经常因为编译器不成熟出现故障,他为此编写了一个简单的测试程序,人称“Man or boy test”(男人或男孩测试),可以译成“是男人就得-67”。高解释,用ALGOL60来编译这段程序,只要运行结果等于-67,就说明这个编译器没有问题了,是纯爷们儿。 8.习惯用铅笔而非键盘写初稿,高将原因归咎于打字速度远高于思考速度(每分钟 80 个单词以上),而这会导致思考出现太多停顿,用铅笔可以让思考与输入速度保持一致——“我打字的速度比我思考的速度更快,这样当我试图用键盘创作重要内容时,就会产生同步问题。速度通常不会是最重要的标准。科学一般都难以迅速解释或迅速领会……我通常的工作方式是用铅笔和纸先把所有东西都写下来,然后在旁边放一个大废纸篓。然后使用Emacs将所有文本键入到机器中……特定的Emacs快捷键使得写书的过程有点儿像演奏风琴……” 9.“我戴着一顶计算机科学家的帽子,而不是一顶数学家的帽子。”这似乎暗示了身为加州理工学院数学博士的高对数学家的某种成见——在他看来后者只知道“What is it(这是什么)”,而前者还知道“How to do it(如何做到这一点)”这可能是他心目中的数学与计算机科学的区别。 10.斯坦福大学曾让高德纳为自己选择一个头衔,他确定的是“计算机程序设计艺术名誉教授”。高认为“计算机科学”不是科学(他很讶异人们为何如此喜欢科学),而是一门艺术。它们的区别在于:艺术是人创造的,而科学不是;艺术是可以无止境提高的,而科学不能;艺术创造需要天赋,而科学不需要。
11.传闻高改作业通常是随机翻到一页认真批阅,有了一个初步印象后,对剩下的内容就只大概看看了。阅读大致也照此办理:遇上大部头先读第316页,如果书比较薄就看第100页;随后就可以作出判断了,据说准确率还八九不离十。如果追随他的人很多,以后著书就要注意了:写到第316页或100页时一定要停下来多推敲下。这或许是高德纳推崇随机算法的结果。 12.“文学化编程(Literate Programming)”是高写的又一程序,他自称写这个程序的动机有二:A.让一个程序员(或许就是他自己)在某一日拿到普利策奖;B.让那些提出“结构化程序”的家伙在写“非文学程序”时,就像他当年写“非结构化程序”时一样怀有罪恶感——娃哈哈。有关“文学编程”设想的文字最先发表于英国的《计算机学报》,有人问为何不在美国发表,高答曰:美国人没文化,他们理解不了啊。 13.《美国数学月刊》刊载过高德纳一篇名为“卫生纸问题” 的论文,研究如何合理使用厕纸的算法,小节标题中使用了大量的“粪便学”词汇。编辑警告他,过度调侃的文风在我们这里是危险的,请三思!高替换了小标题里的某些词,但不想动文章标题,遂在给编辑的回信里写道:我用这个题目做过两次演讲,主题早已被广泛采用和讨论……云云。编辑无奈之下只好表示:“你的厕纸被接受了!”(斯坦福大学计算机科学系楼内的厕纸架可并放两筒厕纸,供如厕者取用。卷筒大小不等时,喜欢从大筒拿纸的叫big-chooser【大的选择器】,喜欢从小筒拿纸的则称little-chooser【小的选择器】;若两筒大小接近,一般人的选择可能是离手最近的。厕纸平时由janitor【看门人】负责更换,用完一筒换掉一筒;不过要是同时用完,恐怕就会有人遇上麻烦了……高研究的似是两筒纸同时用完的窘境出现的概率)
14.在伯克利毕业的前一年,著名的艾迪生-韦斯利出版社约初露头角的高德纳写一本编译器和程序设计方面的书,这件原本寻常的事最终成就了计算机科学史上的一个奇观。出版社1962年约稿,可直到1966年还动静全无,编辑忍不住去电催促,说都过去4年了,书写到啥程度了啊?高答才3000来页。编辑惊呼那干嘛还不交稿?答曰还没进入正题呢。编辑崩溃地说,那只能出多卷本了…… 15.《计算机程序设计艺术》第一卷于1968年推出,可真正能读完读懂的人为数并不多(传比尔•盖茨费时几个月才读完这一卷,然后说,如果你想成为一个优秀的程序员,那就去读这个《基本算法》吧)。高对此解释道:“我知道我的书是不容易读,不过要知道的是,如果不是我精雕细琢地写的话,它们会比现在难读一百倍。”1973年,这部刚出到第三卷的书(计划写七卷)已被计算机界视为“神作”,最初几年就卖出100多万套;译为俄、日、西、葡、匈牙利、罗马尼亚等多种文字后,更创造了计算机类图书的销售纪录。美国计算机协会(ACM)也不淡定了,1974年就将国际计算机界的至高荣誉“图灵奖”授予了他——此时的高德纳年方36岁,他迄今还是这项最年轻图灵奖获得者纪录的保持者。
16.获此殊荣后,令业界大跌眼镜的是:高宣布暂停写作,理由是现有的计算机排版软件效果太差,破坏了这套书的美。这不免引发作者是否江郎才尽,见好就收的猜测与怀疑——不料辍笔10年的高德纳以三个重量级创造性成果:字体设计系统METAFONT(其价值一言以蔽之:计算机界最懂字体的俩大腕,一是乔布斯,一是高德纳)、文学化编程(充分展示程序设计的艺术性:清晰,美感,诗意),尤其是最具革命性的排版系统TEX(至今仍是全球学术排版的不二之选)给出了强力回应。尽管如此,仍有人说高写完三卷 TAOCP就去研究TeX,其实是害怕写第四卷——不过他对这类风言风语根本不以为意:“一个人要把事情做的完美,只有跟上帝的意图保持和谐,现在上帝要我去写第四卷了。” 17.搁置手头的重要工作,费时10年专研排版美学打造TEX系统,原因其实很简单:数理图文排版以前一直使用金属活字,70年代以降始有激光照排,然而当时的计算机虽能替代人工排出普通的报纸杂志,但对处理复杂的数理公式却力不从心。高德纳试图为计算机写一个小玩艺儿解决上述问题,TeX的前半部分由此产生。编写过程中,他想参考J•伯克霍夫的Aesthetic Measures(《美学标准》)一书,在哈佛的图书馆几经查阅也未能如愿,之后好不容易在麻省理工学院找到。参考的结果是在TeX里加入一个变量badness,用以衡量一行文字的美感,变量越小文字就越美。 18. TEX功能强大、几近无懈可击,其版本号非自然数列,也非年份,而是不断逼近的圆周率(最新版本为3.1415926)——这等于宣告产品接近完美,已经不可能作大的改进了。高为此设置了悬赏奖金:谁找出TEX里的一个bug,就付给其2.56美元,找出第二个5.12美元,第三个10.24美元……依此累加。算法大师不可能不明白指数增长的可怕性(传说中的国王就是玩指数游戏输掉了江山),然而直到今天,他也未能为此付出多少钱。高的另一悬赏是向发现其著作中错误的人发奖,数额依旧是2.56美元始,因为“256美分刚好是十六进制的一美元”。不过寥寥几位获奖者都将有他签名的支票当作文物珍藏,并未打算去银行兑现。
19.作为开源代码运动最早的倡导者之一,高德纳将Tex 和Metafont无偿贡献给了世界,自己没有从中获取任何报酬。他的想法是,一个人一旦能够喂饱自己并有个安身之所,剩下的就是为别人做点什么了。“我尝试尽我所能的去熟悉电脑科学里的一些领域,然后把这些知识摘要成大家比较容易了解的方式,让没有那么多时间做这种学习的人也能够吸收它们”。为此他常常需要阅读超过20万页的文献,然后将之浓缩为两千页——他无意追赶最流行的内容,而是希望从日新月异的信息中萃取出能够存活到下个世纪的精华。 20. 1992年,高为潜心写作TAOCP从斯坦福提前退休,同时停用电子邮箱(他自1975年就开始玩电邮)。2008年,TAOCP前三卷出版30年后,第四卷在高粉的千呼万唤中终于面世,此际的高德纳已然是满头白发。对计算机科学的倾心热爱,使他为这部作品耗费了毕生心血:从及冠之年直至古稀老人。
21.在大受欢迎的“信仰与科学的关系”系列讲座上,有人问及的写作和信仰的关系,高德纳回答说:“计算机科学是既壮观又幽美的,我尝试尽自己所能,以最恰当的方式来解释我所了解的某些片断……我相信,总有一些神秘的东西是超越人类的理解而存在的……我认为,上帝希望我能创造某些成果,而这些东西能够启发其他人去创造别的成果。” 22.高德纳这个中文名来自储枫教授(香港城大计算机科学系主任,华裔图灵奖得主姚期智的夫人)。以“高”为姓,据Knuth自述是因其个头高大,且辅音G和K读音接近;“德纳”则与“Donald”相谐,且在中文里含体面高贵之义。其时(1977年)高德纳携夫人及儿女John和与Jen正准备访问中国大陆——储枫给孩子也分别起了“高小强”、“高小珍”的名字,他们全家还同中国孩子在公园玩过无须语言交流的游戏。
23.有人视高为文艺复兴时期式的天才人物,因其不仅博学,更难得的是具超一流的动手能力——在分工日益细化,专业领域愈来愈狭窄的现代社会,这种博而专,基础与应用兼能,理论和操作并行的人才类型尤为罕见。如同一个人独力设计制造一架飞机,除了需要精通空气动力学理论,还须考虑机身上每一颗螺丝钉的固定方式,这确实不免让人想到欧洲文艺复兴时期列奥纳多•达•芬奇那样的全能巨人。
24. 唐纳德•欧文•克努特(Donald Ervin Knuth):1938年生于美国威斯康辛州密歇根湖畔的密尔沃基,斯坦福大学计算机科学系荣誉退休教授,排版软件TeX和字型设计系统Metafont发明人,所著描述基本算法与数据结构的巨作《计算机程序设计的艺术》被《美国科学家》杂志列为20世纪最重要的12本物理科学类专著之一,与爱因斯坦《相对论》、狄拉克《量子力学》、理查•费曼《量子电动力学》等经典比肩而立。