in

查尔斯·巴贝奇分析引擎解释:你需要了解的一切

关键要点

  • 分析引擎是一种通用的、全面的、由程序控制的数字计算机,无需人为干预。
  • 分析引擎设计用于使用打孔卡进行编程。这是它最具突破性的特点之一。
  • 没有证据表明在查尔斯·巴贝奇之前有人尝试创建这个设计。

这是分析引擎的一个全面视图。

分析引擎由查尔斯·巴贝奇创建,它是一种通用的、完全由程序控制的机械数字计算机,无需人为干预。它的设计是使用打孔卡进行编程,这是其中最具突破性的特点之一。分析引擎的设计意图是足够大,容纳1,000个50位数,这比1960年之前构建的任何计算机都要多。

查尔斯·巴贝奇分析引擎历史

查尔斯·巴贝奇(1791-1871)创造了分析引擎。

令人惊讶的是,世界上第一台数字计算机(包括目前数字计算机的几乎所有关键概念)竟然诞生于19世纪30年代。这台机器就是分析引擎,由著名的查尔斯·巴贝奇创造。

快速事实

创建时间
1834年
创造者
查尔斯·巴贝奇
最初用途
分析引擎是英国数学家和先驱查尔斯·巴贝奇设计的一种拟议的通用机械计算机。
成本
不适用

1834年,巴贝奇对他的第一台计算机——专用的差分机进行了几处改动。在一系列计算中需要一个新的常量时,必须手动插入原始设计中。巴贝奇设计了一种机械插入差异的方法,通过将差分机的轴放置在一个圆形模式中,使得结果列靠近最后一次差异,从而方便访问。他将这个设计称为“吃掉自己尾巴的机器”或“铺设轨道的机车”。

但这很快导致了使用完全独立的方式来操作机器的概念,使其能够按照需要的任何顺序和次数进行加法和所有算术运算。

不幸的是,巴贝奇在他去世时仍在致力于分析引擎的研发,无法亲眼见证其运行。而是由他的儿子亨利·巴贝奇继续了他的工作。

查尔斯·巴贝奇分析引擎的工作原理

磨坊、读取器、存储器和打印机都是该机器的组成部分。这些是今天计算机中最关键的组件。磨坊是计算单元,类似于当前计算机的中央处理单元(cpu);存储器用于在处理之前存储数据,与现代计算机的内存和存储器类似;打印机和读取器则是输入和输出设备。

与“difference engine”一样,该项目比以前开发的任何东西都要复杂得多。它具有一个“存储器”,可以容纳1,000个50位数,比1960年之前构造的任何计算机都多。这台机器由一个人操作,并且使用蒸汽驱动。与“difference engine”一样,其打印功能也很有野心:巴贝奇试图尽可能地自动化这个过程,一直到打印数字表格。

分析引擎的另一个独特特点是阅读器。巴贝奇使用了雅卡尔织布机的卡片阅读技术来输入数据(数字)到打孔卡上。指令将被编写在卡片上,这是受到joseph-marie jacquard的启发的另一个概念。它将是可编程的,并且由于使用了指令卡,比任何机器更加灵活适应。 (在1843年有关分析引擎的法文文章的翻译中,数学家ada lovelace描述了人们如何使用机器来按照程序计算伯努利数。)由于此原因,她被称为“第一位计算机程序员”)。

可编程的另一个特性是可以按照除了顺序之外的任何顺序运行指令。它应该具有条件控制传输(也称为条件分支)的决策能力,在这种情况下,它可以根据指定数据的值跳转到不同的指令。不幸的是,20世纪早期的许多计算机缺乏这个引人注目的功能。

查尔斯·巴贝奇分析引擎:历史意义

查尔斯·巴贝奇分析引擎是一台通用的数字计算机。

根据目前的技术,构建巴贝奇雄心勃勃的设计是不可能的。此外,巴贝奇未能通过“difference engine”来创建所承诺的数学表格,这使得政府对进一步融资失去了兴趣。事实上,英国政府可以看出,巴贝奇对创造力的兴趣超过了建立表格。

