虽然阅读经典文献意义重大,但是计算机科学家们常常只喜欢读近期发表的文献。IEEE和ACM数字图书馆的统计表明,我们很少阅读两三年前发表的文献。然而,这样的行为局限了我们的视野,使我们忽视了本领域积淀的财富。我们只注意到我们现在关心的那些问题,反而遗漏了影响计算机领域研究60年的那些重要思想。我们有时查阅经典文献,往往只是想利用它来佐证自己的工作,阐明我们的贡献对本领域是重要的,或者我们所解决的问题是具有普遍性的。我们很少用经典文献来检验自己的想法,来衡量我们是否为本领域贡献了具有长久价值的思想。
在计算机科学领域的早期著作中,有三四本书对大多数计算机科学家来说应该是具有吸引力的。《高速计算设备》(High Speed Computing Devices)1揭示了计算机体系结构的基础概念是如何形成的。韦尔克斯(Wilkes)、惠勒(Wheeler)和基尔(Gill)的《电子数字计算机的程序设计》(Preparation of Programs for an Electronic Digital Computer)(艾迪生-韦斯利出版社,1951年)奠定了软件开发的基础。诺姆·乔姆斯基(Noam Chomsky)的《语言描述的三个模型》(Three Models for the Description of Language)(麻省理工学院出版社,1956年)阐明了孕育出计算机语言的思想。除了这3本书,博学的计算机科学家应该再读一读约翰·冯·诺伊曼(John von Neumann)的《计算机和人脑》(The Computer and the Brain)(耶鲁大学出版社,1957年)。最近,在中国出版了该书的新译本(江苏人民出版社,2011年)。虽然这本书没有《高速计算设备》或者《电子数字计算机的程序设计》那么强的技术性,但是读者从中可以深入了解这位计算机科学奠基人的真知灼见和20世纪50年代计算机领域的发展历程。
20世纪50年代初期,计算领域有两个完全不同的子群体。第一个以工程师为主,第二个以数学家为主。双方保持着持续的交流,但是他们要解决的问题略有不同。工程师们在工作中使用物理设备,并试图把它们变成计算机器。数学家们则研究如何将计算机器应用到特定问题上。尽管冯·诺伊曼主要是一位数学家,但他对这两方面都有贡献。20世纪30年代末期,他开始对计算产生了兴趣,并与阿兰·图灵(Alan Turing)和约翰·托德(John Todd)这两种不同类型的人一起工作过。图灵在1938年发明了一种抽象的计算机器,这是一种类似人脑的设备,可以用来证明数学定理。托德为英国政府掌管英国海军计算服务部门(Admiralty Computing Service),这是一个工程性机构,利用人力和加法设备来计算工程问题。冯·诺伊曼兼容并蓄两者的经验,提出了计算装置和程序的最初思想。
第二次世界大战期间,冯·诺伊曼参与了ENIAC项目,为美国陆军新建一种电子计算设备。在此期间,冯·诺伊曼所做的贡献是撰写了《EDVAC报告的第一份草案》。这份文件定义了现代计算机的基本体系结构,包括内存、处理单元和控制单元。最近的学术研究表明,项目的其他几个成员对报告思想的形成也有贡献。这份报告的某些部分,例如对二进制加减法电路的描述,的确在计算机圈子里已广为人知。
《计算机和人脑》一书在《EDVAC报告的第一份草案》问世10年后出版。随后几年,冯·诺伊曼成为了计算领域的领军人物。他在其工作的高等研究院(Institute for Advanced Study,即美国普林斯顿高等研究院,该院1930年创立,致力于无涉利益的柏拉图式的知识探寻),建造了一台计算机。这有助于展示EDVAC报告草案中创立的思想的价值,同时也成为其他机器的榜样,包括IBM 701机和苏联的БЭСМ机(该机曾被引入中国)。
1955年,冯·诺伊曼同意在耶鲁大学举办以计算机和人脑为主题的系列讲座。讲座刚开始不久,他就病倒了,住进了医院。医生宣布他患上不治之症。他的妻子说:“尽管有希望通过治疗和护理使他度过这一关,但实际情况越来越糟糕。”在住院期间,冯·诺伊曼仍然继续着讲座的工作。没过多久,他那“超乎寻常的大脑已无法战胜虚弱的身体限制了”。
所以,《计算机和人脑》是一本并不完整的书。从书中的字里行间,可以感受到冯·诺伊曼在争分夺秒地整理自己的想法,并把它们付诸文字。这本书在很多方面都基于《EDVAC报告的第一份草案》中的思想。在书中,他介绍了计算机器的基本结构,以及这一结构在10年间所进行的改进和测试。像报告草案一样,他借助神经元、突触和连接等有关人脑的基本结构术语来描述这种计算机器。通过对电子计算机和生物人脑的反复比较,他几乎就要提出这样一个问题:“计算机的思维可以达到什么程度?”
作为一位数学家,冯·诺伊曼清楚地知道,为了说明计算机可以思考,他需要证明两个相互关联但又略有不同的假设。他需要证明人脑可以做计算机能做的所有事情;还须证明计算机可以做人脑能做的所有事情。在集合论里,若集合A包含集合B中的每个元素,并且集合B包含集合A中的每个元素,那么这两个集合就是等价的。
冯·诺伊曼已经完成了这个证明的一半。在《EDVAC报告的第一份草案》中,他使用生物学的例子,作为描述计算机的基础。在这个过程中,他证明了人脑可以做计算机能做的每件事情。在《计算机和人脑》一书中,冯·诺伊曼想完成这个证明的第二部分。然而,他没能完成。
由于无法完成计算机和人脑的等价性证明,冯·诺伊曼开始提出下一步的发展架构。他认为,从另外一种角度思考计算的本质,也许能证明人脑和计算机如何相关。他引入了“简码(short codes)”的概念,我们现在称之为宏程序设计(macroprogramming)。他认为,会找到描述计算的新方法,这种方法基于他的基本模型,但是能够更好地模仿人脑的工作方式。他写道:“从评价大脑中枢神经系统真正使用的数学或逻辑语言的观点来看,我们(所用的)数学的外在形式没有绝对的联系。”然而,他认为,大脑和计算机两者是有关系的,因此计算机有助于我们了解大脑是如何工作的。
阅读像冯·诺伊曼的《计算机和人脑》这样的书,可以帮助我们成为更高深的计算机科学家,虽然这些书并不能使我们了解当前的研究状况。我们现在探求的诸如深度学习等技术所带来的成果,远远超出了冯·诺伊曼所在的那个时代。但是,他们也揭开了一些关于人脑和意识的基础性问题,而我们当前的方法还不足以解决。因此,与冯·诺伊曼类似,我们需要巩固已有知识,展望未来的新技术。■
1麦格劳-希尔出版社,1952年。重点从电子设备的高速计算角度,系统化地阐述了1950年前后有关计算的概念、技术、装置和零部件等,给出了当时 EDVAC、UNIVAC、 BINAC和Mark III等所有计算机的规格参数。