描述
开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787557687755
畅销全球,累计被翻译成十多种语言,计算机领域的经典之作!
世界上运行zui快的计算机的设计者丹尼尔·希利斯,为你揭示计算机运行背后永恒不变的基本原理!
“科学大师书系”经典再现。中国科学院院士、复旦大学教授金力,科技创新研究者、清华大学教授陈劲,世界著名哲学家、《直觉泵和其他思考工具》作者丹尼尔·丹尼特重磅推荐!
湛庐文化出品。
虽然计算机技术及应用以及编程技术都取得了巨大进步,对社会产生的影响也远远超出了预言家的预期,但计算机背后的工作原理,即本书所阐述的关于计算机的概念,仍没有改变。本书聚焦计算机背后不曾改变的基本原理,是每一个想要了解计算机,或从事与计算机相关工作的读者都不能错过的一本经典之作。
《丹尼尔·希利斯讲计算机》深入浅出地阐述了计算机科学中许多基本而重要的概念,包括布尔逻辑、有限自动机、编程语言、图灵机的普遍性、信息论、算法、并行计算、量子计算、神经网络、机器学习乃至自组织系统。全书既不失深度,又妙趣横生,帮你了解计算机运行背后的奥秘。
前 言 石头中的魔术- 001
01基础知识- 007
布尔逻辑 010
二进制位和逻辑块 021
液压计算机 025
工匠—积木 029
不必担忧那些非同小可的差异 031
02通用构件- 033
逻辑功能 035
有限状态机 047
03编程- 059
与计算机对话 063
建立连接关系 077
翻译语言 086
层次结构 087
04图灵机的通用性- 089
图灵机 092
计算能力等级 094
随机数 097
可计算性 099
量子计算 103
05算法和启发式方法- 111
算法的保证性 114
解决问题的方法 121
适应度地形 127
06存储:信息和密码- 131
压缩 136
加密 144
查错 146
07速度:并行计算机- 153
并行性 157
08能自我学习和进化的计算机- 173
训练计算机 179
神经网络 182
自组织系统 189
09超越工程- 193
大脑 197
模块化的问题 201
模拟进化 203
进化出会思维的机器 207
致 谢
计算机背后不曾改变的基本原理
本书初版问世很久之后,我的出版商惊讶地发现:它在当下仍然很受欢迎。这也是我有机会为本书写再版前言的原因。本书已被翻译为十几种语言,至今仍有众多读者。自本书问世以来,计算机技术及应用发生了天翻地覆的变化。不过本书并不着眼于计算机的具体技术及应用,而是关注计算机背后不曾改变的基本原理,这也是本书能持续热卖的关键所在。
我必须承认,令我感到诧异的不是在数字革命之初就已存在的那些关于计算机科学的原理如今依然很重要,而是迄今为止,几乎没有新的原理补充进来。10 多年过去了,虽然计算机技术及应用以及编程技术都取得了巨大进步,对社会产生的影响也远远超出了预言家的预期,但计算机背后的工作原理,即本书所阐述的关于计算机的概念,仍没有改变。我本来想利用再版的机会增添一些新内容,但令我感到吃惊的是,并无新的基本原理可供补充。
在目前的版本中,我选择性地删除了一些无须再费笔墨解释的概念。不过,这并非意味着这些内容是错误的。例如,在一个每天都享受云并行计算服务的读者看来,并行计算方面的内容并无新意。真正令人费解的是,为何20 世纪有如此多的专家都坚信,并行计算机永远不会被投入使用。此外,如今的你们可能会对本书中有关人工智能的观点有所抵触,因为目前你们与智能机器相处得十分融洽。事实上,20 世纪时许多人对智能计算机的概念感到惶恐不安,比如,当计算机次击败人类国际象棋冠军时,许多人感到很沮丧。然而,过了不到20 年,当计算机在一项流行的益智电视节目中再次击败人类冠军时,更多人开始为计算机鼓劲加油。从那时起,人们普遍将计算机视为助手而非威胁。
除了修订拼写错误之外,我尽可能地保持了本书初版的原汁原味,不去刻意提高文字的感性程度,实际上,感性是一种不断变化的浮动目标。与其紧跟必将过时的当下潮流,还不如让作品定格在某一时刻更为有趣。同时,本书写成于计算机科学发展历程中的一个特殊时期,虽然那时计算机已经显示出了足以改变我们生活的潜力,但这一切很大程度上还未实现。那时的计算机非常简单,以至于我对自己设计的计算机的每个晶体管和所编写的每行代码都了如指掌。不过,正如本书后一章预期的那样,我们现在到达了一个临界点,即计算机系统的复杂度已经超出了任何人所能完全理解和掌握的程度。
关于未来的发展,本书提出了两个可能的方向。个是量子计算,正如书中所述,它具有巨大的潜力,但目前并无可行的实现方式。当我写下这句话时,现实情况仍是如此。从理论和技术方面来说,量子计算取得了巨大突破,但它们中的任何一个的计算速度都比不上传统计算机。正如本书初版所述,量子计算仍是“一个值得关注的领域”。本书预测的第二个可能方向是,计算机能像生物进化过程那样实现自我设计。目前,这个方向已经显现出了隐约的曙光,不过在很大程度上,它只是一个未实现的可能方案。目前,我们还缺乏相关理论来说明这个过程如何才能成为现实。我对未来发现这些新原理持乐观态度,期待能够在本书的后续版本中继续讨论。
[前言]
石头中的魔术
在一块石头上,我蚀刻了一系列几何图案,在外行看来,这些图案显得神秘而又复杂,但我清楚地知道,只要布局正确,这些图案就会赋予这块石头一种特殊的能力,即对人类从未说过的一种咒语做出回应。如果我用这种语言提问,石头便会应答:这是一个我用符咒创造的世界,一个在石头图案中想象的世界。
如果我在几百年前的老家新英格兰说出自己从事的职业,可能会被当作巫师送上火刑柱。实际上,我的工作和巫术没有任何关系,我从事的是计算机设计和编程,而上文提到的石头是硅晶片,符咒是软件程序。虽然蚀刻在芯片上的几何图案和指示计算机工作的程序看起来复杂且神秘,但根据一些基本的生成原理,我们很容易将其解释清楚。
虽然计算机是人类有史以来复杂的人造物,但从基本原理上来说,它们又十分简单,仅有数十人的团队就能设计并制造出包含数十亿个零部件的各类计算机。如果将其中一台计算机的线路图在纸上画出来,那么所用的纸张便能塞满一座大型公共图书馆,没有人会有耐心将其浏览一遍。幸运的是,计算机的设计具有规律性,没有必要将线路图看一遍。计算机是由不同层次的部件构建起来的,而每一层次的部件都会被重复多次。只要理解了这些层次结构,你就能读懂计算机。
还有一个使计算机易于理解的原理,那就是其各部件之间交互作用的本质。这些交互作用很简单,而且定义明确,通常具有单向性,可以准确地排列成一系列因果关系,这使计算机内部的运行原理比汽车发动机或者收音机的运行原理更容易理解。虽然相比于汽车和收音机,计算机拥有更多零部件,但这些部件协同工作的方式非常简单。计算机更多依据的是概念,而非技术。
这些概念与组成计算机的电子元件没有任何关系。现代计算机由晶体管和电路组成,不过,根据同样的原理,计算机也可以由阀门和管道,或者棍棒和绳索搭建起来。这些原理是计算机能够进行计算的根本所在。计算机引人称道的一点是,其本质远胜于技术,而本书就旨在介绍计算机的本质。
我多么希望在刚开始学习计算机这门学科时就能读到这样一本书。大多数计算机类书籍不是介绍计算机的使用方法,便是介绍具体的创造技术,比如只读存储器(ROM)、随机存储器(RAM)、磁盘驱动器等。这本书讨论的重点是“概念”,而且会介绍计算机科学领域的大多数重要概念,包括布尔逻辑、有限状态机、编程语言、编译程序和解释程序、图灵准则、信息论、算法及其复杂度、启发式方法、不可计算的函数、并行计算、量子计算、神经网络、机器学习和自组织系统等。对计算机感兴趣的读者可能已经听说过其中的许多概念,但对于非计算机专业出身的人来说,很难明白这些概念是如何结合在一起的。本书将会介绍这些关联—从类似开关的闭合等简单的物理过程开始,一直深入到自组织并行计算机所呈现出来的学习和自适应能力。
计算机的本质基于几条基本原则。条原则是功能抽象原理(functional abstraction),它奠定了前文提到的因果关系层次结构。计算机的结构就是这一原理的应用范例,即许多层次结构能够被不断重复。计算机之所以易于理解,是因为你可以专注于某一层次结构发生的情况,而不必担心较低层次结构上发生的细节。功能抽象原理是使概念与技术脱离的关键。
第二条原则是通用计算机原理(universal computer),即所有的计算机都属于同一种类型,更确切地说,所有类型的计算机在能做和不能做哪些事上是相似的。我们也可以这样说,一台通用计算机能够模拟所有类型的计算机,无论其组成材料是晶体管、棍棒、绳索,还是神经元。这是一个非常重要的假设,它表明,制造一台能像大脑一样思考的计算机只是一个进行正确编程的问题,我将在后面详细解释这一点。
从某种意义上来说,第三条原则是条原则的对立面,我将在后一章展开详述。也许存在一种全新的计算机设计和编程方式,它并不基于标准的工程设计方式。这一设想令人感到无比兴奋,因为当系统过于复杂时,常规的系统设计方式将不再有效。实际上,条原则会导致系统带有一定程度的脆弱性和低效性。这个缺点与信息处理器的基础性缺陷没有关系,而是层次设计方式的一个缺陷。那么,如果我们采用一种与生物进化相似的设计过程,情况会如何呢?在这个设计过程中,系统行为源自很多简单交互作用的累积,而非“自上而下”的控制。通过这种进化过程设计出来的计算机可能具有生物体的某些健壮性和适应性。至少,这是一种希望。我们还未完全参透这一设计方式,它也可能会被证明行不通。这是目前我研究的一个课题。
“科学大师书系”重点在于大师,这10本书的作者既是世界一流的思想者,又是文采斐然的科普作家。去读他们的书吧,你将直接站在大师的肩膀上!
——金力
中国科学院院士,复旦大学教授
历代科学家对宇宙、生命的起源与运行进行了永不竭尽的探索,他们完成的研究成果以及在科研过程中表现出的追求真理的精神,一直是人类知识发展和道德进化的宝贵财富。在未来的发展进程中,基于科学的创新将日益重要,中国需要更多的科学家。熟读科学大师系列,将进一步激发广大有志者献身科学的动力以及提高科学研究的成功率。
——陈劲
科技创新研究者,清华大学教授
我将“科学大师书系”视为向这个世界撒下的一张大网,它捕获的将是我们这颗行星的下一代思想家和科学家。
——丹尼尔·丹尼特
世界著名哲学家,《直觉泵和其他思考工具》作者
01基础知识
计算机的构建基础包括布尔逻辑、二进制、逻辑块等。如果有一天计算机的硬件设备被淘汰,这些基础都将依然保持正确。
小时候,我读过这样一个故事,一个男孩用从垃圾场收集的零件组装出了一个机器人,这个机器人可以像人一样走路、说话和思考,并成为男孩的朋友。不知何故,我被制造机器人的想法深深地吸引了,因此决定也动手组装一个。我对当时收集各部位零件的情景还记忆犹新:用管子作四肢,马达作肌肉,灯泡作眼睛,油漆桶作脑袋。我满怀希望地期待当自己完成组装、插上电源之后,就能拥有一个正常运作的机器人。
在经历了几次严重的触电事故后,我的机器人终于可以移动和发光了,而且还会发出“嗡嗡”的声音。我感觉自己有所长进,而且我还懂得了如何为四肢制造活动关节。不过,当时我面临的问题是,该如何控制那些马达和灯泡。后来,我意识到自己是对机器人的工作原理缺乏了解,而现在,我知道当时缺乏的知识是什么了—计算,当时我称之为“思维”,我毫不知晓如何才能让某个物体具备思维能力。现在,我清楚地知道,计算才是制造机器人难的部分,而当时还是小孩的我很难意识到这一点。
布尔逻辑
幸运的是,我读的本有关计算机的书是一本经典之作。我的父亲是一位流行病学家,那时我们居住在加尔各答,很难读到英文著作。在英国领事馆的图书室里,我找到了一本表面布满灰尘的书,作者是19 世纪的逻辑学家乔治·布尔(George Boole),书名为《思维规律的研究》(AnInvestigation of the Laws of Thought )。这个书名立刻吸引了我,
令我心驰神往,难道真的存在支配思维的法则吗?在这本书中,布尔试图将人类的思维逻辑简化为数学运算。他虽然没有真正解释清楚人类的思维过程,但道出了简单的逻辑运算的惊人力量和普适性。他还发明了一种语言,可以用来描述和处理逻辑陈述,以及判定这些陈述的真假。这种语言现在被称为布尔代数(Boolean algebra)。布尔代数与我们在高中所学的代数相似,差别仅在于等式中的变量所代表的东西从数字变成了逻辑命题。布尔变量代表非真即假的命题,符号∧、∨、¬ 分别代表“与”“或”“非”逻辑运算。例如下列的布尔代数方程:
¬(A ∨B)=(¬ A )∧(¬ B)
这个方程被称为德·摩根定律,是以布尔的同事奥古斯都·德·摩根(Augustus De Morgan)的名字命名的,其含义为:如果A 和B 无一为真,则两者皆必然为假。变量A 和B 可以表示任意非真即假的逻辑命题。显然,这个方程是成立的。不过,布尔代数还能写出更加复杂的逻辑命题,并能进行证明和反证。
麻省理工学院曾有一位年轻的工程学硕士,他通过一篇论文将布尔的理论引入了计算机科学领域,使其大放异彩,这位学生名叫克劳德·香农(Claude Shannon)。香农广为人知的成就是创立了信息论,信息论是数学的一个分支,这门分支定义了我们称为“二进制位”(又叫比特)的信息度量单位。二进制位概念的提出是一项了不起的成就。对于计算科学来说,香农利用布尔逻辑所做的工作也同样重要。香农的这两项成就为之后50 年计算机科学的发展奠定了基础。
香农曾致力于创造一台会下国际象棋的机器,更确切地说是一台能模拟人类思维的机器。1940 年,他在硕士论文《继电器与开关电路的符号分析》(A Symbolic Analysis of Relay Switching Circuits )中表明,构建一个与布尔代数方程完全等价的电路是可能的。在香农设计的电路中,开关的开启和关闭对应着布尔代数逻辑变量值的真与假。香农提出了一种方法,可以将布尔代数方程转化为开关组合。当命题为真时,电路建立连接,当命题为假时,电路则断开连接。这种方法意味着,任何能由布尔逻辑命题精确描述的功能都可用类似的开关系统来实现。
与其详述布尔和香农建立的理论框架,我们不如举例来说明其理论在实际中的应用,以我设计的一台井字游戏机为例。虽然相比于通用的计算机,这个游戏机非常简单,但它体现了对所有计算机来说都非常重要的两大原理:如何将一项任务转化为一系列逻辑函数,以及如何用由开关连接起来的电路实现这些函数。当我读完布尔的书之后,就用灯泡和开关搭建了一个井字游戏机,这是我对计算机逻辑的初次涉猎。后来,我去了麻省理工学院读本科,香农成了我的良师益友。我惊奇地发现,他也曾用灯泡和开关搭建过井字游戏机。
评论
还没有评论。