尽管如此,巴贝奇的分析引擎在世界上是首屈一指的。它最重要的特点是通过更改打孔卡上的指令来修改其操作。直到这一创新出现之前,所有的机械计算器或高级计算器,如“difference engine”,都是可用的。分析引擎是第一台应该被称为计算机的机器,尽管巴贝奇从未完全完成它。

该机器的目标可以如下所述(根据发明者的最小儿子亨利·巴贝奇的说法):

这是一台可以计算数学家明确解决方法的任何公式或函数的数值或值的机器。它按照数学家事先确定的任何顺序执行普通的算术规则,任意多次和任何数量。它必须是绝对自动化的,数学家的奴隶,执行他的命令并解放他从计算的苦差。它必须打印结果,或任何中间结果。

这些是用来编程分析引擎的打孔卡。

babbage打算设计一台机器,它具备四种基本算术运算,与仅使用加法的difference engine相比。从现代数字计算机的类比来看,analytical engine的设计原则可以分为:

  1. 输入:从1836年起,打孔卡片(见附近的照片)成为将数字数据和操作指令输入机器的基本机制。
  2. 输出:babbage的基本机制始终是打印设备,但他在采用打孔卡片作为输入和输出之前,也考虑过图形输出设备。
  3. 内存:对于babbage来说,基本上就是存储器的数轴,尽管他还开发了使用打孔卡片作为存储器的层次化存储系统,用于存放无法容纳在存储器中的附加中间结果。
  4. 中央处理器:babbage称之为the mill。与现代处理器类似,它提供存储正在操作的数值的最即时的位置(寄存器);用于使这些数值执行基本算术运算的硬件机制;用于将外部提供的面向用户的指令详细控制内部硬件的控制机制;以及同步机制(时钟),以按照精确的时序执行详细步骤。analytical engine的控制机制必须自动执行操作,它由两部分组成:由大型鼓(称为barrels)控制的低级控制机制和由打孔卡片控制的高级控制机制,后者由jacquard为织机开发并在19世纪初广泛使用。

analytical engine的鼓。

为了进行算术运算所需的一系列较小操作是由大型鼓(见附近的图)控制的。鼓的外表面固定有螺钉,方式与音乐盒鼓或风琴鼓的引脚相似。鼓协调了引擎的内部运动,详细规定了如何进行乘法、除法、加法、减法和其他算术运算。

插图中显示的鼓每个垂直行只有几个螺钉位置。在实际机器中,鼓要大得多,因为它们控制和协调成千上万个零部件的相互作用。每一行可以包含多达200个螺钉位置,每个鼓可以有50到100个单独的行。整个机器有几个不同的鼓来控制不同的部分。当然,这些鼓必须紧密地协调在一起。当鼓转动时,螺钉会激活机构的特定运动,螺钉的位置和排列确定了每个运动的动作和相对时间。

转动鼓的行为因此自动执行一系列运动,以执行所需的更高级别操作。这个过程是在engine内部进行的,对用户来说在逻辑上是不可见的。这种技术在计算中现在称为微程序(尽管babbage从未使用过这个术语),它确保执行执行函数所需的较低级别操作。

对于更高级的控制机制,巴贝奇最初计划使用一个大型中央滚筒来指定计算的步骤。然而,这个想法似乎不切实际,因为这将需要更改超级滚筒上的凸轮,这可能是一个麻烦的操作。手动重新设置中央滚筒上的凸轮以告诉机器要做什么的任务过于繁琐和容易出错,无法保证可靠性。更糟糕的是,任何一组指令的长度将受到滚筒大小的限制。
他在控制问题上的努力让巴贝奇在1836年6月30日取得了真正的突破。他构思了通过冲孔卡片输入来向引擎提供指令和数据的方法,就像这些卡片,在雅卡尔织机中使用的那样。这并没有使中央滚筒变得过时或取代它。冲孔卡片提供了控制层次结构的新的顶层,用于控制中央滚筒的定位。中央滚筒仍然存在,但现在有了永久的指令序列。

