莱布尼茨、巴贝奇、布什、豪列利特都做出了哪些贡献?


第8章 研制第一批通用计算机
谁发明了计算机?
现代计算机是逻辑与工程的复杂混合体,单独挑出一人作为发明者是可笑的。然而1973年,在解决一场专利纠纷(Sperry Rand和Honeywell)的过程中,有一位法官差不多就下了这样的结论。随着我们的故事从背后的逻辑思想转到现代通用计算机的实际制造,工程问题以及能够有效应对这些问题的人便走上了前台。计算史已经给出了各不相同的说法,在继续我们的故事之前,我们最好先简要回顾一下这些人物:
约瑟夫—玛丽·雅卡尔(1752—1834)雅卡尔织布机是一种可以用一堆穿孔卡片来控制编织纹样的织布机器,它首先在法国引发了纺织业的革命,最后席卷了全世界。职业织工往往不无夸张地说,这就是第一台计算机。尽管它是一项奇妙的发明,但雅卡尔织布机与其说是一台计算机,不如说是一架自动钢琴。因为它就像自动钢琴那样,可以通过在输入介质上打孔来自动控制一台机械装置。
查尔斯·巴贝奇(1791—1871)参见第7章开头。巴贝奇建议把雅卡尔那样的穿孔卡片用到他没有制造出来的分析机上。他的想法类似于雅卡尔关于织布机的想法。
爱达·洛甫莱斯(1815—1852)她的父亲拜伦爵士在她一岁之后就再没见过她。她对数学,特别是对巴贝奇的分析机有很大的热情。她翻译了一本有关分析机的法文研究报告,并且经巴贝奇的同意,在其中加入了自己的注释。她被称为世界上第一位计算机程序员,为了纪念她,有一种主要的编程语言就是以她的名字“爱达”命名的。她把分析机与雅卡尔织布机联系起来的名言常常被人引用:
我们也许可以非常恰当地说,分析机编织的代数模式和雅卡尔织布机编织的花和叶完全一样。
克劳德·仙农(1916—2001)仙农在麻省理工学院所做的硕士论文中,说明了乔治·布尔的逻辑代数如何能被用于设计复杂的开关电路。这篇论文“有助于把数字电路设计从一门技术转变成一门科学。”他的信息论在当代通信技术中起着至关重要的作用。仙农在计算机下棋的算法方面做了先驱性的工作。他说明了如何就可以制造出一台仅有两个状态的通用图灵机。(当我1953年在贝尔实验室做暑期工作时,仙农是我的上司。)
霍华德·艾肯(1900—1973)参见第7章开头。1944年,他为哈佛大学设计的、IBM用电子继电器制造的“自动序列受控计算机”研制成功,它可以完成巴贝奇所设想的任何任务。在为物理学家和工程师的数字压缩研制了一台专用机器之后,艾肯发现,通用机很难有效地处理这种计算。
约翰·阿塔纳索夫(1903—1995)这位衣阿华州立大学的不大引人注意的物理学家(和他的助手克利福德·贝利一起)基于美国参加二战时的真空管电子学,设计并制造出了一台专用的小型计算机。尽管这台机器只能处理非常特殊的问题,但它的重要性体现在它能够证明真空管电路对于计算的重要性。
约翰·莫齐利(1907—1980)莫齐利的先见之明为世界上第一台大型数字处理电子计算机ENIAC在费城宾夕法尼亚大学的摩尔电子工程学院的成功研制打下了基础。莫齐利也是一个物理学家,他曾经访问了阿塔纳索夫在埃姆斯和衣阿华的实验室,并有机会研究了在那里制造的电子计算机。
约翰·普瑞斯伯·埃克特(1909—1995)埃克特是一位卓越的电气工程师,他的工作为ENIAC的成功研制起到了关键性的作用。
赫尔曼·戈德斯坦(1913—)数学家赫尔曼·戈德斯坦于1942年入伍,他被派到美国陆军军械弹道研究实验室当一名中尉。作为ENIAC项目的军方代表,他把冯·诺依曼吸收到了摩尔学院的小组中。在后来与埃克特和莫齐利的争论中,他支持冯·诺依曼一方。战争结束后,他成了冯·诺依曼在计算方面的工作的主要合作者。他关于计算史的书[Goldstine]强调了冯·诺依曼的地位,并因此而受到指责。(1954年,我如果要使用高等研究院的计算机,就要向他提出申请。)
厄尔·R.拉尔松(1911—)他是美国地方法院法官。1973年,他裁定埃克特和莫齐利关于ENIAC的专利权是无效的。他的意见包括:
埃克特和莫齐利并不是最先发明自动电子数字计算机的人,他们的机器来源于约翰·文森特·阿塔纳索夫博士的机器。
约翰·冯·诺依曼与摩尔学院
正如我们已经看到的,1930年在柯尼斯堡召开的数学基础研讨会上,约翰·冯·诺依曼承担了解释希尔伯特纲领的任务。正是在这次会议上,库尔特·哥德尔抛出了令人震惊的消息,说他已经证明了包含初等数论在内的数学形式系统必然是不完备的,冯·诺依曼显然是第一个领会到哥德尔工作的重要性的人。不久以后,冯·诺依曼非常激动地给哥德尔写信说:“我得到了一个非常漂亮的结果。我能够说明数学的一致性是不可证的。”冯·诺依曼发现,用哥德尔的方法可以证明,希尔伯特所设想的那些系统不足以证明其自身的完备性。正如我们已经指出的,当哥德尔接到这封信时,他已经得到了同样的结论,并在回信时寄出了一份包含这一结果的摘要。
冯·诺依曼是一个既虚荣又卓越的人,他很善于通过纯粹的理智力量在一门数学学科上留下自己的名字。他曾经在算术的一致性问题上花费了不少精力,在柯尼斯堡的研讨会上,他不遗余力地支持希尔伯特纲领。在认识到哥德尔的工作的深刻内涵之后,他又进而证明了一致性的不可证性,不料哥德尔竟走在了他的前头。这就够了。尽管他对哥德尔钦佩有加(他甚至就哥德尔的工作做过讲演),但他发誓再也不跟逻辑打交道了,据说他曾夸口说,在哥德尔之后,他从未读过一篇逻辑方面的论文,逻辑已经使他蒙羞,而他又并不习惯于受辱。即便如此,事实证明,这个誓言并没有被遵守,因为冯·诺依曼对强大的计算机器的需要最终使他又回到了逻辑。
和图灵一样,冯·诺依曼在战争期间的工作需要进行大规模的计算。然而,虽然布莱奇利庄园的密码分析工作主要强调涉及符号模式的计算,但冯·诺依曼却需要进行老式的繁重的数字处理。毫不奇怪,他欣然加入了费城电子工程摩尔学院的一个令人激动的项目——研制一台强大的电子计算机ENIAC。30岁的数学家赫尔曼·戈德斯坦让冯·诺依曼加入了ENIAC计划。正如戈德斯坦所说,1944年夏,他们两人第一次在火车站见面,在此之后,冯·诺依曼很快就加入到了费城的讨论中。
如果说拥有1500根真空管的英国“巨人”电子计算机是一件工程奇迹的话,那么有着18000根真空管的ENIAC就简直令人震惊了。当时的传统看法认为,这样的配置不可能有效地工作,因为每过几秒钟就肯定会有一根真空管坏掉。ENIAC的首席工程师约翰·普瑞斯伯·埃克特是这个项目得以成功的关键人物,他要求每一个部件的可靠性都能达到非常高的标准。真空管在尽可能保守的功率水平上工作,以使真空管的损坏率保持在每星期3根。这件庞然大物塞满了一个巨大的房间,通过把缆线连接在一块很像旧式电话交换机的线路连接板上来编写程序。ENIAC模仿了当时最成功的计算机器——微分分析器。微分分析器并不是对由数字排成的数直接进行运算的数字设备,而是用可测的物理量(如电流或电压)把数表示出来,把各个部件连接在一起以模拟所需的数学运算。这些模拟机的精确度受到了测量仪器的限制。ENIAC是一台数字设备,它是能够处理与微分分析器相同的数学问题的第一台电子机。它的设计者使它的部件发挥与微分分析器的部件类似的作用,更大的速度和精确度则依赖于真空管电子学的接受能力。
当冯·诺依曼开始与摩尔学院进行讨论的时候,ENIAC的研制成功已经没有什么重要的障碍了,人们开始把注意力转向下一台计算机,它的名称暂定为EDVAC(电子离散变量自动计算机)。冯·诺依曼立即开始研究新机器的逻辑结构。戈德斯坦回忆说:
埃克特很高兴看到冯·诺依曼对与新思想有关的逻辑问题如此感兴趣,这些会面属于最伟大的智力活动。
这项为新机器设计逻辑方案的工作正合冯·诺依曼的心意,正是在这里,他以前关于形式逻辑的工作才起到了决定性的作用。在他出场之前,摩尔学院的小组主要关注于技术问题,而当他来了之后,他成了逻辑问题的领导者。
1945年6月,冯·诺依曼提出了他著名的“关于EDVAC的报告草案”,他实际上是主张把马上就要建造的EDVAC作为图灵通用机的一个物理模型实现出来。就像抽象装置上的纸带一样,EDVAC具有存储能力——冯·诺依曼称之为“存储器”,它既存储数据,又存储代码指令。为了实用,EDVAC有一个能够在一步之内执行每一条算术基本操作(加、减、乘、除)的算术器件,而在图灵的原始概念中,这些操作需要用像“向左移动一格”这样的原始操作来建立。EDVAC把算术运算用在了十进制数上,而EDVAC则会享受到二进制符号可能带来的简洁。ENIAC还包含一个实现逻辑控制的器件,它把需要执行的指令(每次执行一条)从存储器转移到算术器件。计算机的这种组织方式后来被称为“冯·诺依曼结构”,今天绝大多数计算机仍然是按照这种非常基本的方案进行组织的,尽管它们的部件已经与EDVAC大相径庭了。
EDVAC报告从未超出草案阶段,它从几个方面来说都是不完整的。特别是,有许多地方都应加上出处。图灵的名字从未被提及,但他的影响却是有目共睹的。EDVAC应当是通用的,这一概念被提到了不止一次。与图灵类似,冯·诺依曼也猜想人脑的某些显著能力源于它拥有通用计算机的能力。在EDVAC报告中,冯·诺依曼曾多次提到人脑和他所讨论的机器之间的类比。他注意到,真空管电路可以被设计得就像我们大脑中的神经元一样以多种方式运转,他还论述了EDVAC所需的算术器件和逻辑控制器件都可以由这种电路制成,而暂时没有考虑工程技术细节。虽然这份报告几乎完全缺少出处,但它却一再提到两位麻省理工学院的研究者于1943年发表的一篇论文,这篇论文讨论的就是这样一种关于理想化的“神经元”的数学理论。其中的一位作者后来说,他们曾直接受到图灵1936年的文章的启发(就是阐述他的通用机的那一篇),事实上,这篇文章仅有的参考文献就是图灵的那篇文章。更有启发意义的是,文章的作者还不辞辛苦地证明了通用图灵机可以用他们的理想化神经元来模拟,并认为主要是由于这一事实,他们的工作才没有走错方向。
埃克特和莫齐利对冯·诺依曼只在EDVAC报告上写下了自己的名字非常不满。争论的原因之一就是,EDVAC报告中到底有多少属于冯·诺依曼个人的贡献,这个问题也许永远都无法得到最终解决。尽管埃克特和莫齐利后来否认冯·诺依曼曾经贡献过许多,但在报告发布后不久,他们写道:
从1944年的下半年一直到现在,我们可以幸运地请教……约翰·冯·诺依曼博士。他在关于EDVAC的逻辑控制的讨论中贡献良多,制定了指令代码,并为具体问题写出了代码指令以检验这些系统。冯·诺依曼博士还写了一份初步的报告,早期讨论的多数结果都在其中进行了概括。……在他的报告中,物理结构和物理装置……被理想化的元素代替了,以免引起工程上的问题,因为这会分散逻辑考虑的注意力。
冯·诺依曼希望他所说的机器实际上已经充分接近通用机了,这一点还有其他的证据。他强调一台计算机的“逻辑控制”对于它的“尽可能地接近通用”是至关重要的。为了检验EDVAC的普适性,冯·诺依曼第一次认真写出了一个程序,它不是要应用于数字处理(这是研制机器的主要目的),而是要有效地给数据分类。这个程序的成功使他确信,“基于现在已经掌握的证据,我们可以合理地得出结论说,EDVAC已经非常接近于‘通用’机器了,目前的逻辑控制原理相当可靠”。
冯·诺依曼在EDVAC报告发表的那一年里所写的文章表明,他很清楚电子计算机的设计背后的原理的逻辑基础。有一篇文章的引言是这样的:
在本文中,我们将尝试不仅从数学的观点,而且从工程师和逻辑学家(即真正适合设计科学工具的个人或一群人)的观点来探讨[大规模计算]机器。
另一篇文章显然暗示了图灵的思想,尽管它强调纯逻辑的考虑是不够的:
通过形式—逻辑的方法,我们很容易理解,足以控制和执行任何操作序列的抽象代码是存在的,它们可以在机器中单个使用,其整体又可以被问题计划者所设想。从目前的观点来看,在选择一个代码时,真正决定性的考虑是一种更为实际的性质:代码所要求的装置的简洁性、它运用于实际重要问题上的清晰性以及它处理这些问题的速度。一般性地或者从第一原理讨论这些问题将使我们离题太远。
我们知道,第二次世界大战之后发展出来的计算机与早期的自动计算机之间有着本质性的区别。但这种区别的本质却很少有人理解。这些战后的机器都被设计成了适用于各种目的的通用装置,只要过程中的步骤被明确指定,它们就能够执行任何符号过程。有些过程所要求的存储器可能超出了实际所能达到的程度,要么就是速度过慢而不适用,所以这些机器只能是图灵理想化的通用机的近似。然而,它们有一个巨大的存储器(与图灵机的无限长的纸带相对应)却是至关重要的,只有这样,指令和数据才能共存于其中。指令和数据之间的这种变动的界限就意味着,我们可以设计出把其他程序当成数据的程序。早期的程序员主要就是利用这种自由度来设计出能够更改自身的程序。在人们普遍使用操作系统和程序设计语言的分层的今天,更为复杂的应用已经成为可能。对于一个操作系统而言,它所启动的程序(比如你的字处理器或电子邮件程序)就是供它操作的数据,只要每一个程序都有它自身的存储部分,而且(当处理多重任务时)能够记录所要完成的每一项任务的进程。汇编程序把用今天常用的某种语言写成的程序翻译成可以被计算机直接执行的指令:对于汇编程序而言,这些程序就是数据。
在具备了ENIAC和“巨人”的经验之后,那些对计算装置感兴趣的人所能够满足的运算速度将不会低于他们所知的真空管电子学所能达到的速度。对于一台模仿图灵的通用机的多用途计算机来说,还需要一件物理装置,其功能相当于一个适当大小的存储器。在图灵抽象的通用机的纸带上,要想从一个方格移到较远的另一个方格,就需要进行多次一次一格的费力移动。就图灵在1936年的目的而言,这并没有什么不可以,那些理论机器并不需要做任何实际的事情。然而,快速的电子计算机却需要一个快速的存储器,这就要求被储存在存储器中任何位置的数据一步就能得到,也就是说,存储器应当是随机存取的。
20世纪40年代后期,有两种装置可以用作计算机的存储器,它们是水银延迟线和阴极射线管。延迟线是由一个充满液体水银的管子构成的,数据以声波的形式存储在水银里,声波在管子的两端来回反射。阴极射线管常见于今天的电视机和计算机显示器,数据可以作为一种图样储存在真空管的表面。这两种装置都有严重的工程问题,但幸运的是,对于EDVAC项目来说,埃克特已经在战争期间对延迟线进行了改进,使它可以用于雷达。然而,到了20世纪50年代初,阴极射线管却成为了首选的存储介质。
在谈到这一时期时,人们通常都把正在研制的新的计算机说成是体现了存储程序概念,这是因为需要执行的程序在历史上第一次被存储在计算机内部。但不幸的是,这一术语模糊了这样一个事实,那就是这些机器真正革命性的地方是它们的通用特征,而存储程序只是达到目的的一种手段。图灵和冯·诺依曼的观点在概念上是如此简单,而且在很大程度上已经成了我们的理智倾向,以至于我们很难理解它当时到底有多么新。认识到像水银延迟线这样的一项新发明的重要性要远比认识到一种新的抽象思想的重要性容易得多。埃克特后来声称,他在冯·诺依曼之前就已经想到了所谓的存储程序概念。他的证据是一本备忘录,其中谈到了在合金盘或蚀刻盘上实现的程序设计自动化。这里没有任何地方提到通用计算机的概念,也没有谈及指令和数据共存于其中的灵活的大容量存储器,哪怕连一点暗示都没有。而把既已做出的伟大进展说成是存储程序概念则会引发这种混乱。
当直到埃克特和莫齐利试图在他们的工作的基础上制造出一种商品时,他们与冯·诺依曼和戈德斯坦之间的争吵达到了顶峰。他们寻求ENIAC和EDVAC的专利权。他们对于EDVAC专利权的申请毫无进展,这是由于冯·诺依曼草案报告的散发使之处于不受专利权限制的状态。正像我们已经解释的,他们的确收到了一份ENIAC的专利证,但后来却被法庭宣布为无效。埃克特和莫齐利显然预见到了通用电子计算机的商机,但却无法从这种先见之明中获利。
随着埃克特和莫齐利的退出,摩尔学院失去了大部分优势,冯·诺依曼和戈德斯坦开始在普林斯顿高等研究院研制一种阴极射线管存储器计算机。冯·诺依曼开始寄希望于美国无线电公司所研制的一种专用真空管,但它并不管用,而英国工程师弗雷德里克·威廉姆斯(1911—1977)却设计出了能够使普通的阴极射线管有效地用作计算机存储器的一些方法,在许多年里,“威廉姆斯存储器”都一直独占鳌头。几台与研究院的机器类似的机器被制造出来了,它们根据约翰·冯·诺依曼的名字(Johnny)而被亲昵地称为“约尼阿克”(johnniac)。当IBM决定把通用电子计算机投入市场时,其第一种型号(701)与“约尼阿克”非常相似。
阿兰·图灵的ACE(自动计算机)
当第二次世界大战结束的时候,英国国家物理实验所(NPL)进行了一次大规模的扩容,其中包括一个新的数学部门。J.R.沃玛斯莱(1907—1958)被任命为该部门的负责人,他已经意识到图灵1936年的早期论文“论可计算数”的实用含义。1938年,他甚至承担了用电子继电器设计一台通用计算机的任务,但后来放弃了这个想法,因为他发现这样一台机器的速度将会非常慢。在1945年2月去美国访问期间,他看到了ENIAC,并且得到了一份冯·诺依曼的EDVAC报告的副本。他对此的反应是决定雇请阿兰·图灵。
到了1945年末,图灵已经完成了他那篇著名的ACE(自动计算机[Automatic Computing Engine])报告。ACE报告与冯·诺依曼的EDVAC报告之间的比较表明,后者“是一份尚未完成的草案……更重要的是……它是不完整的……”但ACE报告却“是对计算机的一次完整描述,一直到逻辑电路图”,甚至还包括“预算为11200英镑”。在ACE有可能处理的10个问题的清单中,图灵凭借他那宽广的视野,把两个并非与数字资料直接相关的问题——下棋和简单的拼图玩具——包括了进来。
图灵的ACE是一种与冯·诺依曼的EDVAC非常不同的机器,它们与这两位数学家的不同态度密切相关。尽管冯·诺依曼希望他的机器成为真正“通用的”,但他却把重点放在了数值演算上,且EDVAC(以及后来的“约尼阿克”)的逻辑构造都是为了在这个方向上有所推进。由于图灵发现ACE不适于做繁重的算术计算,所以ACE是沿着小得多的方式进行设计的,它更接近于“论可计算数”这篇论文中的图灵机,算术运算将通过程序设计(也就是通过软件而非硬件)来进行。为此,ACE的设计提供了一种特殊的机制,能够把预先编好的程序操作包含在一个更长的程序中。有人曾经建议沿着冯·诺依曼的方向改进ACE,图灵对此表现得极为刻薄:
它与我们的研制路线极为抵触,它更多地沿袭了美国的传统,即通过更多的设备而非思想来解决问题。……不仅如此,某些我们认为比加法和乘法更为基本的操作被漏掉了。
图灵的极小主义思想注定对计算机的发展产生不了什么影响。但事后反思一下,我们就可以发现,ACE设计预示了所谓的微程序设计,它使程序员可以直接进行最基本的计算机操作。而且,我们今天所使用的个人电脑是建立在硅微处理器的基础之上的,它实际上就是芯片上的通用计算机,它们已经变得越来越精致了。而被一批计算机制造者所采纳的相反的纲领,即所谓的RISC(精简指令集计算机)结构,则在芯片上使用了最小指令集,它又一次与ACE的哲学相一致。
1947年2月20日,图灵在伦敦数学会上做了关于ACE和一般数字电子计算机的讲演。他在开篇谈到了他在1936年所写的“论可计算数”的论文:
我考虑了这样一种机器,它有一个中心装置以及包含在一条无限长的纸带上的无限大的存储器……我的一个结论是,“经验”过程和“机械过程”这两种说法讲的是同一个意思。……像ACE这样的机器也许可以被看成我正在思考的那种机器的……实际版本。……至少非常相近。……像ACE这样的数字计算机……实际上是通用计算机的实际版本。
图灵接下来提出了一个问题,即“一台计算机原则上可以在多大程度上模仿人的活动”。这使他提出,一台经过编程的计算机也许可以进行学习和犯错误。“有几条定理说的几乎就是……如果指望一台机器不会犯错误,那么它就不可能有智能……但对于一台不以不可错自居的机器能够表现出多少智能,这些定理却什么都没有说。”这间接提到了哥德尔的不完备性定理,我们将在下一章中更详细地加以讨论。图灵在讲演的最后请求“要让计算机进行公平竞赛”,这些计算机与人一样会犯错误,并且建议可以从下棋开始检验。要知道,所有这些想法都是在没有一种设备完成的情况下提出的!报告做完,听众们惊讶得鸦雀无声。
当布莱奇利庄园的领导者们正在为获得充足的资源和支持发愁的时候,他们给温斯顿·丘吉尔写了一封信,丘吉尔立即保证他们能够得到所需的东西。ACE的建造不可能优先,而且NPL的行政官员也表现得相当糟糕。出色地研制了“巨人”的T.弗劳尔斯本该是研制ACE的理想人选,但他虽然与NPL签约,也做了一些计算机存储器延迟线的研制工作,却因忙于战后的电讯工作而只好作罢。这里面有ACE的极小主义设计的考虑,也许还夹杂着这样一种心情,那就是在技术方面可以信任美国人,而不要信任一个古怪的英国教师。在许多年里,这位教师在帮助赢得战争方面所做的事情一直都属于高度机密。当威廉姆斯表明他的阴极射线管存储器可以工作时(第207页),他被邀请加入研制ACE的工作,但他拒绝了。NPL天真地想象威廉姆斯会被雇来研制NPL计算机,但威廉姆斯已经获得了充足的资源,他可以在曼彻斯特研制他自己的计算机。最终,图灵离开了,他首先得到了剑桥的研究人员基金,然后接受了曼彻斯特大学提供的一个职位,他的老朋友兼战争期间的同事马科斯·纽曼正在在那里主持一个新的计算机项目。后来,一台小型的ACE在NPL研制成功,它被称为“气行者ACE(Pilot ACE)”,并且一直良好运行了许多年。
埃克特、冯·诺依曼和图灵
这个通常被称为存储程序概念的故事通常有三个版本。第一种版本把这个概念看作冯·诺依曼的EDVAC报告所体现的天才的产物。埃克特对此大喊“不公”,他坚持说,早在冯·诺依曼加入摩尔学院的小组之前,他就曾建议研制存储程序计算机。他宣称,EDVAC报告是小组共同的想法。各种出版物都支持埃克特的立场。图灵的名字并没有被提到。戈德斯坦支持冯·诺依曼的说法,而没有考虑图灵的作用,他写道:
据我所知,冯·诺依曼是第一个清楚地懂得计算机本质上执行的是逻辑功能,而与电有关的方面则是辅助性的。
当然,图灵对此也非常清楚。
ENIAC和通用计算机所体现的思想之间的鸿沟是如此之大,以至于很难相信埃克特会理解后者。当图灵抱怨“美国的传统是通过更多的设备而非思想来解决问题”的时候,他心里想到的很可能就是ENIAC。从图灵的“‘经验’过程和‘机械过程’这两种说法讲的是同一个意思”的结论可以很清楚地看出,把数从十进制转变成二进制,然后再转变回来,这是机器操作中最微不足道的事情。埃克特和莫齐利并没有认识到这一点,他们关心的是用十进制表示的输入输出量,他们研制了一台所有内部操作都用十进制来表示的庞然大物来解决他们的问题。人们遇到的许多具体问题都需要为微积分的某些极限运算找到近似值。由于被称为“差分分析器”的模拟机含有可以计算这种近似值的特殊器件,所以埃克特和莫齐利便把执行类似功能的组件用在了他们的ENIAC中。但是对于一台数字机器来说,这既不必要也不适当。微积分课本上讲述了计算这些值的方法,它需要的是对不超出算术的四种基本运算。
埃克特的确完成了一项与EDVAC有关的重大任务:他认为水银延迟线可以解决大容量存储器的问题。埃克特曾经研究过这些用于雷达的延迟线,所以对它们很是了解。因此,在那本他后来用于证明是他最先想到了存储程序概念的备忘录中,据说他谈到了在合金盘上实现的程序设计自动化,而没有提到他了解很多的、更适于做存储介质的延迟线。
冯·诺依曼把计算机程序设计看作一种活动,把这种看法与图灵的看法做一番比较是很有趣的。冯·诺依曼称之为“编码”,并且明确指出它是一种办事员的工作,基本不需要理智参与。有一件逸事颇能发人深省,高等研究院让学生用人工把人类易读的计算机指令翻译成机器语言,有一个极富才华的年轻人提议写一个汇编程序来自动完成这种转换。据说冯·诺依曼曾经气愤地说,让一个有用的科学工具去做一项办事员的工作简直是浪费时间。在ACE报告中,图灵说计算机程序设计过程“应当是非常吸引人的,它不应被沦落为苦差事,因为任何非常机械的过程都可以交由机器本身去处理。”
尽管故事的埃克特版本和冯·诺依曼版本今天仍然可以听到,但第三个版本已经变得越来越为人所知。这个版本说的是,冯·诺依曼从图灵的工作中得到了实际的通用计算机的思想。1987年,当我写文章阐述这种观点时,我发现持此看法的仅我一家。从那时起,人们越来越多地知道了图灵在战争期间对破译德国通信方面所起的作用,许多人也知道了他曾因同性恋风波而受到无耻的迫害。在伦敦和百老汇上演的《解密》(Breaking the Code)一剧戏剧性地描述了这些事情以及图灵的数学思想的重要性,它也是美国公共广播公司播出的一部电视剧的蓝本。电视纪录片也讲述了他的故事。于是,你瞧!阿兰·图灵的名字被列入了《时代》杂志(1999年3月29日)评选的20世纪最伟大的20位科学家和思想家名录。文章这样说:
现代计算机的创造是由如此众多的思想和技术进步共同完成的,以至于把它的发明完全归功于一个人是太不明智了。但有一个事实仍然成立,那就是每一个敲击键盘、打开电子数据表或Word处理程序的人都是在现实的图灵机上工作的。
的确如此!下面是《时代》杂志对冯·诺依曼的评论:
事实上,从耗资1000万美元的超级计算机到今天的无线电话和菲比(furbies)玩具上所使用的微小芯片,所有计算机都有一个共同点:它们都是“冯·诺依曼机”,都是冯·诺依曼基于图灵在20世纪40年代的工作所提出的基本计算机结构的变种。
知恩的国家对其英雄的回报
1948年秋,当图灵抵达曼彻斯特时,战争所带来的创伤还在愈合,一些住宅区还保留着工业革命早期的城市所具有的可怕外表。一位作家曾经引用了弗里德里希·恩格斯的一本名著,它评价了1844年曼彻斯特工人阶级住宅的惨状:
他[恩格斯]……所描述的情况……是在极为悲惨、恶化、残酷和非人道的普遍背景下发生的,类似的情况在地球上从未出现过。……一到这些院子,他便发现自己被“污垢和令人作呕的垃圾所包围,类似的情况再也不会找到。……毫无疑问,这是迄今为止我所见过的最可怕的住宿条件……在这里的一个大杂院中,正好在入口的地方……就是一个没有门的厕所,非常脏,住户们出入都只有跨过一片满是大小便的臭气熏天的死水洼才行。”
当然,在接下来的一个世纪里,大众的卫生设施已经得到了明显改善,而且无论如何,在图灵的社会阶层中也有人可以不住在工人阶级的住宅区了。然而,图灵与一个“下层”成员之间的结交还是导致了灾难。
我们可以想想NPL的糟糕管理会使图灵感到多么沮丧,这不仅浪费了他的才智,还使他在ACE报告和向伦敦数学会所做的讲演中显露出来的雄心勃勃的梦想毁于一旦。与此同时,计算机正处于研制过程中。在剑桥大学,莫里斯·威尔克斯(1913—2010)领导了EDVAC类型计算机的研制,它被称为EDSAC。与图灵在NPL的处境不同,威尔克斯拥有充足的经费来完成这个项目。每当图灵想起自己曾在NPL嘲笑过威尔克斯的一本备忘录,说它属于那种“通过更多的设备而非思想来解决问题的美国传统”时,他定是懊恼万分。到了1949年,EDSAC开始运行,并且可以买卖。威尔克斯和他的合作者的所谓发现,即微程序设计以及对子程序的系统应用,在图灵的ACE报告中都被清楚阐明这只能加剧他的沮丧。在曼彻斯特,图灵本来据说是要在那里领导计算机项目的,但威廉姆斯明确指出,他对某位数学家关于他的计算机的研制方面的想法不感兴趣。也是在1949年,成功运行的Mark I型曼彻斯特计算机出色地证明了威廉姆斯把现成的阴极射线管用作存储设备的技术,这一技术不久就用在了美国的计算机上。然而,其基本逻辑设计乃是源自冯·诺依曼的EDVAC报告,而不是源自阿兰·图灵。
关于图灵的ACE,赫尔曼·戈德斯坦曾经评论说,尽管这个设计“在某些方面有些吸引力”,但它“最终并没有站稳脚跟,而是被自然选择所淘汰。”说这是某种自然选择的结果实在是不公平的。体现了图灵思想的“飞行者ACE”运行得相当好。如果各种组织和资源都准备得很好,没有理由认为ACE计算机就工作不好。这里最好是在更为一般的背景下来理解,即计算机的哪些功能应由硬件来实现。哪些应由软件来实现。图灵曾经提出过一种相对简单的机器,它的许多功能都是由软件来实现的。但反过来,程序员要对基本的机器操作进行许多控制。这特别有利于编写旨在完成逻辑演算而非数值演算的程序。随着这个领域的发展,人们继续围绕对不能兼顾因素的这一权衡争论不休,最近的一场争论涉及RISC结构。
当图灵1948年来到曼彻斯特大学时,尽管他仍然担任政府的顾问,但几乎没有人知道他在战争期间所做的事情。他之所以被雇用,是因为大家本以为他会在与威廉姆斯的Mark I计算机有关的事情上起一些领导作用。但后来事情的发展表明,工程师只顾忙于自己的事情,图灵在这些方面的想法并没有被执行得很好。他实际上并没有利用他的职位去介绍ACE报告中的那些优美思想,以使程序员的工作轻松愉快,而是成了直接与机器语言0和1打交道的使用者。他研究了一些他在战前曾经思考过的计算问题,但他的兴趣很快就转到生物学上去了。他试图回答生物是怎样从完全相同的细胞一步步地发展成为自然界中形态各异的生物的。由这个形态发生问题可以导出微分方程,图灵很自然地转向计算机来寻找关于这些方程的解的信息。虽然他用机器寻求的正是他曾经要求超越的那种数字压缩,但他在一些通俗文章和公众讲演中却表达了他长期以来对计算机拥有类似于人的智能的潜力的设想。
1951年圣诞节前夕,图灵设法与一个19岁的年轻人阿诺德·默里开始了短暂的暧昧关系。默里来自一个穷苦的工人阶级家庭,是一个非常聪明的年轻人。当图灵与他在街上搭话时,默里正处于缓刑期,他曾经在一次小偷小摸中被捉。图灵邀请他到自己的住处,在默里眼里那儿一定是豪华住宅。圣诞节过后不到一个月,图灵有一天晚上回到家时发现他的住所失窃了。尽管丢失的东西总共价值还不到50英镑,但图灵还是非常心烦意乱。是默里想到了是谁实施了行窃——是他认识的一个名叫哈瑞的人。哈瑞显然认为对一个同性恋者实施盗窃是绝对安全的,因为他不敢去报警。一个谨慎的人面对阿兰的处境时当然不致愚蠢到去报警,但图灵却偏偏去了警察局。
警察局没费多少气力就弄清了图灵和默里之间的事情,当被讯问时,图灵一切都没有隐瞒。他不认为自己在性方面的情感有何可耻之处,也不认为他实现这些情感的无害手段有何过错。但尽管如此,法律的规定是很清楚的:图灵和默里彼此愉悦对方的所作所为是“极为下流的”,最多可以被判处2年徒刑。审理图灵案件的法官出于他所谓的仁慈动机,决定如果图灵同意进行1年的激素注射治疗以减少性冲动,那么他就可以免于坐牢。所使用的激素是雌性激素,无论它会给图灵的性冲动带来什么影响,它都会附带地使他的胸部发育。
1938年10月,阿兰看了沃尔特·迪士尼的《白雪公主和七个小矮人》。“他被一个场面深深地吸引住了,邪恶的女巫正把一个系在线上的苹果摇摇晃晃地放入一锅滚开的毒药中,口里还念念有词:
毒液浸透苹果,
沉睡般的死亡也随之穿透。”
他似乎喜欢一遍又一遍地念叨着这几句话。1954年6月7日,阿兰·图灵咬了半个在氰化物溶液中浸泡过的苹果,结束了自己的生命。是什么导致他做出了这个不可逆转的行为呢?人们对此有种种猜测。《解密》一剧说,在他被定罪之后,政府当局曾经反对他出国旅行,因为这成了他的性伴侣的最好来源。在英国,性也许已经变得太过危险以至于不能尝试。在20世纪50年代的气氛中,当局的确反对他出国旅行,这似乎是不争的事实。被定罪之后,官方不再允许他阅读秘密文件,但无法抹去的是他大脑中所携带的秘密。不过可以肯定的是,他在一次去挪威的旅行中遇上了一个男人,这个人曾经被警察局阻止,并且当他到英国探访图灵时被驱逐出境。唉,阿兰·图灵很可能就这样被一个他曾经为之做出过如此巨大的贡献(虽然未获赏识)的国家的政府当局逼上了绝路。
第9章 超越莱布尼茨之梦
图灵在伦敦数学会的演讲中说:
我希望数字计算机能够最终激起人们对符号逻辑的极大兴趣……人与这些机器进行交流的语言……构成了一种符号逻辑。
图灵所暗示的逻辑和计算之间的关联是本书的一个基本主题。然而,读者们也许仍然会问:逻辑和计算之间是如何彼此关联的?算术与推理有什么样的关系?动词“推断”(reckon)的通俗用法为我们提供了一条线索,在这里它没有了通常的含义:“演算。”
我推断他此时正在月光下对她说着甜言蜜语。
我们正在听一部B级电影中忧郁的男主角谈论他的情敌,他(和我们一样)并不知道赢得她的芳心的正是我们的男主角。他在言谈中未曾想到算术,他只是在谈论推理。他基于自己自认为知道的情敌的那些背信弃义的做法进行推理。“推断”一词的用法暗示了推理和演算之间真实而深刻的关联。用数进行推断本身就是一种推理形式,人们所做的大量推理都可以被看成一种计算。就像我们的例子所显示的,这种关系通常都能被人理解(至少是在一种下意识的层次上),这真是很有趣。又如,当某个人被说成是一种善于算计的人的时候,我们对这种评价完全心领神会。
把逻辑推理归结为形式规则的努力可以追溯到亚里士多德。他的工作是莱布尼茨关于一种普遍的计算语言的梦想的根本基础。图灵说明了所有的计算都能够在他的通用机上完成,这一成就也是以亚里士多德的工作作为支撑的。计算和逻辑推理确实是同一个硬币的两面,利用这一洞见,我们不仅可以为计算机编程,从而使其能够完成各种任务,而且还能设计研制计算机。
1999年1月,美国科学促进会在加利福尼亚的阿纳海姆召开了年会。这次会议的主题为“新世纪的挑战”。这是一次严肃认真的内容丰富的会议,它就大量课题举行了演讲和讨论会。当我浏览议程表时,一个名为“逻辑在计算机科学中的非凡效力”的专题讨论会引起了我的注意。五位领衔的计算机科学家(也是逻辑学家)在发言中证实了图灵预言的正确。在该讨论会的会议议程上,他们写道:
在过去的25年里,逻辑和计算机科学之间发生了广泛而持续的相互作用,而且仍在不断加强。在许多方面,逻辑为计算机科学提供了一种统一的基础框架和建立模型的工具……这次讨论会通过展示逻辑在其中扮演着至关重要的角色的一些计算机科学领域,如人工智能、计算复杂性、分布式计算、数据库系统和设计验证等等,从而为逻辑在计算机科学中的惊人效力进行一次全面考察。
计算机、大脑和心灵
1965年,麻省理工学院的计算机科学家约瑟夫·外岑鲍姆编写了一个名为ELIZA的程序,用户只要通过键盘输入英语句子,就可以与之对话。ELIZA有意以一种相当粗糙的方式去模仿一个启发式的精神治疗师。以下是我和ELIZA之间一次真实对话的记录:
ELIZA:你好。请告诉我你的烦恼。
马丁:我的烦恼很难描述。
ELIZA:为什么你的烦恼难以描述?
马丁:因为每当我试图去描述它时,我就会大叫。
ELIZA:这是真正的原因吗?
马丁:也许不是。
ELIZA:你似乎并不很确定。
马丁:啊,确定。
ELIZA:你能仔细地讲讲吗?
马丁:可以。但这将涉及一些个人隐私。
ELIZA:你为什么如此确信?
马丁:我试图维护我的尊严。
ELIZA:你的尊严?
马丁:你不会理解这些的。
ELIZA:我们是在讨论你,而不是我。
马丁:我已经受够了。再见!
ELIZA:你说你已经受够了。
马丁:我说再见。
ELIZA:你能说得再详细一些吗?
马丁:再见。
ELIZA:再见。请付75美元。
当然,ELIZA什么都不理解。该程序执行的是一种非常简单的算法,如果句子中出现关键词,那么它就会做出响应,否则就只是重复用户的句子。例如,“你”是一个关键词,ELIZA对它的响应通常是“我们是在讨论你,而不是我。”句子“你是我的母亲”中包含了“母亲”和“你”这两个关键词。由于“母亲”这个关键词的级别要比“你”这个关键词高,所以ELIZA对于该句的响应将是“再告诉我一些你家庭的情况。”“可以”这个关键词引起了“你为什么是如此肯定?”的响应。注意,只有当“再见”一词出现在句首时,ELIZA才会对它做出响应。
1950年,阿兰·图灵发表了他的经典论文“计算机与智能”。他预言,世纪末将会出现这样一种灵巧的人机对话程序,人在对话时将不能分辨他是在与一个人还是一台计算机交谈。他的预言是错误的:如今,那些声称能对普通的英语句子做出响应的交互式程序远比ELIZA复杂,但它们之中最好的也远远赶不上一个普通的5岁小孩的语言能力。
图灵其实是在不陷入哲学和神学问题的泥淖的情况下,探讨一台计算机是否可以表现出智能行为。为此,他提出了一种客观的、易于操作的检验方法:假如一台经过编程的计算机能够与一个有着正常理性的人谈论任何话题,而且用户判断不出来他是在同一个人交谈还是在同一台机器交谈,那么我们就可以说这台计算机是具有智能的。然而,我们距离能够编出这样的计算机程序还相当遥远,而且许多人对于这种判定计算机是否具有智能的方法并不信服。
正当计算语言学家们为计算机运用日常语言的能力而不懈奋斗之时,人们也自然会在那些不依赖于日常语言的领域中去探求机器智能。其中有一个领域就是下棋。当一个人国际象棋下得不错时,很难否认他表现出了智力思考。众所周知,我们已经有了能够把国际象棋下得很好的程序,许多普通的玩家必须选择该程序中的较低级别,这样才不会被经常击败。1996年2月,电脑“深蓝”成功地击败了国际象棋世界冠军加里·卡斯帕罗夫。那么,我们能说“深蓝”具有智能吗?哲学家约翰·R.塞尔在一篇文章中以他那惯用的挑衅风格告诉我们,严格说来,“深蓝”甚至不能被认为是在下棋:
以下我们将说明“深蓝”内部发生了什么。这台计算机有一串被程序员用来表示棋盘上棋子位置的毫无意义的符号,还有一串表示可能的移动的同样毫无意义的符号。这台计算机并不知道这些符号就表示棋子和它们的移动,因为它什么都不知道。
为了把这一点讲清楚,塞尔把他那个著名的比喻稍稍改造了一下。原来的故事说,屋子里有一个人从屋外收到了一些符号,然后他通过查一本书来决定他将发回哪些符号。那本书是以一种特别的方式写成的,这使得来回往复的符号构成了一次中文对话。但这个人并不懂中文,他不明白那些符号代表着什么。我们且不考虑从这个奇异的故事中可以得出什么结论,让我们转到塞尔的“象棋屋”:
想象一个不晓得如何下国际象棋的人被锁在一间屋子里,在那里他被给予了一组在他看来毫无意义的符号。他不知道这些符号代表着棋盘上的位置。他在一本书中查寻他该怎样做,然后送回一些无意义的符号。我们可以假定,如果这本书(也就是那个程序)编写得很是巧妙,那么他将赢得象棋比赛的胜利。屋外的人则会说:“这个人懂得国际象棋,他的确是一个象棋高手,因为他赢了。”但他们完全错了。这个人根本不懂国际象棋,他只是一台计算机。这个比喻的要害在于:假如这个人不懂国际象棋,而只是按照下棋程序行事,那么任何其他按照下棋程序行事的计算机也不懂象棋。
读者们也许已经注意到了,在这个例子中硬件和软件是分离的。屋中那个人的功能其实就相当于一台粗制的通用计算机。当然,一台未安装软件的计算机是不可能玩国际象棋的,只有当那个人有一本指令书时,下棋才能进行。下面是塞尔的比喻的我自己的版本:
有一个早熟的孩子,他的母亲对国际象棋充满热情。他厌倦了只是在一旁观看他的母亲下棋,于是就要求他的母亲允许他和母亲下盘棋。他母亲同意了,但前提是只有当她说可以移动棋子时才移动棋子,而且要将棋子放在她所指定的位置。他按照要求做了。母亲在他耳边悄悄说什么,他就做什么。最终,他把对方将死了。看到这一幕情景,塞尔说那个孩子一点也不懂国际象棋,而且他肯定也不是在下棋,谁又能不同意呢?
当代哲学家所使用的方法之一就是讲一些荒谬的故事,从而使那些并不明显的联系显示出来。但是建造现实的“象棋屋”也并非毫无意义。我有一个同事,他曾是“深思”设计小组的成员。“深思”是一台功能强大的下棋计算机,它是“深蓝”的前身。他提供给我一些数据,在此基础上我演算出,假如构成“深思”的硬件和软件被表示成一本由人可以执行的指令写成的书(更像是一个图书馆),那么把棋子移动一步就要花去好几年的时间。于是,最好是把一家人放在那个象棋屋里,当双亲去世后,孩子们还可以接着干。否则的话,一局比赛也不可能完成。
塞尔告诉我们说,“深蓝”“有一串毫无意义的符号”。然而,假如你能在“深蓝”运行时看到它的内部,那么你将看不到任何符号,无论是有意义的还是无意义的。电子正在电路中来回运动。这就好像,假如你能在卡斯帕罗夫下棋时看到他的头骨内部的情况,那么你将看不到任何棋子,而只能看到神经元的脉冲。我们的大脑如何组织才能处理那些所谓的符号信息,人们对这个问题直到现在也是知之甚少。而电脑(比如“深蓝”)为这个目的是如何被组织起来的,人们就清楚多了,因为毕竟是工程师和程序师制造了它。但是在这两种情况下,在大约分子层次上起作用的过程都被整合在样式中了,而认为样式与符号处理有关是有帮助的。塞尔告诉我们说,“深蓝”中的符号是毫无意义的。所以卒和马到底“意谓”着什么,这并不是一个有用的问题。
塞尔强调了“深蓝”不“知道”它在下棋这个事实。事实上,他坚持说“深蓝”不知道任何东西。而那些富有专业知识的工程师却有可能声称,“深蓝”的确知道各种东西。例如,它知道能将给定方格中的棋子移动到哪几个方格去。这完全取决于“知道”是什么意思。尽管如此,我们可以说“深蓝”并不知道它在下棋。但我们能因此就下结论说它事实上不在下棋吗?这里是另外一个比喻:
人类学家对新几内亚北部的克斯鲁普人的研究导致了一个非同寻常的发现,它肯定是人类有史以来最为惊人的巧合之一。虽然克斯鲁普人在被发现以前一直过着与世隔绝的生活,但他们却举行这样一种宗教仪式,他们两两组合参加一种完全等同于我们的国际象棋游戏的符号性的仪式。他们并没有使用棋盘或棋子,而是在沙地上设计了精巧的格子。首先发现克斯鲁普人的人类学远征队的领导者斯普兰蒂德博士本人是一个热情的业余棋手,正因为此,他才在沙地上所画的图案中看出了与国际象棋比赛中的移动完全等价的东西。
这些克斯鲁普人是在下国际象棋吗?他们肯定不知道自己下的正是国际象棋。塞尔也许会回答说:“但克斯鲁普人是有意识的,而‘深蓝’没有。”一个由程序控制的计算机是否会有意识,这在塞尔和其他人关于这些问题的讨论中扮演着主要的角色。无论未来的情况如何,我们当然必须得同意“深蓝”没有意识。
我们的意识是我们体验自身独特的个体性的一种主要方式,但我们只是从内部才知道它的。我们可以经验到自己的意识,却不能经验到他人的。我把我的意识经验为一种内在的交谈。我的妻子向我保证,她的意识是由视觉图像所支配的。她的意识和我的意识真是同一种东西吗?它到底是什么,为了什么目的而服务?当我写作时,我试图寻找合适的词,(如果幸运)它从我意识的深处浮现了出来。我不知道我的大脑是如何做到这一点的。时至今日,意识的现象依旧是那么神秘。
出于很好的理由,图灵和冯·诺依曼都把电脑与人脑进行了比较。既然人们有那么多不同的思维模式,他们猜想,我们之所以能够做那么多极为不同的事情,是因为在我们的大脑中嵌入了一台通用计算机。这就是为什么当冯·诺依曼着手设计EDVAC时,他会被人工神经元理论深深震撼。通用计算机所能做的只是执行算法。塞尔说:“人类很少做那种单纯的计算,我们很少把时间花在执行算法上。”他真的如此确信吗?当被问到这样一个问题:你读过查尔斯·狄更斯写的东西吗?答案(有或没有)一下子就从脑海深处冒了出来。对此我们是如何做到的?我们不知道。可以假设这是通过某种算法过程从我们大脑中的数据库里提取所需的信息而实现的,这种假说至少从表面看是相当吸引人的。对于计算机如何处理从电视摄像机输入的原始的视觉资料的研究,将在很大程度上帮助我们理解,我们的大脑是通过什么样的过程把视网膜传入大脑的原始资料转变为呈现给我们的清晰图像的。我们不知道这些事情是否就是通过我们的大脑执行算法来实现的,但我们并不能肯定这就不是它的实现方法。
罗杰·彭罗斯是一位杰出的数学家和数学物理学家,他在宇宙的几何结构方面做出了激动人心的工作。他也曾考虑过人类心灵的运作是否从本质上说是算法的这一问题。彭罗斯援引哥德尔的不完备性定理,明确地回答说:不是。以下是一种表达哥德尔定理的方式:
给定一种能够逐条产生关于自然数的真陈述的算法,那么我们总是能够得到另一条关于自然数的真陈述(我们称之为哥德尔句子),它是不能通过该算法生成的。
彭罗斯论证说,没有一种声称等价于心灵活动的特殊算法能够满足需要,因为心灵总有可能通过一种“洞察”活动而发现哥德尔句子对于该算法为真。这则论证是极端错误的,至于其原因,图灵早在1947年为伦敦数学会所做的演讲中就已经解释过了,那次演讲足足比彭罗斯所写的文章早了40年。图灵指出,哥德尔定理仅仅适用于那些只生成真陈述的算法。但没有一个数学家能够声称不会出错。我们都会犯错误!因此,哥德尔的定理无法防止把人类心灵的数学能力等同于一种既能产生真语句又能产生假陈述的算法过程。
塞尔和彭罗斯拒不承认人类的心灵就其本质而言等同于一台计算机。但他们两人都心照不宣地接受了这样一个前提,即不论人类的心灵可能是什么,它都是由大脑产生出来的,都服从物理化学定律。而库尔特·哥德尔则愿意相信,大脑实际上就是一台计算机,但他拒不接受超越于人脑的心灵并不存在的观点。事实上,古典的心—身问题是哥德尔所关注的问题的核心。他认为心灵以某种方式独立于我们作为物理实体的存在,他的这种立场通常被称为笛卡儿的二元论。
这里的讨论已经远远超出了莱布尼茨之梦,它把我们带到了一个介于哲学和科幻小说之间的地方。的确,只要注意到自EDVCA和ACE报告出现以来的计算机的发展状况,我们在预测它们未来能够做什么和不能做什么时,便很有理由要谨慎一些。
尾声
我们已经领略了一批卓越的革新者横跨3个世纪的生活。他们中的每一位都以这样那样的方式关注人类推理的本性。他们每个人的贡献加在一起便构成了理智的母体,由此孕育出了通用数字计算机。除了图灵,他们之中没有一个人意识到自己的工作可以被如此应用。莱布尼茨看得很远,但还没有远到这种程度。布尔几乎不可能想到,他的逻辑代数会被用于设计复杂的电路。如果弗雷格发现与他的逻辑规则等价的东西会被纳入实现演绎的计算机程序,他定会大吃一惊。康托尔当然从未料到他的对角线方法会产生出来什么样的结果。希尔伯特用于确保数学基础的纲领被引向了一个非常不同的方向。即便是一直过着心灵生活的哥德尔,也几乎没有想到自己的工作可以在机械装置上得到应用。
本书中的故事强调了观念的力量以及预测它们结果的徒劳。汉诺威的公爵们认为他们知道莱布尼茨最应当做什么:编写他们的家族史。今天的情况更是如此,那些为科学家们提供生活和工作所必需的资源的人竭力要把他们引向那些被认为能够尽快出结果的方向。这不仅在短期内可能是徒劳的,而且更重要的是,如果只重眼前利益,而轻视那些不会带来直接回报的研究,那么最终遭殃的还是我们的未来。
译后记
计算机技术无疑是当今最热门、应用最广的技术之一,它的作用和威力可以说无人不知、无人不晓。然而,尽管计算机技术的发展日新月异,学习它的人数也与日俱增,但很少有人了解其背后的思想,很少有人知道如此复杂精妙的机器所依据的是什么。它被设计得越来越方便合用,以至于我们几乎不再对它背后的奥秘感到好奇,计算机对大多数人来说仍然是一种神奇的东西,是一个谜。
本书作者马丁·戴维斯是纽约大学库朗数学科学研究所的名誉教授,目前在加州大学伯克利分校做访问学者。他是计算机科学发展史上的先驱人物,也是世界著名的数理逻辑学家,曾对希尔伯特第十问题有过深入的研究。他的《可计算性与不可解性》一书被誉为“计算机科学领域极少数真正的经典著作之一”。而摆在读者面前的这本书出版后即广受好评,被誉为从逻辑角度讲述计算机发展史的最好的通俗读本。粗略地说,计算机技术可以分为两大部分,其一是它的工程实现方面,另一则是它的思想或逻辑方面,但已往的关于计算机发展史或计算史的书大都只重视前者而忽视后者。当我们随手翻开一本这样的书时,眼前出现的不外乎巴贝奇、阿塔纳索夫、艾肯、埃克特、莫齐利等一串工程师的名字,讲述的是电子管、晶体管、存储芯片等的发展。而本书的主要人物却是莱布尼茨、布尔、康托尔、希尔伯特、哥德尔和图灵等人,这是怎么回事呢?原来,戴维斯认为通常所讲的历史只是故事的一半:工程师所做的工作是制造一种通用的图灵机,而正是通用计算机器的观念才是真正革命性的和更为本质的。按照戴维斯的说法,计算机实际上是逻辑机器,它的电路体现了几个世纪以来一大批逻辑学家所提出的观点之精华。当前,正当计算机技术以惊人的速度突飞猛进之时,正当我们羡慕工程师们令人瞩目的成就之时,我们很容易忘记那些逻辑学家,正是他们的思想使得这一切成为可能。从莱布尼茨到图灵,计算机的硬件和软件体现了几个世纪以来的一批逻辑学家所提出来的概念。本书讲述的就是这些位于计算机背后的思想层面的历史。它通过引人入胜的材料描写了这些天才的生活和工作,讲述了数学家们如何在成果付诸应用之前很久就已经提出了其背后的思想。文中语言生动而浅显,把这样一个相对枯燥的主题写得有声有色。通过阅读,读者可以在相当程度上了解计算机是怎样工作的,其内部的算法是怎么一回事,从而消除对计算机的神秘感。同时还可以对西方文化的核心之一——逻辑或数学有更深的理解,并且造就一种敏锐的眼光和问题意识,认识到再复杂的东西其实也是由简单的东西根据一定的规则组合而成的。在普遍崇拜技术外表而忽视其深层本质的今天,这样的书就显得尤为难得和重要。希望您下次启动计算机时,脑海里浮现出来的不仅有工程师,而且还有那些伟大的数学家和逻辑学家们。
由于译者不是计算机方面的专家,翻译不当之处一定不少,恳请读者不吝赐教。中国科学技术大学的汪芳庭教授曾热情地回答过译者所提出的一些专业问题,陈宇也曾就此译稿提出过不少改进意见,这里谨向他们表示衷心的感谢!
张卜天
2004年8月于北京大学返回搜狐,查看更多
责任编辑:

我要回帖

更多关于 莱布尼茨思想 的文章