在106年前的今天,1912年6月23日,“计算机科学之父”艾伦•图灵诞生。今天,我们就来聊一聊,是谁发明了世界上第一台计算机!
如果让计算机自己来回答“第一台计算机”是什么时候诞生的,只要打开搜索引擎输入这个问题,就会看到各种各样的答案,其中大多是:世界上第一台计算机是1946年在美国诞生的电子数值积分计算机,简称ENIAC。
其实这个题目并没有标准答案,ENIAC只是其中一个答案而已。在历史上人们很早就开始尝试制造可以自动计算的机器了,经过多年的发展,才有了计算机今天的模样。很多种类的计算机都可以算作是“第一台计算机”,这要看你如何定义“计算机”。
如果能帮我们做算术的东西就能称得上是计算机的话,古代的算盘应该也称得上是一种计算机,不过它完全是手动的。在17世纪到20世纪的几百年间,曾经出现过一批不带电的计算机,这些计算机里面没有电路板,只有一堆机械齿轮。
17世纪法国有一位“全能超人”帕斯卡,他是数学家、物理学家,也是哲学家、流体动力学家,还是概率论的创始人之一。帕斯卡造出了一个内部装着一堆齿轮的盒子,只要旋紧发条,它就可以转起来。不过,这个“第一台机械式计算机”只能进行简单的加减运算,其水平大概只相当于幼儿园小朋友。后来,德国数学家莱布尼茨制造出了一台可以进行加减乘除运算的机械式计算机,它的计算能力达到了小学生的水平。英国数学家巴贝奇在19世纪20年代制造出的差分机,则会计算一些数学函数了。虽然巴贝奇梦想着制造出一台功能更齐全的第二代差分机,但他最后并没有成功。
后来人们意识到,如果只使用机械齿轮进行计算,计算能力是极其有限的,要想让计算机拥有更强的计算能力,只有另辟蹊径。于是,电子计算机被制造出来了。依靠电力来工作比依靠齿轮工作速度更快,因此电子计算机有更强的计算能力。在第二次世界大战期间,战场上飞机、炮弹的飞行轨迹需要大量复杂的计算来获取,这让电子计算机有了一展身手的机会。以世界上第一台大型自动数字计算机“马克1号”为例,它可以储存72组数据,每组数据有23位小数。进行加法运算一次需300毫秒, 乘法运算一次需6秒,除法运算一次需15.3秒,尽管现在看起来这个速度比较慢,但是它实现了计算技术历史性的突破,帮助人们完成了大量计算任务。
那么,电子计算机的发明者是谁呢?也有好几种答案。1936年英国数学家图灵首先提出了一种以程序和输入数据相互作用产生输出的计算机构想,后人将这种机器命名为通用图灵机。1938年出现了首台采用继电器进行工作的计算机“Z-1”,但继电器有机械结构,不完全是电子器材。1942年阿坦那索夫和贝利发明了首台采用真空管的计算机,以他们俩名字的首字母命名为ABC。不过ABC只能求解线性方程组,不能干其他的工作。在图灵指导下,第一台可以编写程序执行不同任务的计算机COLOSSUS则到了1943年才在英国诞生,用于密码破译。
公认的人类历史上第一台现代电子计算机是1946年在美国宾夕法尼亚大学诞生的ENIAC。尽管它比前面提到的那些机器晚诞生了一段时间,但它拥有了今天计算机的主要结构和功能,是通用计算机,并且是第一台与通用图灵机等效的计算机。虽然在今天看来,ENIAC的计算能力恐怕连小小的计算器、智能手机都比不上,但当时称得上是功能强大。ENIAC体积非常庞大,占满好几个房间,全身上下拥有一大堆缠绕的电线和真空管。它的耗电量也非常惊人,工作的时候,全城的人都知道,因为家家户户的电灯都变暗了。最初ENIAC的程序设置需靠人工移动开关、连接电线来完成,改动一次程序要花一星期时间。为了提高效率,工程师们设想将程序与数据都放在存储器中。数学家冯·诺依曼将这个思想以数学语言系统阐述,提出了存储程序计算机模型,后人称之为冯·诺依曼机。
现在,人们普遍认同现代计算机理论最重要的奠基人是图灵与冯·诺依曼。前者建立了图灵机的理论模型,发展了可计算理论;而后者确定了现代计算机的基本结构。不过,计算机的发展很难简单地归功于某一个人或某一台机器,历史上每一台迸发出创新火花的计算机都有资格称得上计算机历史上的第一,它是人类智慧的共同结晶。
閱讀更多 科學交流匯 的文章