Eileen'blog

番外一:前电子时代——从算盘到分析机

2026-05-10T09:01:00 文章

番外一:前电子时代——从算盘到分析机

本文是第一章《起源——从算盘到电子管》的扩展阅读。如果你对“电子出现之前人类如何计算”这段历史感兴趣,这里会给你一个完整的、有血有肉的故事。

在电子计算机诞生之前,人类已经与“计算”这件事纠缠了几千年。电子管、晶体管、集成电路——这些后来改变世界的东西,在那个时代还不存在。但这并不意味着前电子时代的历史不重要。恰恰相反,我们今天关于“计算”最核心的几个观念——二进制、可编程、软硬件分离、通用计算机——都是在齿轮和打孔卡的时代被第一次构想出来的。

这段历史常常被一笔带过。但如果你真的想理解“计算机为什么是今天这个样子”,就不能跳过巴贝奇和阿达。因为后来的ENIAC、冯·诺依曼架构、乃至你手里的这部手机,在思想层面,都不过是他们两人思想的迟来实现。

让我们从最古老的计算工具开始。

一、算盘:最成功的“专用计算器”

人类对“计算”的需求,远早于对“计算机”的想象。

早在公元前2700年的美索不达米亚,商人就开始用泥板刻痕来记录数字。但这些工具本质上只是“存储”数字的介质,而不是“运算”数字的工具。真正意义上的计算工具,是算盘。

算盘利用算珠的位置变化来表示数字,通过拨动算珠进行加减乘除。它的核心设计逻辑是:将数字编码为物理位置,通过手动操作实现运算规则。这一逻辑在算盘上被发挥到了极致。在没有电子计算器的年代,熟练的算盘手比任何人用纸笔计算都快。

算盘的伟大之处在于:它是一台“专用计算器”,而不是“通用计算机”。它只能做算术运算,不能做逻辑判断,不能根据条件改变流程,不能处理非数值信息。但作为一种“专用工具”,它的效率极高,以至于在今天的一些角落仍然在使用。

算盘的成功恰恰说明了“专用工具”的价值:当任务明确、场景固定时,专用化的设计往往比通用化更高效。这一逻辑,后来在苏联的计算机体系中得到了极致的体现——当西方朝着“通用计算机”的方向狂飙时,苏联在自己的封闭系统内,把“专用工具”的逻辑发挥到了相当高的水平。

历史地位:算盘是人类第一个大规模成功的计算工具,但它不是计算机——它是计算器。计算机与计算器的区别在于:计算机可以改变它的“行为”(通过改变程序),而计算器的行为是固定的。这个区别,后面会反复出现。

二、机械计算器:从帕斯卡到莱布尼茨

时间来到17世纪的欧洲。数学家们开始思考一个问题:能不能造一台“自动”计算的机器,而不需要人手动拨动算珠?

帕斯卡:为了帮老爸偷懒

1642年,法国数学家布莱士·帕斯卡给出了第一个答案。他发明的帕斯卡计算器,是世界上第一台可以自动进行加减法运算的机械计算器。它的原理是齿轮传动——每旋转一圈,就向相邻齿轮进位一格。这个“进位”机制,直到今天仍然体现在计算机的加法器中。

帕斯卡做这件事的动机很朴实:他爸爸是个税务官,整天算账算到头大。帕斯卡想帮老爸省点力气。你看,很多伟大的发明,最初都是为了“偷懒”。

莱布尼茨:二进制的最早预言

1673年,德国数学家戈特弗里德·莱布尼茨在帕斯卡的基础上进行了改进,发明了可以进行乘除法的步进计算器。但莱布尼茨对计算机史的贡献,远不止这台机器。

在研究机械计算的过程中,莱布尼茨提出了二进制的概念。他发现,任何数字都可以只用0和1两个符号来表示,加减法可以变得极其简单。他甚至设计了一台能进行二进制运算的计算器(虽然没造出来)。