它承担了微程序设计的功能,就像其他滚筒一样。如果每个操作都有单独的滚筒,以及一个用于控制操作滚筒的中央滚筒,冲孔卡片提供了一种向机器(中央滚筒)指示我们希望执行哪些操作以及以什么顺序的方法,即高级编程引擎。

雅卡尔织机,由法国人约瑟夫·玛丽·雅卡尔发明。

卡片的原理公开借鉴了雅卡尔织机(一种机械织机,由法国人约瑟夫·玛丽·雅卡尔在19世纪初发明,基于他的同胞巴西尔·布伏朗(1725)、让·猎鹰(1728)和雅克·沃克桑松(1740)的早期发明),它使用一串冲孔卡片自动控制织物的图案(见附近的照片)。
在织机中,杆与金属钩相连,每个钩都可以抬起框架之间拉直的一根纵向线。杆被集中在一个矩形束中,卡片依次按在杆的末端。

如果孔与杆重合,那么杆就通过卡片而不采取任何行动。如果没有孔,卡片就会将杆推回,以激活抬起相关线的钩子,从而允许携带横向线的梭子从下面经过。卡片用线、丝带或胶带铰链连接在一起,扇形折叠成大堆,形成长序列。织机通常非常庞大,织机操作员坐在框架内部,通过脚踏板或手柄逐个浏览卡片。卡片上的孔的排列决定了织物的图案。

在完成1847年对分析引擎设计的工作后,巴贝奇转向了设计第二台差分机的工作,利用了为分析引擎开发的改进和简化的算术机制。1857年,巴贝奇重新开始设计分析引擎。在这个新的工作阶段,巴贝奇对用自己的资源建造分析引擎充满了兴趣。逻辑设计有所简化,但最重要的是,提出了更简单、更便宜的实现基本机制的方法。

babbage首次尝试使用金属板冲压制作齿轮和类似零件。后来,他采用了压力压铸技术来制造零件-这是一种在19世纪末期才开始广泛商业使用的新技术。babbage使用这些新技术建造了许多机械实验模型,在他于1871年去世时,一台简单的磨坊和印刷机构的模型即将完成(参见下图)。

查尔斯·巴贝奇的儿子亨利·普雷沃斯特·巴贝奇

babbage的计算机以及所有相关材料都由他最年轻的幸存儿子、陆军少将亨利·普雷沃斯特·巴贝奇(1824-1918)继承下来(参见附近的图片),他对父亲的工作表现出了浓厚的兴趣。即使是在青少年时期,亨利和他年长的兄弟杜格尔德也在巴贝奇的绘图室和车间里学习车间技能。亨利后来对差分机和分析机的设计有了深入的了解,并与他的父亲建立了密切的关系,他从印度的军队服役期间的休假中经常去探望父亲。巴贝奇把他的设计图纸、车间和存活下来的引擎实物都留给了亨利,他试图在巴贝奇去世后继续他父亲的工作并宣传引擎。

1871年10月,亨利在他父亲的床边,巴贝奇去世了,从1872年开始,他继续努力完成他父亲的工作,然后在1875年退休后间歇地继续。在为差分机1号组装了一些小型演示件之后(其中一个他送给了哈佛大学。在20世纪30年代,这件作品引起了哈佛马克一的创始人霍华德·艾肯的注意)。

1888年,亨利在英国科学发展协会的一次会议上展示了分析机的一个部分,可以进行29位数的运算,包括预测进位装置。

然后,亨利在1910年为mill构建了一台实验性的四功能计算器。实际上,亨利决定不继续原始设计的分析机,而是开发一台手动操作的加法、减法、乘法和除法(四功能计算器),并将分析机的磨坊和印刷机构计划的机械装置整合进来(参见下图)。使用组装好的分析机磨坊,他可以进行简单的计算-在这种情况下,产生π的倍数。

由亨利·巴贝奇建造的分析机磨坊和印刷机构的一部分。

亨利在二十世纪初完成了这台机器,当时他自己已经是一位老人,但这台机器似乎从未可靠地工作过。此外,亨利对引擎的工作是稳定的,但缺乏他父亲伟大查尔斯·巴贝奇的勇气和灵感。

接下来…

Written by