致力於研究性別議題的已故美國學者Myra Sadker曾說過:「如果癌症治療方法存在一個女孩子的腦海裡,我們可能永遠都不會發現。」(編按:Sadker是藉此凸顯在科學研究領域,男性與女性人數比例懸殊且並未被平等對待的情況)

筆者從1968年至1972年就讀於紐約布朗克斯紐約大學工程學院(NYU Engineering in Bronx, NY),在我們新生班裡,只有少數幾個女生。今天的情況稍好一點,但男性和女性接受工程教育的人數比例還是相差甚遠。我納悶,為什麼不可能像我在布朗克斯PS 32小學讀一年級時,男、女生比例正好是50:50?

在19世紀初,女性還沒有投票權,年輕女性上學時只能選擇非常有限的科目,而且不能上大學。在由男性主導的科學世界,有一個耀眼的女性科學明星,被譽為第一位電腦科學家,她就是Ada Lovelace。

20180308_Lovelace_NT02P1

Ada Lovelace的罕見銀版攝影照片,當時她大約30歲
(來源:Loretta Taranovich與Computer History Museum)

我最近參觀了位於美國加州矽谷地區Mountain View的電腦歷史博物館(Computer History Museum),當時博物館正好舉辦了伯爵夫人Lovelace Ada誕辰202週年紀念活動,展出她的一些照片和信件/手稿。借此機會感謝Lytton伯爵(Earl of Lytton)家族,英國牛津大學Bodleian圖書館以及Somerville學院,還有倫敦科學博物館(Science Museum)、倫敦國家肖像畫廊(National Portrait Gallery),以及Geoffrey Bond等展覽贊助者。

Lovelace是英國著名詩人拜倫(Lord Byron)唯一的合法婚生子女;拜倫在她僅一個月大的時候拋棄了妻子與新生女兒,Lovelace的母親擔心女兒會“感染”拜倫的“瘋狂”,決定讓她遠離文藝,引導她轉向數學和科學領域。

從5歲開始,Ada Lovelace就接受一系列嚴格的教育,由她母親拜倫夫人(Lady Byron)親自監督;她是一個富有想像力的孩子,這樣的教育培養了她對數學和科學的興趣,她對機械學也很著迷。她在1828年寫給母親的所有信件中,都在講述自己如何嘗試用紙、絲綢或羽毛來製作讓她飛起來的翅膀,這樣的想像力讓她參與了一個由蒸汽機驅動的飛行器開發案。

後來,英國發明家、機械工程師Charles Babbage的分析引擎(Analytical Engine),給了Lovelace極大的靈感;該種引擎是第一個以現代線條設計的計算引擎,Babbage也因此被尊稱為「運算之父」(father of computing)。

Lovelace和Babbage深入研究了數學領域中的「柯尼斯堡七橋問題」(Konigsberg bridge),這個問題描述一條河中心有兩座小島,小島與河的兩岸共有七座橋連接,而在所有橋都只能走一遍的前提下,如何才能把這個地方所有的橋都走遍?

20180308_Lovelace_NT02P2

除了「七橋問題」,Lovelace與Babbage還研究了與畢氏定理相關的正方形與三角形,以及數字1到9組成的“魔方陣”(magic square),以行、列和對角線排列之數字總和都是15
(來源:Loretta Taranovich與Computer History Museum)

1821年Babbage開始設計「差分引擎一號」(Difference Engine No. 1),用於計算和製表多項式函數(polynomial function);該設計構想了一種機器,可以自動計算一系列的數值並將結果自動列印在一個表格中;設計概念不可或缺的一部分是列印設備,以機械方式與計算部位結為一體。「差分引擎一號」是第一個完整的自動化計算引擎設計。

20180308_Lovelace_NT02P3

Babbage於1832年設計的「差分引擎一號」包含200個零件,圖中的試製模型只是完整引擎的七分之一
(來源:Loretta Taranovich與Computer History Museum)

Babbage的分析引擎原則上可以計算出任何公式;在下面的電路圖中,左邊的「Mill」運算單元,右邊則是是記憶體「Store」;以三種不同類型的穿孔卡(punch cards)形成輸入資料和指令。當運算需要一個迴路時,複雜的機構會讓穿孔卡區塊移動;如圖所示,Babbage的設計標記會持續追蹤不同零組件之間的交互作用。

