第一位程式設計師愛達·勒芙雷斯,能否改變分析機的命運?│《電腦簡史》 齒輪時代(二十一)

四十一歲的巴貝奇與十七歲的愛達相遇,會蹦出怎樣的火花?不,他們共同譜出的不是忘年戀曲,而是——電腦程式。愛達為了替巴貝奇的分析機宣傳,寫出了第一個白紙黑字的演算法,後人才知道巴貝奇設計出史上第一部可編程的通用計算機。然而他們兩人固然是相見恨晚,卻都生得太早;分析機在齒輪時代註定無用武之地,只能成為兩位時代先驅的見證。

本文為系列文章,上一篇請見:分析機——史上第一部通用型計算機終將誕生?│《電腦簡史》 齒輪時代(二十)

繼承父親詩人特質與母親數學天分的愛達·拜倫

愛達·勒芙雷斯結婚前本姓拜倫 (Byron),是的,她的父親就是著名的浪漫詩人拜倫。拜倫婚後仍到處拈花惹草,甚至與同父異母的妹妹發展出不倫戀。 1816 年,拜倫夫人終於無法忍受,帶著剛滿月的愛達離家出走,躲回娘家。幾個月後兩人正式離婚,結束僅一年多的婚姻,拜倫遠走他鄉,躲避閒言閒語,卻從此沒返回英國,再也未見到女兒。

拜倫夫人沒有再婚,獨自扶養愛達長大。她對愛達的教養特別著重於數學,一方面是因為拜倫夫人個人對數學的熱愛,一方面則是擔心愛達遺傳到父親的濫情衝動,希望能藉此抑制她這方面的特質。

愛達·勒芙蕾絲27歲時的銀版相片。圖/wikipedia

1833 年 6 月,拜倫夫人帶著才十七歲的愛達參加巴貝奇的社交沙龍。此時的巴貝奇位居劍橋大學的盧卡斯數學席位(Lucasian Chair of Mathematics),這個榮譽席位向來都是給予當世最負盛名的數理學者,例如牛頓和霍金也都曾擔任盧卡斯教授。因此這個於巴貝奇家中定期舉辦的沙龍,總是聚集許多名流、學者,或有才藝演出,或有新奇事物與發明的展示;巴貝奇也大方展出因經費中止而暫停開發的差分機。

愛達乍見差分機就眼睛一亮,在了解它的功能與原理後更讚嘆不已。愛達的數學天賦讓她體會到其中以簡馭繁之美,也看到計算機的未來性。她毫不掩飾對巴貝奇的崇拜之心,四十一歲的巴貝奇也對這個少數懂他的聰慧女子極為賞識,兩人此後時常交換心得,即使愛達十九歲結婚成為勒芙雷斯夫人後,仍是如此。

愛達之前隨著母親參觀機械展時,就曾看過雅卡爾織布機,相當了解打孔卡片的作用。因此當她於 1836 年聽聞巴貝奇要用於分析機時,馬上領略箇中之妙,熱烈希望也能參與其中,助一臂之力。幾年後,愛達果然如願以償,也因此讓她在歷史上留名。

不只是程式設計師,更有超越巴貝奇的洞見

分析機在 1839 年底前就已大致設計完成(往後幾年巴貝奇做的只是進一步優化,包括精簡零件與提高運算速度),可以按圖施工,然而英國政府仍然興趣缺缺,讓巴貝奇對政府的短視忿忿不平。所以當他 1840 年受邀前往義大利演講,不但欣然前往,更毫不保留地詳細介紹分析機的構造與原理。

當地一位年輕數學家梅拉布瑞亞 (Luigi Menabrea,後來成為義大利首相) 有意撰寫專文介紹分析機,巴貝奇當然樂見其成,不厭其煩地予以解說指導。最後這篇報導於 1842 年發表於法國學術期刊,是第一篇關於分析機的介紹。

梅拉布瑞亞的報導與愛達的評注。圖/截圖自 fourmilab

愛達見到這篇文章即主動翻譯成英文,希望也能讓英國同胞了解分析機的偉大。巴貝奇讀了譯稿後大表讚許,鼓勵她多做一些補充。結果愛達寫了多達一萬九千字,篇幅是梅拉布瑞亞本文的兩倍半。

正是在這篇〈譯者評注〉中,愛達為了說明分析機如何算出白努利數 (Bernoulli numbers) ,一步一步地寫出完整程序。這道程序即相當於今日的演算法,而且已經具有「迴圈」 (Loop,一種迭代計算,每次的計算結果都是下次迭代的初始值) ,以及「次常式」 (Subroutine,一段執行特定運算的小程式,由主程式呼叫執行),這兩個現代電腦程式中常用的技巧。愛達因此才被譽為史上第一位程式設計師。

不過也有人不以為然,畢竟巴貝奇在設計分析機時,就曾模擬過多種運算,也就是說他實際已經完成了許多程式,只不過沒有公諸於世。因此嚴格來說,巴貝奇比愛達更有資格稱得上第一位程式設計師。縱使如此,愛達在〈譯者評注〉中仍展現了無與倫比的洞見,這是巴貝奇自己都未能察覺的。

