Wednesday, November 09, 2011

TAOCP Vol1 3rd Edtion 之蜻蜓点水

阅读Knuth的书有一种愉悦感,即使是前言,即便仅限于前言;
老先生的技术水准当如泰山北斗,非我辈可以置喙,可贵的是:文笔清晰流畅,态度诚恳,间或还小幽默一句,读之不禁让人莞尔;
本书内容囊括非数值类算法分析中最为经典的部分,计划出7卷,目前出到第四卷(以分册形式);
老先生写作本书的目的有二:
  • 是对算法各领域的知识进行总结,属参考手册类(reference)
  • 作为教材使用,配备了大量习题和答案(出乎我的意料)
全书总体结构如下

  • 基本算法
  • 半数值算法
  • 排序和搜索
  • 组合算法
  • 句法算法
  • 语言理论
  • 编译器

 前言特别指出:本书对读者的数学水平要求不高,掌握初等代数即可应付本书的大部分内容;此外,只对编程感兴趣的读者可将数学推导及证明略去不看,但要记住结论;pongba似乎不赞同这一说法;
可将本书第一卷视为3类教材的合集:数据结构、离散数学以及机器语言编程(是描述计算机体系结构、还是介绍MIX编程,还是兼而有之?存疑

由前言后的流程图可知:本卷为必读卷,是后续各卷的基石,后续各卷则可独立阅读。

此外,本书的独特之处在于:算法描述采用的计算机语言为MIX(后续有MMIX,见第一卷第1分册),以一种虚拟计算机为模型构建,可谓胆大包天、匠心独具;回顾起来,这一抽象还真摆脱了对历史的依附。在其所罗列的6点理由中,我尤其对a与f印象深刻,a充分点出计算机语言在人与机器间所处的两难境地(虽然此处是站在机器和算法的角度来表述的,换言之,在语言的设计中,不是简单的选队、站队问题,而是复杂的折中、权衡问题);f则是历史更迭的必然产物;

本书习题含有各种标记:0~50的分数、M/HM标记以及箭头

0 comments: