Donald Knuth

阅读完整传记、IQ分数、名言和成就 Donald Knuth 在Geniuses.Club上.

科学是我们理解得足够充分以能向计算机解释的东西;艺术是其他一切。

Donald Ervin Knuth 是一位美国计算机科学家、数学家和 Stanford University 的荣誉退休教授。他是 1974 年 ACM Turing Award 的获得者,该奖项非正式地被认为是计算机科学领域的诺贝尔奖。Knuth 被称为"算法分析之父"。

他是多卷本著作《计算机程序设计艺术》的作者。他对算法计算复杂性的严格分析发展做出了贡献,并系统化了其形式数学技术。在此过程中,他也推广了渐近符号。除了在理论计算机科学多个分支中做出的基础性贡献外,Knuth 还是 TeX 计算机排版系统的创建者,以及相关的 METAFONT 字体定义语言和呈现系统,还有 Computer Modern 字体家族的创建者。

作为一名作家和学者,Knuth 创建了 WEB 和 CWEB 计算机编程系统,旨在鼓励和促进文学化编程,并设计了 MIX/MMIX 指令集架构。Knuth 强烈反对授予软件专利,他曾向美国专利商标局和欧洲专利局表达了自己的观点。

传记

早年生活

Knuth 出生在威斯康星州 Milwaukee,父母是德裔美国人 Ervin Henry Knuth 和 Louise Marie Bohning。他的父亲拥有一家小型印刷企业并教授簿记。作为 Milwaukee Lutheran High School 学生的 Donald 想到了解决问题的巧妙方法。例如,在八年级时,他参加了一个比赛,要求找出用"Ziegler's Giant Bar"中的字母可以重新排列成多少个单词;评委已经找到了 2,500 个这样的单词。利用因假装胃疼而在学校外获得的时间,以及反向思考这个问题,Knuth 使用了一部未删节的词典,并确定每个词典词条是否可以用该短语中的字母组成。使用这个算法,他找到了 4,500 多个单词,赢得了比赛。作为奖励,学校获得了一台新电视机和足够全班同学吃的糖果棒。

教育

Knuth 获得了物理学奖学金进入技术案例学院(现为 Case Western Reserve University 的一部分),位于俄亥俄州 Cleveland,于 1956 年入学。他还加入了 Theta Chi 兄弟会的 Beta Nu 分会。在 Case 学习物理时,Knuth 接触到了 IBM 650,一台早期的商用计算机。阅读了计算机手册后,Knuth 决定重新编写用于其学校的机器的汇编和编译器代码,因为他相信自己能做得更好。

1958 年,Knuth 创建了一个程序来帮助他学校的篮球队赢得比赛。他为球员分配"价值"以衡量他们得分的概率,这是一种新颖的方法,后来被 Newsweek 和 CBS Evening News 报道。

Knuth 是技术案例学院《工程与科学评论》的创办编辑之一,该杂志在 1959 年获得全国最佳技术杂志奖。他随后从物理学转向数学,并在 1960 年从 Case 获得了两个学位:学士学位和理学硕士学位,后者是由认为他的工作非常出色的系主任特别授予的。

1963 年,在数学家 Marshall Hall 的指导下,他从加州理工学院获得了数学博士学位。

早期工作

获得博士学位后,Knuth 加入了加州理工学院的教员队伍,担任助理教授。

他接受了一项撰写关于计算机编程语言编译器的书籍的委托。在进行这个项目时,Knuth 认识到他无法充分处理这个话题,而不先发展计算机编程的基础理论,这成为了《计算机程序设计艺术》。他最初计划将其作为单本书出版。当 Knuth 为这本书制定大纲时,他得出结论需要六卷,后来是七卷,才能彻底覆盖该主题。他在 1968 年出版了第一卷。

在出版《计算机程序设计艺术》第一卷之前,Knuth 离开了加州理工学院,接受了国防分析研究所通信研究部的职位,该部当时位于 Princeton University 校园内,从事密码学数学研究以支持国家安全局。

1967 年,Knuth 参加了工业与应用数学学会会议,有人问他从事什么工作。当时计算机科学分为数值分析、人工智能和编程语言。基于他的研究和《计算机程序设计艺术》这本书,Knuth 决定下次有人问他时,他会说"算法分析"。

