什么是“计算机之父”?他发明了什么?
通常被誉为“计算机之父”的是19世纪英国的数学家、发明家、机械工程师查尔斯·巴贝奇(Charles Babbage)。他并非发明了我们今天使用的电子计算机,而是在1830年代构思并设计了一种称为“分析机”(Analytical Engine)的机械式通用计算装置。在此之前,他还设计了差分机(Difference Engine),一种用于自动计算多项式并消除人工计算误差的专用机械装置。
分析机是巴贝奇最重要的概念发明,因为它包含了现代计算机的许多基本组成部分:存储器(Store)用于存放数字,运算器(Mill)用于执行算术运算,控制单元(Control)用于确定操作顺序,以及输入(Input)和输出(Output)机制。尽管在他生前分析机未能完全建成,但其设计理念远远超越了时代。
巴贝奇为什么被称为“计算机之父”?他试图解决什么问题?
巴贝奇之所以获得“计算机之父”的称号,主要是因为他的分析机设计。在那个时代,复杂的数学和导航表格(如对数表、三角函数表)是手工计算的,过程中极易出错。这些错误可能导致工程项目失败、船舶导航错误甚至灾难。巴贝奇首先设计差分机是为了自动且无误地计算这些表格,直接将结果印在铜板上以防止抄写错误。
而分析机的伟大之处在于其通用性和可编程性。巴贝奇不仅想制造一个能自动计算特定函数的机器,他还想制造一个可以执行*任何*算术计算序列的机器,其操作可以通过外部指令(打孔卡片)来改变。这种将程序(指令)与数据分离,并允许机器根据程序执行不同任务的思想,是现代计算机体系结构的基石。尽管是机械式的,但分析机在概念上实现了图灵完备性(Turing Completeness)所需的许多特征。因此,他被称为“计算机之父”是因为他首次提出了现代计算机的核心概念,而不仅仅是简单的计算工具。
分析机是如何设计的?它依靠什么原理工作?
分析机完全是一种机械装置,其工作原理基于齿轮、杠杆和轴的精密协同。它的设计极其复杂,主要组成部分如下:
- Store(存储器): 这相当于现代计算机的内存,由一排排的计数轮组成,每个轮子可以存储一个数字。设计容量预计可以存储1000个50位长的数字。
- Mill(运算器): 这是机器进行加、减、乘、除等算术运算的部分,类似于现代CPU。数字会从Store传输到Mill进行计算,然后结果再送回Store。
- Control(控制单元): 这是最革命性的部分,负责指挥Mill和Store按正确的顺序执行操作。巴贝奇计划使用类似提花织布机(Jacquard loom)的打孔卡片(Punched Cards)系统来输入指令(操作卡)和数据(数字卡)。不同的打孔模式代表不同的指令或数字,机器会读取卡片上的孔来控制其内部机构的动作。
- Input/Output(输入/输出): 数据和指令通过打孔卡片输入,结果可以通过打孔卡片或自动打印机输出。
整个机器的运转将由一个主计时机构控制,通过凸轮和杠杆驱动各个部件精确同步地运动。每一次算术操作(如加法)都需要齿轮转动和机构联动来完成。这是一个庞大而精密的机械交响乐设想。
巴贝奇在哪里设计和建造他的机器?现在可以在哪里看到它们?
查尔斯·巴贝奇生活在19世纪的英国(1791-1871),他的大部分设计和初步的建造尝试都是在伦敦进行的,主要在他自己的住所或与合作的工程师和工匠一起进行。
然而,由于技术的限制(当时无法制造出足够精密和一致的机械零件)以及资金和管理上的困难,巴贝奇在生前并没有完全建成任何一台完整的差分机或分析机。
直到20世纪末和21世纪初,基于巴贝奇在1847-49年设计的差分机二号(Difference Engine No. 2)的图纸,英国伦敦科学博物馆(Science Museum, London)的工作人员使用19世纪的技术和公差,成功建造了一台完全可以工作的差分机二号及其配套的打印机。这台机器证明了巴贝奇的设计在理论上是可行的,并且如果当时的工程技术能够达标,它是可以被建造出来的。
你可以在伦敦科学博物馆看到这台令人惊叹的差分机二号的复制品(以及巴贝奇的一些原始部件和更小型的实验模型),这被认为是目前最接近看到巴贝奇设想的机器工作的机会。分析机由于更为复杂,目前还没有建成完整的物理模型。
巴贝奇的机器设计有多复杂?它需要多少部件?需要多少钱?
巴贝奇的差分机二号设计包含了大约8,000个独特的机械零件,总共有约25,000个零件,重达数吨。建造伦敦科学博物馆的那台机器花费了近17年时间,其复杂性和所需的工程精度可见一斑。
分析机的设计则更为庞大和复杂。虽然没有完整的最终图纸,但据估算,一台完整的分析机可能需要数百万个精密加工的机械零件。它的物理尺寸会非常巨大,可能占据一个大房间。
至于成本,巴贝奇在差分机项目上获得了大量的政府资助,但由于项目进展缓慢、设计变更频繁以及制造困难,最终政府撤回了资助,花费巨大但机器仍未建成。分析机主要停留在设计阶段,巴贝奇自己投入了大量的时间和金钱,但从未获得足够的外部资金来完成如此巨大的工程。如果要在19世纪建造一台完整的分析机,其成本将是天文数字,可能相当于当时国家预算的一大部分。这也是它未能建成的重要原因之一。
艾达·洛芙莱斯是如何与巴贝奇的机器联系在一起的?她“如何”做出了贡献?
在讨论巴贝奇的分析机时,不得不提奥古斯塔·爱达·金,洛芙莱斯伯爵夫人(Augusta Ada King, Countess of Lovelace),通常被称为艾达·洛芙莱斯(Ada Lovelace)。她是一位数学家,也是诗人拜伦勋爵的女儿。
艾达·洛芙莱斯在1840年代与巴贝奇合作,她翻译了一篇关于分析机的法文文章,并在翻译的基础上增加了自己的大量“笔记”(Notes)。这些笔记不仅详细解释了分析机的工作原理和潜在能力,更重要的是,她深入理解了机器的通用性。她预见到分析机不仅可以用于纯粹的数值计算,还可以处理其他类型的信息,如音乐、文本和图像,只要这些信息能够被编码成数字形式。
在笔记中,艾达为分析机编写了一个计算伯努利数的算法,这被认为是历史上第一个为机器设计的算法,因此她被广泛认为是第一位程序员。她详细描述了如何使用打孔卡片来“编程”分析机执行这个复杂的数学任务,展示了循环(loops)和子程序(subroutines)等现代编程概念的雏形。
“我们也许可以说,分析机织出了代数模式,就像提花织布机织出了花朵和叶子一样。” – 艾达·洛芙莱斯,她的这段著名引述形象地说明了她对机器可编程性的理解。
因此,艾达·洛芙莱斯的贡献在于她深刻理解并阐释了分析机的潜力,特别是其可编程性和超越纯粹计算的通用性,并通过具体算法展示了“如何”对机器进行编程,为未来的计算科学奠定了理论基础。
为什么巴贝奇的分析机在当时未能建成?
尽管巴贝奇的设计极具前瞻性,分析机在他生前未能建成是多种因素共同作用的结果:
- 技术限制: 19世纪的精密机械加工技术无法达到建造分析机所需的精度和一致性。需要制造数百万个误差极小的齿轮、轴和连接件,这是当时工业能力难以企及的。
- 资金问题: 差分机项目耗费巨大且未能完成,导致政府失去了信心并撤回了资助。分析机项目更加庞大,巴贝奇主要依赖自费和一些私人支持,资金始终是巨大的瓶颈。
- 巴贝奇的个性: 巴贝奇是一位完美主义者,他不断地修改和改进设计,这使得建造工作难以跟上,也增加了成本和复杂性。
- 管理和沟通: 协调大量的工匠和工程师进行如此复杂的项目管理难度巨大。巴贝奇与他的首席工程师约瑟夫·克莱门特(Joseph Clement)之间的冲突也阻碍了进展。
- 时代的局限性: 当时只有极少数人真正理解分析机的革命性意义,社会和科学界的主流并没有充分认识到其价值,缺乏广泛的支持。
这些因素综合导致了巴贝奇的宏伟设想未能在他有生之年完全实现。直到一个世纪后,随着电子技术的发展,他的设计理念才被重新发现并应用,最终促成了电子计算机的诞生。