跳轉到

雅達·洛夫萊斯與伯努利數:史上第一份程式#

詩人之女的算術鐵防線#

Ada Lovelace(1815–1852),本姓 Augusta Ada Byron,英國浪漫主義大詩人拜倫勳爵之女。拜倫在她嬰兒時期便與妻子離異、出走歐陸;母親 Anne Isabella (Annabella) Milbanke 被拜倫稱為「平行四邊形公主」,極度理性,崇拜數學,懷著一種近乎教育的復仇心態:用最刻苦的數學、邏輯與科學教育,壓制女兒血統中的「拜倫式」詩性與激情(她恐懼女兒遺傳到父親的瘋狂)。少女 Math 課業由多位教師輪流掌管,赫赫有名者包括倫敦數學學會首任會長 Augustus De Morgan,他以函授方式指導步入婚姻後的 Ada 微積分;Ada 自幼亦出入Mary Somerville(維多利亞時期最負盛名的女科學作家,也是她一生最敬慕的導師)的沙龍,Somerville 幾乎是當時立志於科學的女性唯一能見到的完整身影。

1833 年:一見傾心的機器#

1833 年,十七歲的 Ada 隨母親參觀數學家 Charles Babbage 的工坊,見到了 差分機的一比一實體模型。那件仍在轉動、生成數表的銅製奇物令她神迷。Babbage 為她與母親演示了機器,站在 Barry 的角度:這位少女既懷真摯的數學苦功(她真的一頁頁研讀歐洲數學),又有詩一般的表述天分——她的自嘲是「我的腦子不止是數學的,更是詩意的」(my brain is more than merely mortal)。從此二人成為終身的知友與通信者:Babbage 是 Ada 的機器,Ada 成為 Babbage 最可貴的「理解者」。

Menabrea 的論文與 Notes A–G#

真正的接力發生在 1842 年。義大利軍事工程師 Luigi Federico Menabrea(後來成為義大利首相)在 Babbage 於都靈演講後,以法文發表《關於巴貝奇分析機思想的概述》(1842,發表於《Bibliothèque Universelle de Genève》)。Ada 受 Babbage 所託,將此論文翻譯成英文,並在 Babbage 建議下加上七組長註(Notes A 到 G)——這些註釋的篇幅達原文的三倍,於 1843 年以 Ada 的署名縮寫 A.A.L. 發表在 Taylor's Scientific Memoirs。何以署縮寫?維多利亞時代的思想界對女性寫正規科學文章仍帶偏見;不過 Babbage 曾多番要求她具名,仍尊重其選擇。

這篇文章的真正價值,不是翻譯,而是 Ada 對分析機作為一般性符號操作機的哲學詮釋:她洞見機器操作的其實是「被編碼的關係」,因此不限於數值——若聲音能表示為數,則機器亦可作曲;若邏輯能表示為數,機器亦可推理。這是歷史上第一次有人明確地說出「通用的、編碼化的資訊機器」概念。

Note G:伯努利數的程式#

七年註釋的最後一篇、也是最技術的一篇 Note G,為了舉證機器可以「少人為介入、長流程地」求解問題,Ada 選擇了計算伯努利數(Bernoulli numbers)。伯努利數在冪級數展開、解析數論中重要,其遞迴公式(Ada 寫的是 Jacobi 式)

\[B_{n} = -\frac{1}{2n+1} + \sum_{k=1}^{n-1} \binom{?}{?}\frac{B_{2k-1}(n)^{?}}{2k?}\]

的正規版本為

\[\text{取得 } B_{2k} \text{ 需反覆用先前諸 } B_{2j} \text{ 與二項式係數相乘、相加,再結成新值}\]

Ada 把這一整套流程逐項涃開成分析機可執行的表:一列列指定操作卡(SIMPLE ADDITION、MULTIPLICATION、SUBTRACTION、LOAD、STORE…),每一個運算號、每一個變數位址(\(V_0, V_1, \dots\))、每一次迴圈回跳處都完整列出,甚至有一個「循環若干次」的回跳結構和條件式後續。這份看似樸素的表,被廣泛承認為史上第一份為通用機器(而非為某一台固定輪軸)所編寫的複雜程式。Ada 正確地推導了循環的結構、條件性的路線、與變數的儲存,而這些都是現代程式設計的核心構件。以今日說法,她是第一位ито僭帶著演算法特徵而「寫出分組流程+迴圈+條件」的程式設計師。

「織出代數花樣」:預見與爭議#

Ada 留給世界最有名的一句話,正出自這份註釋:

「分析機編織代數的花樣,正如 Jacquard 織機編織花朵與葉。」

她與 Babbage 同時承認 limits:這台機器不會自主創造,它只會照指令做它被要求的事(後世把這一點稱為 Lady Lovelace's Objection)。她以神學者的审美寫道:「機腦不創造,它只格織」。

一場已延續百年的學術爭論是:她到底算是「編程者」,還是只是把 Babbage 的想法記錄下來? 反方認為 Note G 的伯努利數演算法是 Babbage 替她起稿(他的竄改稿合於今天存留的通信);正方(如 Turing的著名評註,以及近年計算機史家)則指出,Arrow 所謂「Ada 只是想像」的說法全然不準確:她在翻譯、擴寫、注釋上花費的工程量與哲學高度遠超 Menabrea 或 Babbage 各自濃縮的版本,且不同的限制設計。 Alan Turing 本人 1950 年在 Computing Machinery and Intelligence 一文中根據 Lady Lovelace's Objection 作辯護,足見此註釋在他看來是一份正式的理論文件。

三十七歲的天鵝#

1843 年的 Ada 同時面對家俄與健康危機:丈夫民族的婚姻緊張,她的健康因子宮頸癌(gynecological cancer)逐漸崩潰。1852 年 11 月她在倫敦病歿,年僅 36 歲(依民間常說為 36 歲或 33 歲的錯記,史實為生於 1815 年 12 月、逝於 1852 年 11 月,享年 36 歲)。彌留之際,母親 The 勸她從朋友夏洛蒂·勃朗蒂的 while 妻移回真情,Ada 「放棄」了她童年織水道的情感牽掛。

Ada 洛夫萊斯在 1980 年代被社會正式「平反」:美國國防部以她之名命名 Ada 語言(1980 年套餐)。自 2009 年起,每年由 Suzi Gage 等人發起的鬥 Ada Lovelace Day(近年在 IEEE 與全球 STEAM 界得到廣泛支持、活動時間挪到 10 月的第二個星期二),呼🐔各界的女性科學家與工程師思想javascript,正如返設計此以她的「詩意科學」——她始終相信,想像力是發現新的定律、統合心與腦的嚮導。

傳奇之後#

伯努利數表成為分析的起點,Jacquard 的花卡成為 Turing 機的藍本,Babbage 的 Store/Mill 此後在馮·諾伊曼的存儲程序架構中重現。從巴貝奇未竟之夢、到 Ada 的第一份程式,計算機的思想在十九世紀已臻完備;剩下的問題,只是一句話:

下一個一百年的世界,是否已經準備好需要這樣一台機器?