计算机程序设计艺术

计算机程序设计艺术

计算机程序设计艺术_递归

一直想开始阅读《计算机程序设计艺术》,因为这本巨作真的不是短时间能吸收的,更多是畏惧,给自己一个没有时间的借口。不知你是否想挑战一下自己呢?

该书作者计划出版7卷,目前只出版前3卷:1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching。全部写完还遥遥无期。

作者高德纳(Donald Ervin Knuth)因为三卷书获得美国计算机协会1974年图灵奖,该书1999年底被American Scientist列为20世纪最佳12部学术专著之一,与狄拉克的量子力学、爱因斯坦的相对论、曼德布罗特的分形论、鲍林的化学键、罗素和怀特海德的数学基础、冯诺意曼和摩根斯坦的博弈论、维纳的控制论、伍德沃和霍夫曼的轨道对称性、费曼的量子电动力学等科学史上的经典著作并列。

《计算机程序设计艺术》是Knuth一生中最重要的事业,他写这本书的目的是“组织和总结所知道的计算机方法的相关知识,并打下坚实的数学、历史基础”。

 

我们简单看下卷的结构情况:

第一册 – 基础算法(Fundamental Algorithms)

  • 第一章 – 基本观念(Basic concepts)
  • 第二章 – 资讯结构(Information structures)

第二册 – 半数值算法(Seminumerical Algorithms)

  • 第三章 – 随机数(Random numbers)
  • 第四章 – 算数(Arithmetic)

第三册 – 排序与搜寻(Sorting and Searching)

  • 第五章 – 排序(Sorting)
  • 第六章 – 搜寻(Searching)

第四册 –
组合算法 (Combinatorial Algorithms),准备中(截至2009年4月五个分册已经出版了),测试版本已上载到
Knuth’s的网站).

  • 第4A卷, 列举与回溯(Enumeration and Backtracking)
    • 第七章 – 组合的搜寻(Combinatorial searching)
  • 第4B卷, 图形与网络算法(Graph and Network Algorithms)
    • 第七章续(continued)
  • 第4C及4D(可能)卷, 最佳化与递归(Optimization and Recursion)
    • 第七章续(continued)
    • 第八章 – 递归(Recursion)

第五册 – 造句算法(Syntactic Algorithms), 计划中(预计2015年完成).

  • 第九章 – 语句扫描(Lexical scanning)
  • 第十章 – 剖析技术(Parsing techniques)

第六册 – 与上下文无关语言理论(Theory of Context-Free Languages), 计划中 第七册 – 编译器技术(Compiler Techniques),计划中

 

以上资料参考维基中国。

American Scientist Online

Association for Computing Machinery

这里给个电子版下载地址,有99%的人下下来之后放在电脑上而不会阅读超过20页^^

除了那些有着出众毅力的人。

 

最后附上图灵奖获得者一览

年份
中文译名
姓名
贡献领域

1966年
艾伦·佩利
Alan J. Perlis
高级程序设计技巧,编译器构造

1967年
莫里斯·威尔克斯
Maurice V. Wilkes
存储程序式计算机EDSAC, 程序

1968年
理查德·卫斯里·汉明
Richard Hamming
数值方法,自动编码系统,错误检测和纠错码

1969年
马文·闵斯基
Marvin Minsky
人工智能

1970年
詹姆斯·维尔金森
James H. Wilkinson
数值分析,线性代数,“倒退”错误分析

1971年
约翰·麦卡锡
John McCarthy
人工智能

1972年
艾兹格·迪科斯彻
Edsger Dijkstra
程序设计语言的科学与艺术

1973年
查理士·巴赫曼
Charles W. Bachman
数据库技术

1974年
高德纳
Donald E. Knuth
算法分析、程序设计语言的设计、程序设计

1975年
艾伦·纽厄尔
赫伯特·西蒙
Allen Newell
Herbert A. Simon
人工智能,人类认知心理学和列表处理 (list processing)

