高德纳(Knuth)在个人主页宣布:《计算机程序设计艺术》(简称 TAOCP )第 4 卷 B 即将出版,预计今年(2022年)10月份就可以看到纸质书了,距离上一次出版的第 4 卷 A(2011年)已经过去了 11年时间了,至此,Knuth距离他的愿望又近了一步,后面还有卷4C,4D,4E.....
TAOCP 的第四卷涉及组合算法,这是计算机科学领域,好的技术具有最显著的效果,这也是 Knuth 最喜欢的一个领域,因为一个好主意通常可以使程序运行得快一百万倍,这是一个宏大而引人入胜的主题。
《计算机程序设计艺术》真正开始写作是 1962 年,当时高德纳还处于研究生学习阶段。1968 年,他出版了该书的第 1 卷。而第 2 和 3 卷分别出版于 1969 和 1973 年。
也是因为这本书,他获得了图灵奖:
授予高德纳图灵奖,以表彰其在算法分析、程序设计语言的设计和程序设计领域的杰出贡献,特别是其著名的《The Art of Computer Programming》系列丛书。
高德纳捧走了历史上第 9 个图灵碗。因为这一年他只有 36 岁,直到现在,他仍然保持着获奖年龄最小的纪录。
1976年,这本书准备再版,扩充了一些内容。这一次,出版商改用了便宜的电子排版方法,小样完全达不到高德纳要求。
于是,1977年高德纳用了一个夏天,再加一整年的学术休假,执行他的数字排版计划:和学生一起写出了排版程序,名叫TeX。
转年,《计算机编程艺术》的修订版,就用 TeX 排版完成了。
那时的高德纳可能不知道,TeX 会引发学术排版的巨大变革。
谁说程序员没有美感?高德纳以字体设计系统 METAFONT、文学编程和 TeX 颠覆了当时的计算机排版软件,引领了数字出版的革新。
TeX 功能强大、几近无懈可击。TeX 的版本号码也十分有趣。从 TeX 第三版开始,之后的升级是在小数点后加入一个新数位,使之越来越接近圆周率 π 的值。
TeX 目前的版本是 3.141592653.
2025 年 预计出版第五卷:
Volume 5 Syntactic Algorithms, in preparation.
- Lexical scanning (includes also string search and data compression)
- Parsing techniques
Estimated to be ready in 2025.
原定计划的七卷本是什么内容,看下面:
第一册 - 基础算法(Fundamental Algorithms)
第二册 - 半数值算法(Seminumerical Algorithms)
第三册 - 排序与搜索(Sorting and Searching)
第四册 - 组合算法(Combinatorial Algorithms)
第七章 - 组合的搜索(Combinatorial searching)
第五册 - 造句算法(Syntactic Algorithms),计划中(预计2025年完成)。
第六册 - 与上下文无关语言理论(Theory of Context-Free Languages),计划中。
第七册 - 编译器技术(Compiler Techniques),计划中。
祝福高老爷子健康长寿,完成这个鸿篇巨制!
更多的信息请大家查看:https://www-cs-faculty.stanford.edu/~knuth/taocp.html
扩展阅读:
高德纳曾表示,除了《计算机程序设计艺术》系列,自己已经完成了所有的人生目标。
对于接下来的写作,高德纳已经做了清晰的规划:
「在我继续编写第 4 卷和第 5 卷时,我需要参考那些在逻辑上属于第 1—3 卷但在我写这些书时尚未发掘的主题。我不会将这些材料人为地放入第 4 卷或第 5 卷,而是将其制成分册形式。」
「在第 5 卷完成后,我将再次修订第 1—3 卷以使其保持最新状态。然后我将出版第 1—5 卷的读者文摘版,将最重要的材料浓缩成一本书。」
「第 1—5 卷完成后,上帝保佑,我计划出版第 6 卷(语言理论)和第 7 卷(编译器技术)。1—5 卷代表时序机计算机编程的核心,第 6 卷和第 7 卷的主题很重要,但会更专业。」
他也曾解释过自己深居简出的生活方式:「我的全职写作计划意味着我必须成为一个隐士,以便有足够的效率来完成 《计算机程序设计艺术》。唯一的方法是在批量处理模式下操作,不间断地专注于一个主题,而不是在脑海中交换许多主题。我无法安排与访客的约会、参加会议或接受演讲活动,或承担任何类型的新职责。」
2021 年,高德纳在接受《Quanta Magazine》专访时说到:「我平均每周写 5 个新程序。诗人必须写诗,而我必须写计算机程序。」
值得庆幸的是,高德纳老爷子的身体比我们想象得更加康健。一位 HackerNews 用户曾描述了自己几年前拜访高德纳的场景:
几年前,我有幸在 Knuth 家里见到了他,我的妻子正在为他拍摄一些照片。他带我到他的房间,向我展示了他的装置,当时他正在研究 sudoku 算法。他的手速快得惊人,在 emacs 窗格之间移动、触发评估和输出结果,与任何 20 岁的人一样。80 多岁的他,精神似乎没有任何衰退。我开始和他谈论一些最新的人工智能研究,他提到了论文作者,并且已经阅读了它们!他不仅在 84 岁时仍然保持生产力,而且他并没有固定于某一特定学科,而是继续与其他相关领域保持同步。
我只希望他能再活一百岁,让我看到《计算机程序设计艺术》第五、六、七卷完结。