在巴貝奇心中,分析機就是處理數字的機器,但愛達卻看出分析機能做的不僅如此。她如此寫道:

分析機也能處理數字以外的事物,只要它們之間的基本關係可以用抽象的科學符號表達,應該就能輕易轉換為符合分析機機制與運作概念的實際動作。

此外,或許是得自拜倫的遺傳,愛達還以頗具詩意的手法形容分析機的能耐:

就像雅卡爾織布機編織出花與葉,分析機能編織出代數的模式。

處理抽象符號與底層模式在當時可能無人理解,但如今已是現代電腦的日常。愛達的目光如此之遠,可惜她的生命太過短暫。她後來罹患子宮癌,卻因為醫生用放血療法治療,導致失血過多身故,年僅 36 歲。

差分機二號。圖/wikipedia

分析機仍不受青睞,是價格太高、需求太少的老問題?

愛達的翻譯與評注並未發揮作用。眼見分析機得不到支持,巴貝奇於 1847 年又回頭去改進差分機。他費時兩年完成「差分機二號」的設計,可以計算 31 位數,零件卻只需原始差分機的三分之一,希望這能讓英國政府回心轉意。但英國政府對他早已死心,巴貝奇始終無法獲得資金實現構想。

反倒一位瑞典發明家舒茲(Per Georg Scheutz)於 1834 年讀了巴貝奇發表第一代差分機的文章後,按圖索驥著手打造分析機,後來獲得瑞典政府資助,成功完成完整的全尺寸差分機,並於 1855 年的巴黎萬國博覽會公開展示。巴貝奇也去現場看了,當他觸摸這台機器時,心情應該是欣慰與苦澀參半吧。

除了舒茲的差分機,十九世紀下半葉陸續還有許多不同的差分機問世,都不脫巴貝奇的設計,但最後都以失敗收場。並非巴貝奇的原始設計有問題,倫敦科學博物館就於 2002 年打造出差分機二號,一如巴貝奇的構想運作,吐出正確無誤的答案。當時那些山寨差分機的確也都能算出對數表等各種數值表,問題在於投資效益不敷成本,還不如採取德普羅尼的老方法,用差分法交給一群計算員用手工計算。

表面看起來,這似乎再度反映出自巴斯卡以降,計算機始終面臨的老問題:產品價格太高、市場需求太少。

但事實上,巴貝奇所處的十九世紀中葉,已經不只是編製數值表或天文學家才需要大量計算。當時倫敦的銀行清算中心就有數百名計算員,每天要結算銀行之間的往來。而隨著鐵路的大幅擴建,載送的乘客與貨物快速增長(英國的載客人次從 1855 年的一億一千萬增加到 1900 年的十一億一千萬),鐵道清算中心也有近千名計算員,處理不同鐵道公司彼此之間的結算。那麼,為什麼差分機仍不受他們青睞?

以過去的工資來說,人工相對划算。圖/wikipedia

機械計算機的宿命,齒輪時代終要結束

追根究柢,所謂不符投資效益,背後隱藏的技術問題才是真正原因。差分機的運轉是靠齒輪、轉軸、彈簧、鉤環等機械零件,運轉速度有其極限,計算速度也因此受限,再怎麼快也比不過數百名計算員同時計算;而以當時的工資,還是用人工划算多了。必須等到進入二十世紀,各式電磁零件發明後,電子計算機才能提供人力遠遠不及的運算能力。

用齒輪打造的機械計算機受限於物理原理,註定不合時宜,無法生存。

巴貝奇這位超越時代的天才不幸生得太早,儘管他已預見計算機的重要性,甚至設計出已具現代電腦雛型的分析機,無奈技術面與市場面都還未就緒,他的傑作只能成為空中樓閣,徒留三百張設計圖與數千頁的筆記做為見證。另一個殘酷的事實是,他的畢生心血宛如浪花泡沫,除了打孔卡片,什麼也未能傳承給後世。

新一代計算機所用的是截然不同的機電零件,巴貝奇設計的齒輪架構毫無幫助。計算機的齒輪時代終究要畫上句點,讓位給全新的數位時代。

  • 註:白努利數是從 1 開始,連續正整數的冪次和。可以寫成 Sm(n)=1m + 2m + 3m +……+ nm

關於作者

張瑞棋

1987年清華大學工業工程系畢業,1992年取得美國西北大學工業工程碩士。自小喜愛科學新知,浮沉科技業近二十載後,退休賦閒在家,更成為重度閱讀者。當了中年大叔才成為泛科學專欄作者,著有《科學史上的今天》一書,如今又因翻譯《解事者》,而多了個譯者的身分。

網站更新隱私權聲明
本網站使用 cookie 及其他相關技術分析以確保使用者獲得最佳體驗,通過我們的網站,您確認並同意本網站的隱私權政策更新,了解最新隱私權政策