20180308_Lovelace_NT02P4

Babbage的分析引擎原理圖
(來源:Loretta Taranovich與Computer History Museum)

因為Lovelace在科學,尤其是數學方面有著豐富的想像力,她能夠理解Babbage差分引擎的工作原理和潛力;她在1833年17歲時初入社交界,「揪」了一群人一同見證Babbage展示差分引擎原型,這似乎也點燃了兩人之間的友誼火花,直到1852年她36歲時去世。最後Lovelace也對Babbage的分析引擎設計有了深刻的理解。

雖然並未被打造出來,分析引擎可說是Babbage一系列機械電腦設計中最具雄心的案子,Lovelace還為此撰寫了一部了不起的論文,即1842年出版的《Sketch of the Analytical Engine Invented by Charles Babbage》,論文中的一個表格常被形容為「世界第一個電腦程式」,也對於利用電腦執行具創新性與創造力的工作──包括作曲──之挑戰與潛力,提供了高瞻遠矚的觀點。

Babbage幫Lovelace取了個「數字妖精」(Enchantress of Numbers)的外號,兩人之間的友誼關係卻因為Lovelace準備發表上述論文而開始呈現緊張狀態;Lovelace仍希望繼續與Babbage合作,卻也為未來的合作設定了一些嚴格的條件。於是雖然他們仍是朋友,再也未曾合作。

Lovelace的原創想法超越了Babbage的觀點,後者只是將電腦視為數字操作機,Lovelace則專注於研究電腦創造力的可能性和侷限──這些議題也是當代電子世界的我們需要處理的。而Babbage雖然從未將其設計撰寫成文,卻曾於1840年在義大利都靈大學(University of Turin)舉行過一場相關講座,當時前往聽講、曾任義大利首相的Luigi Federico Menabrea (也是工程師暨數學家)以法文發表了該講座的紀錄。

1842年,Lovelace受英國科學家Wheatstone委託,將Menabrea的紀錄翻譯成英文,也就是上述《Sketch of the Analytical Engine Invented by Charles Babbage》論文的基本內容,但她在論文中添加了不少筆記,比原文多了三倍以上;她的筆記包含第一個專為通用運算機器執行伯努利數(Bernoulli numbers)計算所設計的演算法,這被認為是史上第一個電腦程式。

Lovelace的筆記還包含了兩段之後引發學術界爭論的重要文字:

1.「舉例來說,假如和聲學(harmony)與作曲時音調(pitched sounds)的基本關係,容許以諸如此類的數學式表達與改編,該引擎就可能編寫出任何複雜程度或範圍的、精巧而符合科學規律的音樂作品。」——以上這段文字常在電腦與音樂領域被引用。

2.「分析引擎並不主張能創造任何東西,它可以完成任何我們知道如何命令它執行的任務,也可以追蹤分析,但不能預測任何分析關係或真相。它的能力範圍在於協助我們做我們已經熟知的事情。」——這段文字在關於電腦與創造力的討論中經常被引用;電影《模仿遊戲》(imitation game)描述的數學家圖靈(Alan Turing),在其論文《運算機器與人類智能》(COMPUTING MACHINERY AND INTELLIGENCE)中引用了這段話;研究人工智慧(AI)之英國學者Margaret Boden在著作《The Creative Mind: Myths and Mechanisms》中也引用了這段文字(參考連結)。

Lovelace的觀點超越了「思考機器」(thinking machine),進入生物物理學(biophysics)以及建立生物程序(biological processes)數學模型的範疇。遺憾的是,Lovelace因癌症在36歲芳齡早逝,如果她能在世更長時間,很難說她是不是能對科學有更重大的貢獻。

圖靈在關於電腦科學的著作以及他的思想中吸納了不少Lovelance的觀點;Lovelace的名字「Ada」還被用來命名一種在1980年代初期開發的程式語言,這種程式語言主要應用於要求高完整性/安全性領域,例如商業/軍事航空器、航空管制、鐵路運輸系統與醫療設備等等。Lovelace是一個在科學界發光發熱的女性榜樣,希望她的故事能激發年輕女孩們探索工程領域的興趣,也歡迎讀者們與大家分享妳/你的看法!

本文中文版原刊於EDN China;校對責編:Judith Cheng

(參考原文:Ada Lovelace and Charles Babbage: 19th century mathematical brilliance,by Steve Taranovich)