Knuth 随后离开了这个职位,在 1969 年加入 Stanford University 教员队伍,现为计算机科学 Fletcher Jones 荣誉教授。

著作

Knuth 既是作家,也是计算机科学家。

《计算机程序设计艺术》TAOCP

在 1970 年代,Knuth 将计算机科学描述为"一个全新领域,没有真正的身份。可用出版物的标准不是很高。许多出现的论文显然是错误的。……所以我的动机之一是纠正一个讲述得很不好的故事。"到 2011 年,他这个系列的前三卷和第四卷第一部分已经出版。《具体数学:计算机科学基础》第二版起源于 TAoCP 第一卷的数学预备部分的扩展,也已出版。2020 年 4 月,Knuth 说他正在努力编写第四卷的 B 部分,他预计该书将至少有 A 到 F 部分。

其他著作

Knuth 也是《超现实数》的作者,这是一部关于 John Conway 集合论构造的替代数字系统的数学小说。该书不是简单地解释主题,而是寻求展示数学的发展。Knuth 希望这本书能为学生进行原创、创意研究做准备。

1995 年,Knuth 为 Marko Petkovšek、Herbert Wilf 和 Doron Zeilberger 的书《A=B》撰写了前言。Knuth 也偶尔为《Word Ways:娱乐语言学杂志》贡献语言谜题。

Knuth 也涉足了娱乐数学领域。他从 1960 年代开始为《娱乐数学杂志》贡献文章,并在 Joseph Madachy 的《休闲中的数学》中被认可为主要贡献者。

Knuth 也出现在 YouTube 上的多个 Numberphile 和 Computerphile 视频中,讨论了从编写《超现实数》到他为什么不使用电子邮件等各种话题。

关于 Knuth 宗教信仰的著作

除了他在计算机科学方面的著作外,Knuth 是路德教徒,他也是《3:16 圣经文本照亮》的作者,其中他通过系统抽样的过程来审查圣经,即对每本书的第 3 章第 16 节进行分析。每节经文都附有书法艺术的呈现,由 Hermann Zapf 领导的一群书法家贡献。随后,他被邀请在 MIT 做一系列讲座,讲述他对宗教的看法以及他的 3:16 项目背后的计算机科学,这导致了另一本书《计算机科学家很少谈论的事情》的出版,其中他发表了讲座"上帝和计算机科学"。

关于软件专利的意见

作为学术和科学界的一员,Knuth 强烈反对为应该显而易见的琐碎解决方案授予软件专利的政策,但对于线性规划内点法等非平凡解决方案表达了更细致的观点。他直接向美国专利商标局和欧洲专利组织表达了他的不同意见。

计算机漫谈

Knuth 每年在 Stanford University 做几次非正式讲座,他将其命名为"计算机漫谈"。他曾是英国 Oxford University 计算机科学系的访问教授,直到 2017 年,并是 Magdalen College 的荣誉研究员。

编程

数字排版

在 1970 年代,TAOCP 的出版社放弃了 Monotype,转而采用照相排版。Knuth 对后一种系统无法接近以前卷的质量感到沮丧,而以前的卷是使用较老的系统排版的,他花时间从事数字排版工作并创建了 TeX 和 Metafont。

文学化编程

在开发 TeX 时,Knuth 创建了一种新的编程方法,他称之为文学化编程,因为他认为程序员应该将程序视为文学作品。"与其想象我们的主要任务是指示计算机做什么,不如让我们专注于向人类解释我们希望计算机做什么。"

Knuth 在 WEB 系统中体现了文学化编程的理念。同一个 WEB 源代码被用来编织 TeX 文件,并串联 Pascal 源文件。这些依次产生了程序的可读描述和可执行的二进制文件。系统的后续版本 CWEB 用 C 取代了 Pascal。

Knuth 使用 WEB 为 TeX 和 METAFONT 编程,并将两个程序都作为书籍出版:《TeX 书》最初于 1984 年出版,《METAFONT 书》最初于 1986 年出版。大约在同一时间,现已被广泛采用的基于 TeX 的宏包 LaTeX 由 Leslie Lamport 首次开发,他后来在 1986 年出版了其第一份用户手册。

