计算机发展史:世界上第一台计算机

本贴最后更新于 2138 天前,其中的信息可能已经时移俗易

起源
计算是人的基本能力,人类社会发展初期由于物质资料匮乏,并不需要大量的计算,主要是通过手工完成计算,辅以简单的工具,像是绳结、石子、算筹。但随着社会的发展,这种简单的以记录为主(算筹不是)的计算工具已经满足不了增长的数据计算需要,于是人们发明了算盘、纳皮尔棒1这样的计算工具。

17 世纪的欧洲机械制造业不断发展,以前依靠手工的计算方式不能满足需要,但是在相当长的时间之内大量的计算还是通过这种手工的方式来完成,可以想象当时计算的人的辛苦程度。期间曾经出现过像是帕斯卡计算器2的装置,但是由于过于复杂,并没有大规模使用。

关于谁是世界上第一台计算机的答案可能有多个,但是第一台真正意义上的数字计算机是由英国数学家 Charles Babbage(1792-1871)(查尔斯· 巴贝奇)发明的。

巴贝奇的计算机
巴贝奇
巴贝奇,1792 年出生于英格兰西南部的托特纳斯,是一个银行家的儿子。童年时代的巴贝奇展现了极高的数学天赋,考入剑桥大学之后,毕业留校,24 岁便担任剑桥大学“路卡辛讲座”的数学教授。关于发明计算机还要从 18 世纪末的法国说起。

18 世纪末,法兰西发起了一个宏大的计算工程--人工编制《数学用表》,这在没有先进工具的当时,是个艰巨的任务。这部大部头的书稿,在编制完成之后却是错误百出。据说有一天巴贝奇和友人在一起对这部书稿评头论足,翻一页一个错,翻两页好几双,面对错误百出的数学表,巴贝奇目瞪口呆。这或许是巴贝奇萌生研制计算机构想的起因。

巴贝奇在 20 岁的时候打算制造一台差分机,它可以按照设计者的意图,处理不同函数的计算过程。由于当时的制造工艺极差,从设计绘图到零件加工都要亲自动手。花了整整十年时间(1822 年)这台差分级才制造出来。这台差分级的计算精度达到了 6 位小数,以后的实际运用证明,这种机器非常适合编制航海和天文方面的数学用表。

初战告捷,成功的喜悦激励着巴贝奇,连夜奋笔上书皇家协会要求政府资助他建造第二台运算精度为 20 位大大型差分机,英国政府觉得有利可图,破天荒的和科学家签订了第一个合同,提供了 1.7 万英镑的资助,巴贝奇自己帖进去 1.3 万英镑弥补经费不足。在当年,这无疑是一笔巨款。

但是巴贝奇和英国政府都失算了,第二台差分级在“阴沟”里翻了船。由于第二台差分级需要的制造工艺极高,日复一日,这样过去了 10 年,制作出了全部零件的一半。参加实验的同事们再也坚持不下去,纷纷离他而去,巴贝奇肚子苦苦支撑了第三个十年,终于感到无力回天,只得把所有图纸和已经完成的零件送进伦敦皇家学院博物馆工人观赏。

1842 年在巴贝奇的一生中是极为不平常的一年。由于差分机的失败,受到了外界无尽的嘲讽,英国政府也宣布断绝对他的一切资助。但就是在这样艰难的时刻,他迎来了一个对他以后的事业至关重要的人--阿达·洛芙莱斯(Ada Lovelace)。

阿达是英国著名诗人拜伦3的的女儿。由于父亲拜伦和母亲性格不合,在阿达 2 岁的时候,母亲带着她离开英国。可能从小缺乏父爱,她没有继承父亲的浪漫主义情怀,却继承了母亲的数学才能和毅力。在阿达还是少女时代,母亲便带着她去参观过巴贝奇的差分机,当别的孩子还在叽叽喳喳摸不到头脑是,阿达却看得十分仔细,并十分清楚这项发明的重大意义。这个女孩的特殊气质,在巴贝奇的记忆力打下了较深的印记。她欣然同意与这位数学才女共同研制新的计算机器。

30 年的困难和挫折并没有使巴贝奇屈服,阿达的到来更加坚定了他的决心。还在大型差分机受挫的 1834 年,巴贝奇已经有了一个更大胆的设计。他的目标不仅仅是制造一个仅能制表的差分机,他要制造一台通用的计算机,巴贝奇把它称为“分析机”。它能够自动解算 100 个变量的复杂运算,每个数可达 25 位,速度可达每秒钟一次。

巴贝奇首先为分析机构思了一种齿轮式的“存贮库”,每一齿轮可贮存 10 个数,总共能够储存 1000 个 50 位数。分析机的第二个部件是所谓“运算室”,其基本原理与帕斯卡的转轮相似,但他改进了进位装置,使得 50 位数加 50 位数的运算可完成于一次转轮之中。此外,巴贝奇也构思了送入和取出数据的机构,以及在“存储库”和“运算室”之间运输数据的部件。他甚至还考虑到如何使这台机器处理依条件转移的动作。一个多世纪过去后,现代电脑的结构几乎就是巴贝奇分析机的翻版,只不过它的主要部件被换成了大规模集成电路而已。仅此一说,巴贝奇就当之无愧于计算机系统设计的“开山鼻祖”。阿达为这台计算机编制了一系列的程序。

但是由于得不到资助,巴贝奇和阿达不得暂时放下手中的活,取搞一些副业赚钱,以维持日常的开销。最后有贫困交加加上无休止的脑力劳动,阿达的健康急剧恶化。1852 年年,怀着对分析机的美好梦想和无尽的悲怆,年仅 36 岁的阿达香消魂散。