二进制在当时只是一个数学游戏——莱布尼茨甚至从中看到了与中国《易经》阴阳哲学的契合。他大概想不到,两百年后,这个只有0和1的简单系统,会成为整个数字世界的基石。所有你今天看到的文字、图片、视频、程序,最终都会被翻译成0和1的序列,交给计算机处理。

历史启示:有些发明在诞生的那一刻,其真正的意义要到很久以后才会被理解。莱布尼茨的二进制如此,接下来要讲的巴贝奇分析机更是如此。

三、巴贝奇的分析机:超越时代的“通用计算机”设计

时间来到19世纪。英国数学家查尔斯·巴贝奇遇到了一个实际问题:当时的数学用表——航海需要它、工程需要它、天文需要它——全是人工计算的,错误百出。有一次他甚至在一张表里发现了上千处错误。他想:能不能造一台机器,自动计算这些表格?

差分机:高级计算器

1822年,他设计了差分机。这台机器可以自动计算多项式的值,精度达到20位小数。如果只到这里,巴贝奇就是一个“高级计算器”的发明者。但他没有停下。

分析机:通用计算机的蓝图

1834年,他构思了一个更激进的东西——分析机。分析机的设计包含了四个核心部件:

  • 存储库:用来存储数据和中间结果——相当于今天的内存。
  • 运算室:用来进行算术运算——相当于今天的CPU。
  • 控制器:用来控制机器的运行流程。
  • 输入输出设备:通过打孔卡片输入程序和数据,通过打印机输出结果。

分析机的革命性不在于“它会算”,而在于“它可以通过打孔卡片编程”。这意味着:给它不同的指令,它就能做不同的事情。加减乘除只是它的“技能”之一,而不是它的“全部”。这正是现代计算机的核心思想——硬件与软件分离,指令与数据分离。

打个比方:差分机就像是那种只能煮饭的电饭煲,插上电只能煮饭,干不了别的。而分析机就像一台可编程的微波炉——你可以输入不同的程序:解冻、加热、烧烤、烘焙。机器还是那台机器,换个程序就能干不同的事。

为什么没造出来?

巴贝奇的分析机最终没有造出来。原因是多方面的:英国政府断供了资金,当时的机械制造工艺达不到要求的精度,巴贝奇本人的脾气也让合作者难以忍受。但更重要的是:巴贝奇的设计实在太超前了。在蒸汽机时代,他的设计需要的是一台“用齿轮和杠杆实现的可编程通用计算机”——这个设想本身是成立的,但实现它的工艺基础要等到一百年后电气时代到来后才具备。

它的设计理念——通用性、可编程性、软硬件分离——在一百年后ENIAC诞生时被重新发现,然后成为了整个计算机行业的基础。巴贝奇的故事告诉我们:有时候,一个想法在“理论上可行”与“工程上可实现”之间,会隔着一百年的时间。分析机没有变成现实,不是因为它错了,而是因为它来得太早了。

四、阿达·洛夫莱斯:第一个看见“通用计算机”的人

比巴贝奇更值得记住的,是一个叫阿达·洛夫莱斯的女性。她是诗人拜伦的女儿,但她的母亲担心她继承父亲“危险的诗人倾向”,刻意让她学习数学和科学。结果是讽刺而美妙的:一个诗人的女儿,成了数学家。

与巴贝奇的相遇

阿达与巴贝奇相识于1833年,当时她只有17岁。看到差分机演示时,大多数客人的表情“像野蛮人初次见到镜子”,但阿达“明白其中的道理,并看出此发明的壮美”。巴贝奇很快发现了这位少女的才华,两人开始了长期的书信往来和合作。

注释G:世界上第一个计算机程序

