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

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

起源
计算是人的基本能力,人类社会发展初期由于物质资料匮乏,并不需要大量的计算,主要是通过手工完成计算,辅以简单的工具,像是绳结、石子、算筹。但随着社会的发展,这种简单的以记录为主(算筹不是)的计算工具已经满足不了增长的数据计算需要,于是人们发明了算盘、纳皮尔棒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 世纪初,英国著名浪漫主义诗人,代表作《唐璜》。

相关帖子

欢迎来到这里!

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

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

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

  • 其他回帖
  • someone

    😄

  • UniVista 1

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

推荐标签 标签

  • OnlyOffice
    4 引用 • 2 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    6 引用 • 63 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 431 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 529 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 22 关注
  • FreeMarker

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

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

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

    98 引用 • 344 回帖
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    407 引用 • 1246 回帖 • 582 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • Java

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

    3187 引用 • 8213 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 113 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    351 引用 • 1814 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 16 关注
  • GitLab

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

    46 引用 • 72 回帖
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    69 引用 • 373 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 536 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 672 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 210 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 154 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 709 关注
  • Rust

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

    58 引用 • 22 回帖 • 1 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 529 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 8 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 599 回帖