1976年
迈克尔·拉宾
达纳·斯科特
Michael O. Rabin
Dana S. Scott
非确定性自动机

1977年
约翰·巴克斯
John Backus
高级编程系统,程序设计语言规范的形式化定义

1978年
罗伯特·弗洛伊德
Robert W. Floyd
设计高效可靠软件的方法学

1979年
肯尼斯·艾佛森
Kenneth E. Iverson
程序设计语言和数学符号,互动系统的设计,运用 APL进行教学,程序设计语言的理论与实践

1980年
安东尼·何珥
C. Antony R. Hoare
程序设计语言的定义与设计

1981年
埃德加·科德
Edgar F. Codd
数据库系统,尤其是关系型数据库

1982年
史提芬·古克
Stephen A. Cook
计算复杂度

1983年
肯·汤普逊
丹尼斯·里奇
Ken Thompson
Dennis M. Ritchie
UNIX操作系统和C语言

1984年
尼古拉斯·沃斯
Niklaus Wirth
程序设计语言设计、程序设计

1985年
理查德·卡普
Richard M. Karp
算法理论,尤其是NP-完全性理论

1986年
约翰·霍普克罗夫特
罗伯特·塔扬
John Hopcroft
Robert Tarjan
算法和数据结构的设计与分析

1987年
约翰·科克
John Cocke
编译理论,大型系统的体系结构,及精简指令集(RISC)计算机的开发

1988年
伊凡·苏泽兰
Ivan Sutherland
计算机图形学

1989年
威廉·卡亨
William (Velvel) Kahan
数值分析

1990年
费尔南多·考巴托
Fernando J. Corbató
CTSSMultics

1991年
罗宾·米尔纳
Robin Milner
LCFML语言CCS

1992年
巴特勒·兰普森
Butler W. Lampson
分布式,个人计算环境

1993年
尤里斯·哈特马尼斯
理查德·斯特恩斯
Juris Hartmanis
Richard E. Stearns
计算复杂度理论

1994年
爱德华·费根鲍姆
拉吉·瑞迪
Edward Feigenbaum
Raj Reddy
大规模人工智能系统

1995年
曼纽尔·布卢姆
Manuel Blum
计算复杂度理论,及其在密码学和程序校验上的应用

1996年
艾米尔·伯努利
Amir Pnueli
时序逻辑,程序与系统验证

1997年
道格拉斯·恩格尔巴特
Douglas Engelbart
互动计算

1998年
詹姆斯·尼古拉·格雷
James Gray
数据库与事务处理

1999年
弗雷德里克·布鲁克斯
Frederick P. Brooks, Jr.
计算机体系结构操作系统软件工程

2000年
姚期智
Andrew Chi-Chih Yao
计算理论,包括伪随机数生成,密码学与通信复杂度

2001年
奥利-约翰·达尔
克利斯登·奈加特
Ole-Johan Dahl
Kristen Nygaard
面向对象编程

2002年
罗纳德·李维斯特
阿迪·萨莫尔
伦纳德·阿德曼
Ronald L. Rivest
Adi Shamir
Leonard M. Adleman
公钥密码学RSA加密算法

2003年
阿伦·凯
Alan Kay
面向对象编程

2004年
文特·瑟夫
罗伯特·卡恩
Vinton G. Cerf
Robert E. Kahn
TCP/IP协议

2005年
彼得·诺尔
Peter Naur
Algol 60语言

2006年
法兰西斯·艾伦
Frances E. Allen
优化编译器

2007年[1]
爱德蒙·克拉克
艾伦·爱默生
约瑟夫·斯发基斯
Edmund M. Clarke
Allen Emerson
Joseph Sifakis
开发自动化方法检测计算机硬件和软件中的设计错误

2008年
芭芭拉·利斯科夫
Barbara Liskov
编程语言和系统设计的实践与理论

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/39652.html

(0)
编程小号编程小号
上一篇 2023-07-18
下一篇 2023-07-18

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注