1842年,巴贝奇在意大利做完一场关于分析机的演讲后,一位意大利数学家据此写了一篇论文。阿达将这篇论文从法文翻译成英文,但在译文后面附加了7篇注释,总字数远超原文。这些注释从A到G编号,其中最著名的是“注释G”。在注释G中,她详细描述了如何用分析机计算伯努利数,写出了一套完整的算法步骤,其中包含了循环、子程序和嵌套循环——这些概念直到100年后计算机真正出现时,才重新被“发明”。

如果阿达只写了伯努利数的算法,她会被记住,但不至于成为“传奇”。她真正超越时代的贡献在于:她理解了这个机器的本质。

通用计算的先知

巴贝奇设计分析机的初衷是“算数学”。但阿达看到了更多。她在注释中写道:“这个机器的适用范围不仅仅是数学。任何可以用符号表示的内容——音乐、逻辑、语言——都可以被这台机器处理。”

她还写道:“我们可以非常形象地说,分析机使用的代数模型,与杰卡德提花机织出花和叶子的原理相似。”杰卡德提花机使用打孔卡来控制织布图案。阿达在这里指出了一个极其深刻的思想:程序(打孔卡)与数据(被处理的材料)是分离的,同一套程序可以处理不同的输入,产生不同的输出。这正是“通用计算机”的核心。

她还明确预见到了人工智能的可能性,并对此做出了判断:“分析机不能创造任何东西。它只能执行我们命令它做的计算。它没有能力预测任何数学真理或逻辑关系。”这句话后来被图灵称为“洛夫莱斯夫人异议”,成为人工智能哲学讨论中的一个经典命题。

遗忘与重见

1852年,阿达因癌症去世,年仅36岁。她被安葬在诺丁汉,长眠于她从未真正认识过的父亲拜伦墓旁。她的工作被遗忘了近一个世纪,直到1953年才被重新发现。1980年,美国国防部将历时20年研制的高级编程语言命名为Ada语言,以纪念她的贡献。

阿达·洛夫莱斯的重要性在于:巴贝奇发明了“计算机的躯体”,阿达预见了“计算机的灵魂”。她不是“世界上第一个程序员”——这个标签太窄了。她是世界上第一个理解“通用计算”意义的人。

五、前电子时代的遗产

让我们从算盘、齿轮和分析机的故事中退后一步,看看这段历史给我们留下了什么。

第一,二进制的种子。 莱布尼茨在17世纪种下的二进制,在200年后电子时代到来时,被证明是最适合电子开关的记数系统。这不是巧合——二进制天然匹配“开/关”物理状态。三进制在理论上更高效,但需要三稳态器件,工业成本太高。在岔路口,历史选择了二进制。

第二,通用计算的蓝图。 巴贝奇的分析机在思想上已经包含了现代计算机的所有核心要素:存储、运算、控制、输入输出,以及最重要的——可编程性。它没有变成现实,不是因为设计错了,而是因为工艺基础跟不上。这种“理论超前于工程”的情况,在技术史上并不罕见。

第三,软硬件分离的意识。 阿达·洛夫莱斯明确指出:程序和数据是分离的,机器可以换一个程序就换一个功能。这个意识在今天看来理所当然,但在1830年代是石破天惊的。没有这个意识,就不会有后来的软件产业。

前电子时代的这三笔遗产,被后来的电子计算机完整继承了下来。当你下一章读到冯·诺依曼架构时,你会发现:那个架构里最重要的“存储程序”概念,其实就是巴贝奇和阿达在100年前就已经勾勒出来的东西。

没有齿轮,就没有芯片。没有打孔卡,就没有App Store。历史就是这样一环扣一环地展开。


番外预告:本系列的番外篇会不定期出现,专门展开那些在主线上无法充分讲述的“平行叙事”——比如苏联的三进制计算机Setun、IBM与苹果的早期恩怨、互联网诞生前的BBS文化等。下一章,我们将回到主线,讲述冯·诺依曼如何把巴贝奇的蓝图变成真正的电子计算机架构。