电子计算机发明之前的计算机
自从1946年世界上第一台大型电子计算机投入运转以来,已经过去了50多年。在这短短的半个多世纪以来,电子计算机的发展是那样令人目不暇接,就机器本身来说,电子计算机已经发展更新到第五代。
第一代:电子管计算机(1946—1957年)
第二代:晶体管计算机(1958—1964年)
第三代:集成电路计算机(1964—1972年)
第四代:大规模集成电路计算机(1972年—20世纪80年代)
第五代:应用了人工智能,具有了一定的逻辑推理能力。(20世纪80年代至今)
尽管如此,在电子计算机发明以前有一较长的准备时期,主要体现在两个方面:其一是制造原理,其二是电子技术。
17世纪初期,人们就开始设计可以称为计算机器的装置,以满足当时对计算的要求。现在知道的最详细的早期计算机是法国数学家帕斯卡(1623—1662年)于1642年在他19岁时发明的一种加法计算机。他的计算机外表为长方形的盒子,上表面是一行齿轮,每个轮子的10个齿上都刻着数字0~9。齿轮也分别对应于个位、十位、百位等等。帕斯卡还设计了一套装置能使进行加法运算时自动实现进位。
德国数学家莱布尼兹于1671年也开始设计一种计算机,于1694年完成。这一计算装置比帕斯卡的装置有重大改进,它可用于乘法运算。莱布尼兹发明了“阶梯式计数器”和“针轮”两种重要装置,类似的装置在现代计算机中仍然作为两种组元,17世纪计算机的发明工作对以后计算机的发展有深远的影响。
帕斯卡和莱布尼兹以后的100多年,法国的托马斯于1818年设计了一种较实用的计算机。1821年建厂投产,开创了计算机制造业。托马斯机是一种较定形的手摇计算机,生产了上百年。1889年,瑞典籍俄国人奥特涅发明了可变齿数齿轮来代替以前的梯形轴,制成新型计算机。一直到20世纪20年代,奥特涅机都是主要计算机种之一。这时生产的计算机只能进行简单的四则运算,没有程序控制机构。
1822年,英国数学家巴贝治(1792—1871年)制成一台可运转的差分机,它的重要意义是能按照设计者的安排自动完成整个运算过程,蕴含了程序设计的萌芽。后来巴贝治继续研究计算机设计,提出了条件转移指令的设想,将逻辑判断的想法开始与计算机联系起来。
以上人们研制的只是机械计算机,到了19世纪与20世纪初,电子技术的发展为电子计算机的发明提供了物质基础。
图灵机
图灵机就是假想的理想计算机,早期的计算机在实质上就是图灵机的具体实现。
图灵是一位英国数学家(1912—1954年)。只活了42岁,然而却在数学和计算理论方面做出了卓越的贡献。他在1937年发表的《关于可计算的数及其对判定问题的应用》一文中提出了一个非常重要的关于计算的数学模型,后世称之为图灵机。它的重要性在于,图灵对如何判断一类数学问题是否为机械可解作出理论回答。
在此文中,图灵从理论上证明,利用图灵机是将程序和数据以数码的形式存储于纸带上,即“存储程序”型的。这种程序能将高级语言写的程序译成机器语言程序。他解决了数理逻辑中的一个基本问题,即从理论上证明了通用数字计算机是可以制造出来的。各种各样的关于计算的数学模型,均以能被证明和图灵机等价作为它们具有最高计算能力的标志。图灵的论文发表不到10年,现实的电子计算机就问世了。计算机科学家也公认图灵的思想为电子计算机的诞生奠定了理论基础,图灵因此而获得了一项殊荣。目前国际上授予计算机科学家的最高学术成就奖就是以他的名字命名的。
图灵机的计算在一条带子上进行,这条带子在两个方向均为无穷长(可以把它想象成解析几何中的x轴)。带子上划分为无穷多个格(可以把它想象为x轴上长度为1的区间)。带子的上方有一个沿带子方向来回移动的读写头(读写头与带子的关系有点像录音机中磁头和磁带的关系)。计算通过读写头的移动和读写来完成。为了控制读写头的这些操作,每个图灵机有一个状态集{qi},其中包括一个开始状态和一个结束状态。它还有一组符号{Si},其中包括一个空白符号。另外它还有一个控制函数,该函数根据图灵机所处的当前状态和读写头所读到的当前符号决定图灵机的下一步操作,其中每一步操作包括三件事。第一,把某个符号写到读写头当前正“注视”的那个格上,以取代原来的符号;第二,读写头左移一格或右移一格或不移动;第三,用某一个状态取代当前的状态,使图灵机进入一个新状态。这个控制函数可以表为:(状态,符号)→(写符号,移动,状态)。顺序做完这3件事,图灵机的一个工作周期就结束。如果新状态不是结束状态,则可进入下一个工作周期。否则图灵机停机,计算任务宣告完成。所以结束状态也叫停机状态。图灵机停机以后,带子上的内容就是它的输出。
从英国政府在20世纪70年代透露出来的一些文件中可以得知,世界上第一台电子计算机不是1946年美国的莫希利等人制造的:ENIAC,而是英国于1943年造出的拥有1500个电子管的破译密码专用电子计算机COLOSSUS(巨人机)。这种机器的某些设计思想来自图灵,它的具体情况一直是保密的。1945年,图灵又提出了一个新的设计报告,这个设计中已有了“仿真系统”的思想,包括21个特点。但由于军事保密的原因,直到1972年,它才最终公诸于世,过去27年一直被保密。1947年,图灵有了人工智能的思想。在一份有关的报告中,他提出了自动程序设计的思想,这至今仍然是人工智能的重要课题。1950年,图灵提出了著名的“图灵测验”,从行为主义角度对智能问题给出定义:一个人在不接触对象的情况下,同对象进行一系列的问答,若他根据这些问答无法判断对象是人还是计算机,则可以认为这个计算机具有同人相当的智力。他预言20世纪末将会出现这种机器,但目前还没有能通过图灵测验的计算机。
世界上第一台电子计算机诞生
机械计算机的发明可以由懂机械的数学家完成,但是电子计算机的制造不仅需要巨大投资,还需要科学家、工程技术人员及科学组织管理人员的密切合作。
ENIAC机
第一台获得成功的通用电子计算机是美国的莫希利和艾克特设计的。他们于1943年开工。当时正值第二次世界大战时期,第二次世界大战揭去了科学不带有政治性的假面。科学方面的经济决定因素也在改变。20世纪20年代和30年代,在美国自然科学和数学的基本研究较远离政府而且不依赖政府。科学研究所需的经费直接由各大学资助,或通过私人巨额基金资助。二战很快使一切改变。科学家很快被政府征召去参加那些代价昂贵、与战争有关且具有现实目的的研究项目。要解决与原子弹建造以及爆炸和一般流体力学相关的某些问题,就需要进行大量的计算工作。因此,为了进行高速数字计算的目的仍然是建造电子计算机的直接动因。
两年之后,有名的ENIAC(电子数值积分机的缩写)制成。1946年2月15日举行揭幕典礼。这台庞大的机器共采用了约1.8万只电子管、7万只电阻、1万只电容。它在计算工具发展史上是划时代的。它的特点是采用了电子线路来执行算术运算、逻辑运算和信息存储,它有20个加法器,每个加法器可存一字长10位的十进制数。还有乘法器及除法装置。由于广泛采用了电子线路,与以前的计算机相比速度要快得多,并同时执行几个加、减法计算任务。但这台机器除了显示出电子原体在进行初等运算速度方面的优越性外,基本结构与机电式机无本质差别。还有一些致命弱点,如存储量太小,仅能存20个10位十进制数。它的程序是外插型的,即用线路连接的方式来实现的,不便使用。仅仅几分钟或一小时的计算,则需准备几小时,甚至数天,并常因电子管烧坏而被迫停机检修。在这一时期,电子计算机的制造成功比它给人带来的应用性更重要。实际上,我们也可以看出,当时为制造这样一台计算机,人类的智力、物力和财力的投资远远大于它能给人所带来的。可贵的是科学家并没有停止对它的研究,他们看到了这一机器的美好前景:可以将人的思维在机器上完成。
数学家冯·诺依曼将人脑与计算机联系起来
美国数学家冯·诺依曼的名字是与电子计算机史分不开的。这位出生于匈牙利的数学家在纯数学的许多领域都有很深的造诣,这为他在计算机逻辑设计方面做出贡献奠定了基础。在第二次世界大战期间,在美国,科学家也成了政府的工作人员。战争结束后,许多科学家离开军事研究项目,但在战时形成的科学与政府的密切关系保持了下来。从而,科研基金的根本来源是美国政府机构,尤其包括军事部门。业已改变的科学与政府之间的经济关系,恰好同科学界丧失清白无瑕同时发生。科学家成了发明那些造成巨大破坏又大大改变生活条件的核武器和其他武器的工具。冯·诺依曼是这一时期的数学家,他在1941年12月美国参战前就开始从事军事研究项目。虽然他参与的高级技术是发展武器,但却受到启发而认识到机器和生物之间原则上的相似性,尤其是高级技术与人的神经系统之间的相似。
1944年夏天,他邂逅数学家兼军官赫尔曼·哥德斯坦,哥德斯坦请他当费城宾夕法尼亚大学莫尔工程学院高速数字计算机设计顾问。按照与陆军军械署的合同,这所学院计划首批建造这样的机器。
冯·诺依曼在莫尔学院当顾问的一年里,已为计算机设计的巨大进展奠定了基础。他的最大贡献是他具有独特的抽象思维能力。哥德斯坦写道,就他所知,冯·诺依曼在该校是第一个“明晰懂得计算机的基本作用是逻辑功能,而电子方面则是辅助性的……在冯·诺依之前,人们……把精力集中于电子工程方面。”杨泰俊等编。冯·诺曼和维纳。科学技术文献出版社,1996,110页。这样他把精力集中于研究计算机的逻辑结构,把计算机原理的研究与技术区分开来。与此同时,冯·诺依曼开始探索如计算机之类的工程装置与神经系统或更一般的生物体之间类比的可能性。
为了了解人的脑组织,冯·诺依曼特地向心理学家和神经生物学家学习请教,他在努力地想研究出一套适用于生物学中大脑研究的数学或是逻辑系统。他发现了人脑与计算机的某些共同点:计算机拥有输入输出装置,可以按照总的指令进行数学和逻辑推理、储存信息,这些信息或多或少地可以被理解,还能用光感受器来识别模型。同样,人脑也在做着类似的事情。这样粗略的定量的比较,可以进一步对大脑的本质获得初步的想法,至少能产生一些具体的想法。例如冯·诺依曼得到的结论是,计算机所占空间必需的电子元件数量比人脑所具有的神经元数量要少得多。按照冯·诺依曼的定量估计,计算机的规模既使比人脑大100倍,人脑依然具有百万倍于计算机的元件量。
但是,尽管人脑以极大的复杂性占上风,计算机在速度上却有优势。因此得到推定,产生人脑与计算机的对比结果是因为神经系统的元件比计算机的元体多,但工作速度慢;计算机采用的方式是连续不断地实施操作,中枢神经的特点则有利于同时操作。这些推理十分简洁、清晰,阐明了其天然的真相。
1944年接近年底时,冯·诺依曼被聘为研制第一台电子数字积分计算机原型的顾问。1945年,第一台ENIAC正在制造之中时,冯·诺依曼及其小组已经着手设计更为先进的计算机:EDVAC(电子数字计算机)。1945年6月由冯·诺依曼的设计EDVAC诞生了。新设计中的重大改进有:第一,采用二进制以发挥电子元件的高速度特性;第二,设置存储程序,可以从一程序指令进到下一程序指令,是通过“条件转换”指令自动进行的。“指令”包括数据和程序,用码的形式将它们输入到机器记忆装置中。用记忆数据的记忆装置存储执行运算的命令,就是存储程序的新概念。这一概念成为计算机史上的一个里程碑。因为存储程序协调了速度,并使得机器内部可以用同样的速度进行程序的逻辑选择,从而全部运算成为真正的自动过程。长达101页的EDVAC设计方案是计算机史上的一个划时代的文献。它宣告电子计算机时代的开始。一年后,冯·诺依曼又提出了更完善的设计报告《电子计算机装置逻辑结构初探》。这两份既有理论只有具体设计的文献,激起了第一次“计算机热”。同时,莫尔学院在军队的赞助下,开办了“电子数字计算机设计的理论和技术”的专题讲座。有美、英的数十名专家听讲。随后计算机事业呈现出繁荣局面。美、英都在设计和制造有存储程序式计算机。1950年已有数十台这种类型机投入运转。
数学家冯·诺依曼对现代通用计算机的理论做了奠基工作。此后的电子计算机到第四代大规模集成电路计算机的基本原理和理论都是在此基础上发展起来的。所以,冯·诺依曼被称为“电子计算机之父”。
电子计算机应用于数学
通过上面的讨论,我们看出,计算机科学的早期发展与数学密切相关。而且,在各种传统的基础科学中,数学的精神与计算机科学最为贴近。在教育领域,数学和计算机科学仍在携手前进。在大学里,计算和数学难以分离,而在中学水平上的计算则几乎完全由数学教师讲授。因此,直到现在,计算机和数学还存在着特定的关系,二者密切相关,互相促进,从而使双方都取得了很大进展。
计算机对于数学的作用表现在,在计算机产生之前,许多科学技术问题在表述成数字形式之后,往往由于无法求出数值解,或者无法及时求出数值解,而只能束之高阁,或只有理论上的价值。计算机的出现改变了这种局面,应用数学有了很大发展。计算机快速、准确的计算能力为自然科学、社会科学的定量研究和用科学理论定量地指导实践打开了新的局面,使得近似计算方法作为一种科学方法开始发展起来,从而为科学的发展开辟了新的研究方向。