Analytical Engine — 用中文阅读
故事标题目前仍是英文,正文是中文。

在数字时代之前,世界面临着一个棘手的问题:对精确计算的永无止境的需求。这个充斥着人为错误的时代,手工计算给科学、工程和商业带来了巨大的瓶颈。正是在这样的背景下,在英格兰伦敦,富有远见的数学家查尔斯·巴贝奇构想出了一种机器,它不仅能计算,还能按顺序思考,为后来的每一台计算机奠定了基础。 “计算的苦差事耗费了心智,也耗费了巨额财富,”查尔斯·巴贝奇宣称,他的声音充满信念,“我们需要一台能够以万无一失的精度执行任何计算的机器,而不仅仅是几种特定类型的计算。”

在英国和欧洲各地,房间里挤满了“计算机”——也就是人,通常是女性,她们辛勤地计算着用于航海、天文学和保险的表格。这项巨大的工作是必要的恶,却又不断地被人类的错误所破坏。一个单一的错误就可能让一艘船偏离航线,或者危及一次科学考察。 “史密斯小姐,又一个错误!”一位严厉的主管叹了口气,指着一本账簿说,“我们最新的航海表显示出无法接受的差异。光是人工核对就要花上好几周。”史密斯小姐,一位年轻女性,头发向后梳起,藏在帽子下面,脸上沾着墨迹,她回答说:“先生,计算量实在太大了。即使我们再小心,疲劳也会导致疏忽。目前这种固定、顺序的计算方法本身就很脆弱。”

巴贝奇最初涉足机械计算的尝试是差分机。它旨在利用有限差分法制表多项式函数,有望消除专业计算中的错误。然而,差分机虽然巧妙,却仅限于解决一种类型的问题,这揭示了对一种更通用、通用型机器的需求。 “差分机虽然是个奇迹,但最终还是一种专用仪器,”巴贝奇向他的总工程师约瑟夫·克莱门特解释道,他指着一张铺在巨大工作台上的详细蓝图。“它对于多项式来说很优雅,但缺乏解决真正多样化数学问题所需的普遍性。我意识到一台机器不仅要能计算,还要能适应其操作序列——这正是真正可编程性的定义。”克莱门特,一个穿着实用工作服的健壮男人,若有所思地点点头,“确实如此,先生。从固定流程转向灵活流程是一个巨大的飞跃。”

分析机代表了巴贝奇一次深刻的概念飞跃。他设想的不是一台单一的、庞大的计算器,而是一台拥有独立模块化组件的机器:一个用于内存的“仓库”(Store),一个用于执行算术运算的“运算室”(Mill),以及一个用于指导操作和数据流动的“控制”单元。这种职责分离的架构,与几个世纪后定义计算机的架构如出一辙。 “约瑟夫,想象一下,”巴贝奇一边在崭新的纸上飞快地勾画着,一边详细解释道,“这台机器需要一个专门的‘仓库’来存储所有数字,包括初始值和中间结果,就像我们的账本一样。然后,一个‘运算室’——我们的算术引擎——来执行实际的和、差和乘法。但至关重要的是,一个‘控制’单元来协调数字在它们之间的移动,并决定操作的顺序。这种模块化是其通用性的关键。”克莱门特回应道:“所以,它不仅仅是一个计算器,而是一个计算的组装者,遵循指令。一个真正的机械大脑。”

为了将指令和数据输入他复杂的创造物中,巴贝奇转向了一项当时具有革命性的技术:打孔卡,这项技术借鉴自约瑟夫·玛丽·雅卡尔的自动织布机。这些带有精确图案孔洞的卡片将发挥双重作用,既指示数值输入,也指示分析机的操作顺序——这是最早的计算机编程形式。 “其高明之处在于对雅卡尔发明的改造,”巴贝奇解释道,他举起一张坚固的长方形打孔卡,卡片表面布满了小而圆的孔洞,“这些卡片,就像那些编织复杂图案的卡片一样,可以指示机器。一套用于数字,另一套用于操作。这意味着我们只需更换卡片就能改变程序。”克莱门特检查着卡片,评论道:“所以,机器的逻辑,它的根本目的,变得可编程,而不是硬连接的。这真是非凡,先生,一个深刻的抽象。”