阿达去世后,巴贝奇又默默坚持了近 20 年,晚年的它已经不能发生,甚至不能有条理的思考,但他仍百折不挠的工作。最后,分析机终没有制造出来,他没失败了。他们失败的原因是他们看到太远,他们的设想超出了他们所处时代近一个世纪!但是他们留给了计算机后辈一份及其宝贵的精神财富,包括 30 中不同的设计方案,近 2100 张组装图和 50000 件零件图…,更包括那种在逆境中自强不息,为追求理想奋不顾身的精神。

1871 年,为计算事业贡献了众生的先驱者终于闭上了眼睛。当时就有人把他的大脑用盐渍着保存起来,想经过若干年后,有更先进技术来研究他大脑特别的机制;现在的人们,当然更不会以成败来论英雄!

在这台巴贝奇计算机失败近 100 年后,世界上第一台电子计算机研制成功,它就是阿塔纳索夫-贝瑞计算机。

阿塔纳索夫-贝瑞计算机

阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer,简称 ABC 计算机),是爱荷华州立大学的约翰·文特森·阿塔纳索夫(John Vincent Atanasoff)和他的研究生克利福特·贝瑞(Clifford Berry)在 1937 年设计,不可编程,仅仅用于求解线性方程组,并与 1942 年成功进行测试。

上个世纪 30 年代,保加利亚裔的阿塔纳索夫在爱荷华州立大学物理系任副教授,在给学生讲解线性微分方程的求解时,不得不面对复杂的计算,那是十分枯燥的工作。于是他开拓思路,尝试使用数字电子计算技术求解的可能性。

经过两年的反复试验,设计思路大体上清楚了,但是他需要一位聪明又懂机械,又有动手能力的人和他一起完成这项工作,于是他找到正在物理系读硕士的研究生福德-贝瑞。

两人终于在 1939 年制造出来一台样机,证明他们的思路是正确的。

这台计算机是电子与电气的结合,电路系统中装有 300 个电子真空管执行数字计算与逻辑运算,机器使用电容器来进行数值存储,数据输入采用打孔读卡方法,还采用了二进位制。因此,ABC 的设计中已经包含了现代计算机中四个最重要的基本概念,从这个角度来说它是一台真正现代意义上的电子计算机。

阿塔纳索夫的计算机模型机正好处于模拟计算与数字计算的门槛上。自从巴贝奇设计差分机和分析机以后,在 19 世纪下半叶,一些物理学家开始研制模拟计算装置。1876 年,发现热力学第二定律的 L.开尔文和他的弟弟一起研制了能计算傅立叶系数的“潮汐调和分析仪”。1887 年,和 E.莫雷一起否定以太存在的美国物理学家迈克尔逊又研制了更精确的分析仪。1930 年美国科学家、教育家万·布什(V Bush)等人研制出微分分析仪,用它来计算火力表时,速度要比手工计算快几十倍。
在同一时期,还有的德国的 Z3 计算机和英国的 Colossus(巨人)计算机,两者都是可编程的。只是由于当时的战争环境,不被广为人知。
从 ABC 开始,人类的计算从模拟向数字挺进。而“埃尼阿克(ENIAC)”标志着计算机正式进入数字的时代。

ENIAC 计算机

ENIAC,全称为 Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC 是世界上第一台通用计算机,也是继 ABC 计算机之后的第二台电子计算机。

它是图灵完全的电子计算机,能够重新编程,解决各种计算问题。它于 1946 年 2 月 14 日在美国宣告诞生。 承担开发任务的“莫尔小组”由四位科学家和工程师埃克特、莫克利、朱传榘、戈尔斯坦、博克斯组成。

ENIAC 长 30.48 米,宽 6 米,高 2.4 米,占地面积约 170 平方米,30 个操作台,重达 30 英吨,耗电量 150 千瓦,造价 48 万美元。它包含了 17,468 根真空管(电子管),7,200 根晶体二极管,1,500 个中转,70,000 个电阻器,10,000 个电容器,1500 个继电器,6000 多个开关,计算速度是每秒 5000 次加法或 400 次乘法,是使用继电器运转的机电式计算机的 1000 倍、手工计算的 20 万倍。


  1. 17 世纪早期,由英格兰数学家约翰.纳皮尔制造。

  2. 1842 年,由法国的数学家、哲学家帕斯卡发明,一种可以进行加减乘除计算的机械式计算机。该计算机使用了补码的思想,在现代计算机中一直在使用。随后莱布尼茨在帕斯卡计算机的影响下,发明了更加完美的机械式计算机。

  3. 19 世纪初,英国著名浪漫主义诗人,代表作《唐璜》。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    😄

  • 88250

    我们都是站在巨人的肩膀上,但很多时候依然看得不够远。

  • UniVista 1

    人类缺的不是知识,而是智慧,能对未来用于畅想,这才是人类发展的根本,创新将是未来永恒的话题。超越自己才是人类最大的难题!

推荐标签 标签

  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 51 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 705 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    28 引用 • 66 回帖 • 7 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 1 关注
  • 博客

    记录并分享人生的经历。

    272 引用 • 2386 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1234 回帖 • 442 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    85 引用 • 122 回帖 • 617 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 442 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 396 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 65 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    143 引用 • 3752 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 322 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    333 引用 • 619 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8208 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 48 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 429 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    96 引用 • 330 回帖
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1427 引用 • 10046 回帖 • 472 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