音乐

Knuth 是一位管风琴演奏家和作曲家。2016 年,他完成了一部名为《启示录幻想曲》的管风琴音乐作品,他将其描述为"将圣约翰启示录的希腊文本翻译成音乐"。它在 2018 年 1 月 10 日在瑞典首演。

个人生活

Donald Knuth 在 1961 年 6 月 24 日与 Nancy Jill Carter 结婚,当时他是加州理工学院的研究生。他们有两个孩子:John Martin Knuth 和 Jennifer Sierra Knuth。

中文名字

Knuth 的中文名字是高德纳。1977 年,在计划进行为期 3 周的中国之旅前不久,Frances Yao 给了他这个名字。在他 1980 年出版的《计算机程序设计艺术》卷中,Knuth 解释说他接受了自己的中文名字,因为他希望被中国当时增长的计算机程序员人数所认识。1989 年,他的中文名字被放在《计算机科学与技术学报》的报头上,Knuth 表示"这让我感到与所有中国人亲近,尽管我不能说你们的语言"。

健康问题

2006 年,Knuth 被诊断出患有前列腺癌。他在当年 12 月接受了手术,并表示"少量放射治疗……作为预防措施,但预后看起来相当不错",正如他在视频自传中报告的那样。

幽默

Knuth 过去常常为在他的书中发现的任何排版错误或错误支付 $2.56 的发现费,因为"256 便士是一美元的十六进制",对于"有价值的建议"则支付 $0.32。根据麻省理工学院《技术评论》的一篇文章,这些 Knuth 奖励支票是"计算机界最受珍视的战利品"。由于银行欺诈,Knuth 在 2008 年不得不停止发送真实支票,而是现在向每位错误发现者颁发一份"存款证书",来自他虚构的"San Serriffe 银行"的公开列示余额。

Knuth 的奖励支票之一

他曾警告一位通信者,"谨防上述代码中的错误;我只是证明了它是正确的,但没有试过它。"

Knuth 在 1957 年以"The Potrzebie System of Weights and Measures"的标题在学校杂志上发表了他的第一篇"科学"文章。在其中,他将基本长度单位定义为 Mad 第 26 期的厚度,并将基本力单位命名为"whatmeworry"。Mad 在 1957 年 6 月第 33 期上发表了这篇文章。

为了演示递归的概念,Knuth 故意在《计算机程序设计艺术》第一卷的索引中将"圆形定义"和"定义,圆形"彼此相互引用。

《具体数学》的前言有以下段落:

当 DEK 在 Stanford 第一次教授具体数学时,他通过说这是他尝试教授一门困难而非软性的数学课程来解释这个有点奇怪的标题。他宣布说,与他同事的期望相反,他不会教授集合论、Stone 嵌入定理,甚至不会教授 Stone–Čech 紧化。(土木工程系的几名学生站起来静悄悄地离开了房间。)

在 TUG 2010 会议上,Knuth 宣布了 TeX 的一个讽刺性基于 XML 的继任者,名为"iTeX"发音为 ,伴随着响亮的铃声,将支持任意缩放无理数单位、3D 打印、地震输入等功能

与伟人比较

Baruch Spinoza vs Ernest HemingwayFyodor Dostoevsky vs Galileo GalileiCharles Dickens vs Louis PasteurSocrates vs Srinivasa Ramanujan
查看排行 →所有对比 →

神童

Arisa TrewArisa TrewFirst woman to land a 720, then Olympic park gold at age 14Monica SelesMonica SelesTeenage world No. 1 who won eight Grand Slam titles before…Erik DemaineErik DemaineEntered university at twelve and became MIT's youngest-ever…Tanishq AbrahamTanishq AbrahamThree Associate Degrees by 11 — Med School at 14, MD-Candidate…
神童 →

玩一玩,明天再来

每日天才挑战 · Guess the genius
19th-century mathematician who wrote the first algorithm for Charles Babbage's Analytical Engine.
点选你的答案 ↓
你是哪位天才? 免费智商测试