“运算器”,即分析机的算术单元,是机械工程的杰作。它不是通过电脉冲,而是通过精确啮合的齿轮来执行加、减、乘、除运算。数字由轮子的旋转位置表示,复杂的运算则由齿轮、凸轮和杠杆精心编排的“舞蹈”来执行,其中包括用于算术溢出的复杂“进位”机制。 “在运算器内部,”巴贝奇详细阐述道,他指着一张详细蓝图的某个部分,“每个数字轮可以旋转十个位置,代表零到九的数字。当一个轮子旋转超过九时,一个小杠杆就会启动,机械地向下一个轮子添加一个‘进位’,就像我们用笔和纸计算一样。”克莱门特在图表上描绘着齿轮,评论道:“先生,这种进位机制的复杂性才是真正的天才之处。它确保了跨多个数量级的准确性,这是复杂计算的关键要素。”

“存储器”由一排排齿轮组成,每个齿轮都能存储一个数字——这是机器的机械记忆。“控制单元”负责解释穿孔卡片,它就像指挥家一样,指挥这些数字在“存储器”和“运算器”之间移动,并安排具体的算术运算顺序。这种动态的相互作用使得复杂的、多步骤的计算能够自动执行。 “‘存储器’保存我们的数值,”巴贝奇解释道,他指着一张示意图,上面显示着许多垂直的数字轮柱。“但正是‘控制单元’,在操作穿孔卡片的引导下,协调着一切。它会告诉‘运算器’从‘存储器’中取出哪些数字,执行什么操作,以及将结果送回何处。这是一个连续的、自动化的反馈循环。”克莱门特点点头:“所以,‘运算器’计算,‘存储器’记忆,‘控制单元’指挥。一个真正共生的机械系统。”

分析机最深刻的创新在于其“条件分支”能力——能够根据中间结果改变自身操作序列的能力。这意味着机器可以做出决策,根据数字是正数还是负数,或者结果是否为零来执行不同的计算。这是真正的算法逻辑的诞生,超越了固定计算,迈向了自适应智能。 “分析机编织代数模式,就像提花织机编织花朵和叶子一样,”埃达·洛芙莱斯观察到,她的目光因知识的热情而闪耀。她转向巴贝奇,脸上流露出深刻的领悟。“这种条件分支的能力——机器能够根据它计算的数字来‘选择’自己的路径——意味着它不仅仅能计算。它能遵循逻辑论证,调整其操作,这真是前所未有的。这是逻辑机器的黎明,而不仅仅是数值机器。”巴贝奇笑容满面地说:“正是如此,我亲爱的埃达,正是如此。这才是真正的算法力量所在。”

尽管巴贝奇构想了硬件,但真正领会分析机全部潜力的却是埃达·洛芙莱斯,拜伦勋爵的女儿。她在巴贝奇的论文中留下了大量注释,其中包括现在被公认为世界上第一个计算机算法,专门为分析机设计,用于计算伯努利数。她阐述了循环和子程序等概念,设想了一台远不止能处理数字的机器。 “这台机器的潜力远远超出了算术范畴,进入了符号操作的领域,”埃达·洛芙莱斯沉思着,她的笔在一页写满了复杂数学符号和流程图的纸上沙沙作响。她抬起头,对巴贝奇说:“如果我们能设计出一系列操作——算法——让机器能够重复执行,或者作为子程序调用,那么它的应用将是无限的。我们可以指示它执行一系列步骤,不仅一次,而是反复多次,并适应每个循环。我已概述了一种使用这种递归过程计算伯努利数的方法;这是第一个真正的程序。”巴贝奇点点头,欣赏着她的工作:“你的真知灼见,埃达,阐明了它真正的智力深度。”

尽管巴贝奇和洛芙莱斯有着开创性的远见和不懈的努力,但分析机在他们有生之年从未完全建成。那个时代的工程限制,加上巴贝奇对精益求精的不断追求以及政治资金方面的挑战,意味着这台实体机器在很大程度上仍停留在蓝图阶段。然而,它的概念框架——“存储”和“运算器”、条件分支以及通过打孔卡进行编程——成为了计算领域经久不衰的基础。从超级计算机到智能手机,每一台现代数字设备都回响着巴贝奇最初的架构天才。 “尽管我的分析机仍然是黄铜和钢铁的梦想,”巴贝奇在他晚年反思道,“它的原理,它的逻辑,总有一天会改变世界。正如诗人阿尔弗雷德·丁尼生勋爵曾经写道,‘旧秩序更迭,新秩序取而代之。’我相信,这个新秩序将建立在机械思维的基石之上。”他在维多利亚时代的孤独中说出的这些话,预示着一场他无法亲眼目睹的革命。