她是浪漫主義詩人拜倫的女兒,也是歷史上第一位程序員_風聞
返朴-返朴官方账号-关注返朴(ID:fanpu2019),阅读更多!1小时前
埃達·洛夫萊斯,一位19世紀英國貴族女性,英國數學家和作家。她因為結識數學家查爾斯·巴貝奇並看到他發明的差分機而對數學產生興趣。後來她作為翻譯和註釋者深入研究了巴貝奇希望製造但未成功的分析機的文章,在註釋中給出了計算伯努利數的運算方法——人們認為這是歷史上第一段計算機程序,其實現方式與今天的計算機運行幾乎相同,包含循環和嵌套循環的思想;她還預見到通用計算的可能。因此她作為第一位程序員而被當代人銘記。
本文經授權節選自《科技羣星閃耀時:15個創新創奇》(人民郵電出版社,2024年8月版)第6章《埃達·洛夫萊斯》,有刪改,圖片為編輯所加。
撰文 | 斯蒂芬·沃爾弗拉姆(Stephen Wolfram)
翻譯 | 應俊耀、蔚怡
2015年是埃達·洛夫萊斯(Ada Lovelace)誕辰 200 週年。對於一些人來説,她是計算機史上的偉大英雄;而對於另一些人來説,她只是一個被高估的小人物。很長一段時間以來,我一直對她的真實故事感到好奇。為了準備她的誕辰 200 週年紀念,我決定嘗試解開對我來説一直存在的“埃達之謎”。
埃達的早年生活
埃達·拜倫(Ada Byron,她當時的名字)於1815 年 12 月 10 日出生在倫敦,她的父母是上流社會人士。她的父親拜倫勳爵(George Gordon Byron)當時 27 歲,剛剛因其詩歌而成為英國的知名人物。她的母親安妮·伊莎貝拉·米爾班克(Anne Isabella Milbanke)23 歲,投身於進步事業,繼承了温特沃思(Wentworth)男爵夫人的頭銜。埃達的父親説,他給她取名“埃達”是因為“這個名字簡短、古老、有韻味”。
埃達·洛夫萊斯(Ada Lovelace,1815-1852) 丨圖片來源:New York Public Library
埃達的父母可以説是截然相反的人。拜倫一生放蕩不羈,也許是 19 世紀最具“壞小子”形象的人物,童年時期有過黑暗的經歷,後來也有過很多浪漫的和其他過激的行為。除了寫詩和無視當時的社會規範,他還經常做一些不尋常的事:他在劍橋大學的宿舍裏養了一隻温順的熊;在意大利與詩人和“大台階上的五隻孔雀”一起生活;寫了一本亞美尼亞語語法書;假如不是英年早逝的話,他或許還會繼續率領軍隊參加希臘獨立戰爭(雅典至今還矗立着一座紀念他的大雕像),儘管他本人從未受過任何軍事訓練。
而安娜貝拉·米爾班克(安妮·伊莎貝拉的暱稱)則是一位受過教育、虔誠且相當得體的女性,熱衷於改革和公益事業,她被拜倫暱稱為“平行四邊形公主”(Princess of Parallelograms)。她與拜倫的婚姻非常短暫,在埃達只有5 周大的時候就破裂了,埃達自此再也沒有見過拜倫(儘管拜倫在自己的書桌上放着她的照片,並在詩歌中極盡讚美地提到過她)。拜倫在 36 歲時去世,正值其名望的巔峯時期,而當時埃達只有 8 歲。圍繞他的醜聞足以寫成數百本書,拜倫夫人(埃達母親的自稱)的支持者和拜倫的支持者之間的公關戰持續了一個世紀甚至更久。
埃達在母親租來的鄉間莊園裏度過了孤獨的童年,陪伴她的只有家庭女教師和助教,還有她的寵物貓“泡芙夫人”(Mrs. Puff)。埃達的母親經常因為各種(相當古怪的)健康療法而不在家,她對埃達實施了一套教育體系,包括長時間的學習和自我控制練習。埃達學習了歷史、文學、語言、地理、音樂、化學、縫紉、速記,數學(部分通過經驗方法教授)達到了初等幾何和代數的水平。埃達11 歲的時候,跟着母親和隨從們一起到歐洲進行了為期一年的旅行。回來後,埃達熱衷於研究她所謂的“飛行學”(flyology),並想象如何用蒸汽動力機械模仿鳥類飛行。
但後來她得了麻疹(也可能是腦炎),最後卧牀不起,身體欠佳長達三年之久。她最終在 17 歲時及時恢復了健康,遵循當時社交名媛的習俗,去倫敦參加了一個社交季。1833 年 6 月 5 日,在她“進宮朝見”(即覲見國王)26 天后,她參加了 41 歲的英國數學家查爾斯·巴貝奇(Charles Babbage,其長子與埃達同齡)的家庭聚會。顯然,她給主人留下了深刻的印象,主人再次邀請她及其母親,觀看他新造的差分機的演示。這是一個 2 英尺高的手搖裝置,由 2000 個黃銅零件組成,現在陳列在倫敦的科學博物館。
圖片來源:Science Museum, London INV-1862-89
埃達的母親稱它為“思考機器”(thinking machine),並報告説它“取了幾個數的 2 次和 3 次冪,並解出了一個二次方程的根”。這台機器改變了埃達的人生軌跡。
查爾斯 · 巴貝奇
查爾斯·巴貝奇有怎樣的故事呢?他的父親是一位積極進取、事業有成的金匠和銀行家(儘管與他本人關係疏遠)。經過多所學校和導師的推薦,巴貝奇前往劍橋大學學習數學,但沒過多久他就決心改革那裏的數學教學方式,並與他的畢生好友約翰·赫歇爾(John Herschel,天王星發現者之子)和喬治·皮科克(George Peacock,後來成為抽象代數的先驅)一起成立了分析協會(後來成為劍橋哲學學會),推動改革,比如用萊布尼茨基於函數的(“歐陸式”)微積分符號取代牛頓基於點的(“英國式”)微積分符號。
查爾斯 · 巴貝奇丨圖片來源:wikimedia
1814 年(埃達·洛夫萊斯出生的前一年),巴貝奇從劍橋大學畢業,與新婚妻子搬到倫敦居住,並開始在倫敦科學界和社交圈立足。他沒有正式的工作,只是公開舉辦天文學講座,撰寫有關各種數學主題(函數方程、連乘積、數論等)的論文,雖然並不引人注目,但也值得尊敬。他父親和妻子的家族為他提供了適度的經濟資助。
1819 年,巴貝奇訪問了法國,獲悉法國政府正在實施一個製作對數表和三角函數表的大型項目。數學表格在當時具有相當重要的軍事和商業意義,被廣泛應用於科學、工程、金融及航海等領域。人們常常聲稱,數學表格中的錯誤會導致船隻擱淺或橋樑倒塌。
回到英國後,巴貝奇和赫歇爾開始了一個為他們新成立的天文學會製作表格的項目,據説在檢查這些表格的過程中,巴貝奇驚歎道:“我真希望這些表格是由蒸汽製成的!”從此,巴貝奇開始了將表格生產機械化的畢生努力。
早在巴貝奇之前,就已經有了機械計算機。帕斯卡(Pascal)在1642 年就製造了一台,我們現在知道,計算工具甚至在古代就有了。但在巴貝奇的時代,這樣的機器還只是稀奇古怪的東西,在日常實際應用中還不夠可靠。表格是通過人工計算製成的,計算工作被分派給一個團隊中的成員來完成,最低級的計算基於使用差分法對多項式(例如級數展開式)進行求值。巴貝奇設想的是有一種差分機器,可以用差分法來計算任意次數的多項式,然後自動逐步求值並打印結果,完全排除了人類容易出錯的傾向的干擾。
1822 年初,30 歲的巴貝奇忙於研究不同類型的機械,並制訂設計了差分機的計劃和原型。他參與創立的倫敦天文學會(後成為皇家天文學會)為他的這個想法頒發了一枚獎章。1823 年,英國政府同意為建造這樣一台機器提供資金支持。
1824 年,巴貝奇因有望加入一家初創的人壽保險公司而稍有分心,他為此做了一系列生命表的計算。但他在自己的馬棚(他的“車庫”)裏設立了一個工作室,不斷萌生關於差分機,以及關於如何利用當時的工具製造它的組件的構想。
1827 年,巴貝奇終於完成了手工計算的對數表,並在近 100 年的時間裏不斷重印。巴貝奇把它們印在黃色的紙上,理論上這樣可以減少用户出錯。(在我上小學的時候,對數表仍然是做乘法運算的快速方法。)
同樣是在 1827 年,巴貝奇的父親去世,留給他大約 10 萬英鎊,大致相當於今天的 1400 萬美元,這為巴貝奇的後半生奠定了堅實的經濟基礎。不過,同年,他的妻子也去世了。她和巴貝奇共養育了 8個孩子,但只有 3 個活到了成年。
巴貝奇因妻子的去世而消沉,他去了歐洲大陸旅行,並對他在那裏所見到的科學成就印象深刻,於是寫了一本名為《對英國科學衰落的反思》(Reflections on the Decline of Science in England)的書,結果該書內容主要是對英國皇家學會(他是其中的一員)的抨擊。
雖然經常分心,但巴貝奇仍在繼續研究差分機,寫下了數千頁的筆記和設計稿件。在起草計劃或在機器車間做實驗時,他總是親力親為。但在管理他僱用的工程師方面,他卻完全不插手,而且他對成本的管理也不甚理想。儘管如此,到 1832 年,一台小型差分機(不帶打印機)的工作原型已經成功完成。這就是埃達·洛夫萊斯在1833 年 6 月所看到的機器。
説回埃達
埃達與差分機的邂逅似乎點燃了她對數學的興趣。她結識了拉普拉斯(Laplace)的譯者以及著名的科學解説者瑪麗·薩默維爾(Mary Somerville),並在她的鼓勵下,很快熱衷於研究歐幾里得。1834 年,埃達隨母親參加了一次慈善之旅,訪問了英格蘭北部的工廠,對當時的高科技設備產生了濃厚的興趣。
在回來的路上,埃達教了她母親一位朋友的女兒一些數學知識。她通過信件繼續教學,並指出這可能是“兩位貴族女士之間長達數年的‘感性數學通信的開始’,毫無疑問將來會出版,以啓迪人類”。這並不是什麼高深的數學,但埃達説得很清楚,而且還帶有這樣的告誡:“當可以給出直接證明時,你不應該選擇間接證明。”(在埃達的所有手寫信件中,有很多下劃線,本書以黑體顯示這部分文字。)起初,巴貝奇似乎低估了埃達,他試圖將埃達的興趣引到他用作聚會談資的銀娘子(Silver Lady)自動人偶上(並指出,他給人偶加了一塊頭巾)。但(用她自己的話説)埃達繼續與巴貝奇先生和薩默維爾夫人單獨或一起互動。很快,巴貝奇就向她敞開了心扉,談起了許多知識性的話題,也談起了他在差分機的經費問題上與政府產生的矛盾。
1835 年春天,19 歲的埃達遇到了 30 歲的威廉·金(William King,或者更準確地説,是威廉·金勳爵)。他是瑪麗·薩默維爾兒子的朋友,曾就讀於伊頓公學(150 年後我也在同一所學校就讀)和劍橋大學,後來當過公務員,後期大部分時間在英國位於希臘的一個前哨站工作。儘管威廉有些呆板,但他似乎是一個嚴謹、認真、正派的人。無論如何,埃達和他一見鍾情,他們於 1835 年 7 月 8 日結婚。埃達直到最後一刻才公佈這則消息,避免了花邊新聞的騷擾。
在接下來的幾年裏,儘管埃達也有一些時間騎馬、學習豎琴和數學(包括球面三角學等主題),但她的生活似乎主要是照顧三個孩子和管理繁重的家務。1837 年,英國維多利亞女王(時年 18 歲)即位,作為上流社會的一員,埃達與她見了面。1838 年,威廉因在政府工作而被封為伯爵(即洛夫萊斯伯爵,Earl of Lovelace),而埃達則成為洛夫萊斯伯爵夫人(Countess of Lovelace)。
1839 年,在她第三個孩子出生後的幾個月裏,埃達決定重新認真對待數學。她告訴巴貝奇,她想在倫敦找一個“數學導師”,但要求巴貝奇在打聽時不要提到她的名字,大概是擔心社會上的流言蜚語。
這個導師就是奧古斯塔斯·德·摩根(Augustus De Morgan),倫敦大學學院的第一位數學教授,著名邏輯學家,寫過幾本教科書,他不僅是巴貝奇的朋友,也是埃達母親童年時期主要老師的女婿。(是的,世界真小,德·摩根也是喬治·布爾的朋友,是他間接促成了布爾代數的發明。)
在與巴貝奇的通信中,埃達表現出了對離散數學的興趣,例如,她想知道紙牌接龍游戲(solitaire)是否“可以用數學公式來求解”。但按照當時(如今也還是如此)的數學教育傳統,德·摩根讓埃達從學習微積分開始。
埃達寫給德·摩根的關於微積分的信與今天的微積分學生的信別無二致,只是她用了維多利亞時代的英語。儘管埃達對微積分的糟糕符號更為敏感(比如“為什麼不能用 dx 做乘法?”),但她的許多困惑甚至與今天的學生都是一樣的。埃達是一名堅持不懈的學生, 似乎很享受不斷學習數學的過程。她對自己的數學能力感到高興, 並對德·摩根給予的積極反饋感到滿意。
埃達向德摩根學習的筆記丨圖片來源:writings.stephenwolfram.com
多年來,埃達的健康狀況時好時壞,但到了 1841 年,她的健康狀況明顯惡化,她開始系統地服用阿片製劑。她非常渴望在某些方面有所建樹,並開始萌生這樣的想法:自己也許應該選擇音樂和文學,而不是數學。但她的丈夫威廉似乎説服了她,到 1842 年底,她又重新開始學習數學。
給巴貝奇的“論文”做註釋
當這一切發生的時候,巴貝奇又在做什麼呢?他一直在做各種各樣的事情,取得了不同程度的成功。
相比於一台只會計算差分的機器,他構思了一台“分析機”,支持一系列可能的運算,實際上可以按照任意編程的順序進行運算。起初,他只是想讓機器對固定的公式求值,但隨着對不同使用案例的研究,他增加了其他功能,比如條件運算,並常常想出一些非常巧妙的方法來機械地實現這些運算。最重要的是,他想出瞭如何使用打孔卡片來控制計算步驟,這種卡片是雅卡爾(Jacquard)於 1801 年發明的,用於指定織布機上的編織圖案。
巴貝奇創造了一些極為複雜的設計,在今天看來,它們能夠正常運行就已經十分了不起了。但早在 1826 年,巴貝奇就發明了一種他稱之為機械符號的東西,旨在為機械運算提供一種符號表示,就像數學符號為數學運算提供一種符號表示一樣。
早在 1826 年的時候,巴貝奇就已經對沒人賞識他的發明而失望了。毫無疑問,人們當時並不理解它,因為即使是現在,也沒人能搞清楚它是如何工作的。但這可能是巴貝奇最偉大的發明,因為很顯然,正是這項發明催生了他所有的精心設計。
巴貝奇最初的差分機項目耗費了英國政府 17 500 英鎊,大約相當於今天的 200 萬美元。與政府的其他開支相比,這只是一筆小數目,但這個項目非同尋常,引起了相當多的討論。巴貝奇喜歡強調,與和他同時代的許多人不同,他本人並沒有拿過政府的錢(儘管他把自己的馬棚裝修成防火車間等都要花錢)。他還聲稱,他最後差不多在各種項目上花了自己 2 萬英鎊,或者説是他大部分財產(我並不明白這些數是怎麼加起來的)。他還不斷努力爭取政府的進一步支持,並制定了建造差分機 2 號的方案,該方案只需要 8000 個零件,而不是 25 000 個。
到 1842 年,政府人事已經更迭,巴貝奇堅持要與新首相(羅伯特·皮爾,Robert Peel)會面,但最終被新首相痛斥了一番。在議會上,給差分機提供資金的想法最終被諸如“機器要能夠進行計算才算有點兒用”的譏諷叫停了。
巴貝奇的想法雖然在英國得不到支持,但在其他地方卻受到了一定歡迎。1840 年,巴貝奇應邀到意大利都靈就分析機這一主題做了演講,並獲得了意大利政府的嘉獎。
巴貝奇從未發表過關於差分機的正式報告,也從未發表過任何關於分析機的文章。但他在都靈談到了分析機,一個名叫路易吉·梅納佈雷亞(Luigi Menabrea)的人做了筆記,當時他還是一位 30 歲的陸軍工程師,但 27 年後,他成了意大利王國的首相(還對結構分析數學做出了貢獻)。
1842年10月,梅納佈雷亞根據自己的筆記用法語發表了一篇論文。埃達看到這篇論文後,決定將其翻譯成英文,並投稿給英國的一家出版社。許多年後,巴貝奇聲稱他曾建議埃達撰寫自己關於分析機的説明,而她回應説自己並沒有過這個想法。但無論如何,到 1843 年2 月,埃達已決心完成翻譯工作,但要加上她自己的大量註釋。
在隨後的幾個月裏,她非常努力地工作,幾乎每天都與巴貝奇通信(儘管有時還有其他“緊迫且無法迴避的約會”)。埃達向巴貝奇提問,巴貝奇回答,她找到方案,巴貝奇提出意見。顯然是她在主導,但她認為自己首先是在解釋巴貝奇的工作,因此希望與巴貝奇一起核對確認。不過,當巴貝奇試圖修改她的手稿時,她會感到惱火。
埃達在調試伯努利數的計算時寫下了這樣一封信,真是引人入勝:“親愛的巴貝奇,這些數讓我陷入了令人震驚的泥潭和麻煩之中,我為此感到非常沮喪,以至於我今天不可能完成這件事。……我現在要出去騎馬了。”後來,她告訴巴貝奇:“我整天都在不停地工作,而且非常成功,您一定會非常欣賞這些圖表。它們都是我極其精心製作出來的,所有的指數都得到了最細緻和最嚴謹的處理。”然後她補充説,威廉(或她口中的“L. 勳爵”)“此刻正在親切地為我把這一切都塗上墨水。我不得不用鉛筆來寫……”。
威廉顯然也是建議她在譯文和註釋上簽名的人。正如她在寫給巴貝奇的信中所説的那樣:“我並不想宣佈這本書是誰寫的。同時,我更希望附上一些東西,以便日後將它與所謂的 A.A.L.(即 Ada Augusta Lovelace,埃達·奧古絲塔·洛夫萊斯)的其他作品區分開來。”
到 1843 年 7 月底,埃達幾乎完成了她的註釋寫作。她為這些註釋感到驕傲,巴貝奇也對它們讚不絕口。最後,埃達的譯文出現了,署名為“AAL”。
後來,她的健康狀況急轉而下,她花了好幾個月去看醫生並嘗試各種“療法”不過,她仍然對科學充滿激情。她與邁克爾·法拉第有過交往,據説法拉第稱她為“科學界的新星”。當她的註釋發表時,巴貝奇曾説:“你應該寫一篇原創的論文,即便推遲發表也只會使它更加完美。”
再後來,埃達的健康狀況就變得非常糟糕。有一段時間,醫生只是讓她多去海邊走走,但他們最終承認她得了癌症(從我們現在所知道的情況來看,很可能是宮頸癌)。阿片不再能控制她的疼痛,她開始嘗試大麻。到了 1852 年 8 月,她寫道:“我開始理解死亡,它每時每刻都在悄悄地、逐漸地進行着,永遠不會是某個特定時刻的事情。”8 月 19 日,她邀請巴貝奇的朋友查爾斯·狄更斯來訪,狄更斯為她朗讀了自己一本書中關於死亡的描述。
巴貝奇在埃達去世後又活了 18 年,於 1871年去世。1856 年,他再次嘗試研究分析機,但沒有取得重大進展。
重新發現
巴貝奇去世後,他在他的機器方面的畢生工作幾乎被人遺忘了(儘管 1911 年的《不列顛百科全書》等還有提及)。儘管如此,機械計算機仍在繼續發展,逐漸讓位於機電計算機,最終被電子計算機 所取代。20 世紀 40 年代,當人們開始理解編程時,巴貝奇的工作和埃達的註釋被重新發現。
人們知道“AAL”代表埃達·奧古絲塔·洛夫萊斯,她是拜倫的女兒。艾倫·圖靈讀過她的註釋,並在 1950 年的圖靈測試論文上 創造了“洛夫萊斯夫人的異議”(Lady Lovelace’s Objection,即“人 工智能無法創造任何東西”)這個術語。但在當時,埃達本人在很大程度上還只是一個腳註。
一位名叫伯特倫·鮑登(Bertram Bowden)的英國核物理學家進入了計算機行業,最終成為英國科學和教育部部長,是他“重新發現”了埃達。在為他 1953 年出版的《比思考更快》(Faster Than Thought,沒錯,是關於計算機的)一書做研究時,他找到了埃達的外孫女温特沃思夫人,她向他講述了關於埃達的家族傳説,有準確的,也有不準確的,並讓他看了一些埃達的論文。有趣的是,鮑登注意到,在埃達的外孫女的《純種賽馬》(Thoroughbred Racing Stock)一書中,使用了二進制來計算血統。當然,埃達和分析機所使用的是十進制,還沒有考慮二進制。
但即使是在 20 世紀 60 年代,巴貝奇和埃達也並不出名。巴貝奇的差分機原型曾被贈送給倫敦的科學博物館,我在 20 世紀 60 年代還是個孩子時經常去科學博物館,我很確定我從來沒有在那裏看到過它。不過,到了 20 世紀 80 年代,特別是在美國國防部以埃達的名字為其命運多舛的編程語言(即Ada語言)命名之後,人們對埃達·洛夫萊斯和查爾斯·巴貝奇的認識開始增加,傳記也開始出現,不過有時會出現一些匪夷所思的錯誤(我最喜歡的是,有人提到,在巴貝奇的一封信中提到的“三體問題”表明巴貝奇、埃達和威廉之間存在三角感情關係,而它實際上指的是天體力學中的三體問題!)。
隨着人們對巴貝奇和埃達的興趣與日俱增,人們也越來越好奇,如果按照巴貝奇的計劃建造差分機,它是否真的能夠工作。2002 年,一個項目啓動了,經過艱苦的努力,一台完整的差分機被製造了出來,只對方案做了一處修正。令人驚訝的是,這台機器居然真的可以運行。考慮通貨膨脹因素,建造這台機器的成本與巴貝奇在 1823年向英國政府提出的要求大致相同。
那分析機呢?到目前為止,還沒有一台真正的分析機被製造出來,甚至沒有完全模擬出來。
埃達究竟寫了什麼
埃達關於分析機的註釋的實際內容又是什麼呢?
它的開頭很清晰:“差分機是用來計算特定函數的積分並製作表格的,該函數是……”她接着解釋説,差分機可以計算任何六次多項式的值,但分析機則不同,因為它可以執行任何運算序列。或者,正如她所説:“分析機是運算科學的具體體現,它在構建時特別參考了抽象的數作為運算對象。而差分機則是一組特定且非常有限的運算的具體體現……”
考慮到我在 Mathematica 上花了這麼多年的時間,至少對我來説,令人高興的是,她在後面的一段話中繼續説道:“我們可以將機器視為分析的物質和機械代表,通過機器我們能夠完全控制代數和數值符號的執行運算,從而使我們在人類研究的這一領域的實際工作能力,比以往更有效地跟上我們對其原理和法則的理論認識。”
稍後,她又解釋説,打孔卡片是控制分析機的方式,然後她發表了一個經典聲明:“分析機編織代數模式,就像雅卡爾提花機編織花朵和葉子一樣。”
然後,埃達詳細介紹了一系列特定類型的計算如何在分析機上工作,其中“運算卡片”定義了要執行的運算,“變量卡片”定義了值的位置。埃達談到了“循環”和“循環的循環”等,也就是現在所説的循環和嵌套循環,並給出了相應的數學符號:
在埃達的註釋中有很多看起來很現代的內容。她評論説:“有一幅美麗的雅卡爾提花機編織的畫像,製作它需要 2.4 萬張卡片。”然後,她討論了使用循環來減少所需卡片數量的想法,以及重新排列運算以優化其在分析機上的執行的價值,最終表明只需 3 張卡片就能完成看似需要 330 張卡片才能完成的工作。
埃達談到了分析機在計算以往無法計算的東西方面所能達到的程度,至少在精確度上是如此。作為例子,她討論了三體問題,以及在她那個時代,在“大約 295 個月球攝動係數”中,許多係數經由不同的人計算所得的結果並不一致。
最後是埃達的註釋 G。她早期就説過:“分析機並不自詡能創造任何東西。我們知道如何命令它做什麼,它就能做什麼。……它的職責是幫助我們瞭解我們已經熟悉的東西。”
埃達似乎對編程的傳統觀點有了較為清晰的理解:我們設計程序來做我們知道如何做的事情。但她也指出,在實際把“真理和分析公式”變成一種適合機器的形式時,“這門科學中許多主題的性質必然會被置於新視角,並得到更深刻的研究”。換句話説,正如我經常指出的那樣,實際上編程不可避免地會讓人對其進行更多的探索。
她接着説:“在為數學真理設計一種新的形式來記錄和投入實際使用時,很可能會引發一些觀點,而這些觀點又可能會對這門學科更為理論的階段產生影響。”或者換句話説,正如我經常説的那樣,以可計算的形式來表示數學真理可能有助於人們更好地理解這些真理本身。
不過,埃達似乎明白,由機器所實現的“運算科學”不僅適用於傳統的數學運算。例如,她指出,如果“和聲學中音高的基本關係”可以進行抽象運算的話,那麼機器就可以利用它們“創作出任何複雜程度或範圍的精緻而科學的音樂作品”。對於 1843 年來説,這樣的理解水平還不錯。
伯努利數的計算
在埃達所寫的文章中,最著名的部分是註釋 G 中關於伯努利數的計算。這似乎源於 1843 年 7 月她寫給巴貝奇的一封信。她在信的開頭寫道:“我很努力地為你工作着。事實上,我就像魔鬼一樣(也許我就是魔鬼)。”然後,她要求巴貝奇提供一些具體的參考資料。最後她説:“我想在我的一處註釋中加入一些關於伯努利數的內容,作為一個例子,説明如何通過機器計算出隱函數,而無須先通過人的頭腦和雙手計算出來……。請你給我必要的數據和公式。”
碰巧的是,幾年前,為了展示新的算法,我們甚至計算了 1000 萬個伯努利數。
那麼,埃達打算怎麼做呢?她從伯努利數出現在級數展開式中這樣的事實出發:
(編者注:這裏用 Wolfram 語言對這一算法進行了説明。“B[n]”表示伯努利數 Bn ,“Sum”和“Product”分別為求和與連乘。這段代碼首先指定伯努利數第一項為 1,然後定義了一個用於求伯努利數的遞歸函數。)
在分析機上,我們的想法是進行一系列由“磨坊”來執行的運算(由運算卡片指定),這些運算數來自“倉庫”(Store,即存儲單元,地址由變量卡片指定)。(在“倉庫”中,每個數由一系列輪子表示,每個輪子轉到每位數字的對應值。)以埃達想要的方式計算伯努利數需要兩個嵌套的循環運算。在當時的分析機設計下,埃達基本上不得不展開這些循環。但她
正如打印出來的那樣,埃達的執行軌跡在第 4 行出現了一個錯誤:分數上下顛倒了。但如果修正了這個錯誤,就可以很容易地得到一個現代版的埃達算法。正如埃達所指出的那樣,計算更靠後的伯努利數最終並不需要更多的工作變量(由變量卡片指定),只需要更多的運算。
奇怪的是,即使在幾年前我們創紀錄的伯努利數計算中,我們使用的算法也基本上與埃達相同,儘管現在有了稍微快一點的算法,可以有效地計算伯努利數的分子對一系列質數進行模運算的結果,然後使用中國剩餘定理(也稱孫子定理、中國餘數定理)重構完整的數。
巴貝奇 vs 埃達?
分析機及其構造都是巴貝奇的工作。那麼埃達又補充了什麼呢?埃達認為自己首先是一個闡釋者。巴貝奇曾給她看了很多分析機的圖紙和例子。她想解釋它們的總體要點是什麼,並將其與“宏大、概括和形而上學的觀點”聯繫起來。
在現存的巴貝奇論文檔案(多年後在其律師家的牛皮行李箱中被發現)中,有大量關於分析機的闡述草稿,這些草稿從 19 世紀30 年代開始,一直持續了幾十年,標題包括《關於分析機》(“Of the Analytical Engine”)和《將數的科學歸約為機械》(“The Science of Number Reduced to Mechanism”)。我們尚不清楚為什麼巴貝奇從未發表過這些作品。它們似乎是對分析機基本運作原理的完美描述,儘管與埃達的作品相比,這些描述無疑更加乏善可陳。
巴貝奇去世時,他正在寫一本關於分析機的歷史的書,他的兒子完成了這本書[編者注:他的兒子即前文提到的亨利·巴貝奇,最終成書為《巴貝奇的計算機器》(Babbage’s Calculating Engines)]。在這本書中,有一份註明日期的清單,列出了“446 種分析機符號”,每一種符號基本上都代表瞭如何在分析機上進行某種運算,比如除法。日期從 19 世紀 30 年代開始,一直持續到19 世紀 40 年代中期,其中 1843 年夏天列示的符號並不多。
同時,在英國科學博物館收藏的巴貝奇的論文中,有一些關於分析機的更高級運算的草圖。例如,1837 年的草圖中,有“兩個一階方程之間的消元”,這本質上是對有理函數的求值。
但是,沒有任何一項工作能像埃達對伯努利數的計算那樣複雜或清晰了。巴貝奇當然對埃達的工作有所幫助和評論,但埃達絕對是這項工作的推動者。
埃達對分析機應該具備的能力有了想法,並向巴貝奇提出瞭如何實現這一目標的問題。根據我自己與現代硬件設計師打交道的經驗,這些問題的答案往往會非常詳細。埃達的成就是從這些細節中提煉出對機器抽象運算的清晰闡述,而這是巴貝奇從未做過的。(在他的自傳中,他基本上只是提到了埃達的註釋。)
更廣闊的圖景
埃達·洛夫萊斯是一位聰明的女性,她和巴貝奇成了朋友(沒有任何證據表明他們曾經有過戀情)。出於對巴貝奇的幫助,她寫了一篇關於分析機的闡釋,在此過程中,她對分析機有了比巴貝奇更抽象的理解,並窺見了通用計算這一令人難以置信的強大思想。
當埃達寫到巴貝奇的機器時,她想用最清晰的方式解釋它的功能。為此,她對機器進行了更抽象的研究,結果是她最終探索並闡明瞭現代通用計算一些很容易被識別的概念。
埃達所做的一切被遺忘了很多年。但隨着數理邏輯領域的發展,通用計算的概念再次出現,最明顯的是艾倫·圖靈在 1936 年的工作。然後,在 20 世紀 40 年代,當電子計算機被製造出來時,人們意識到它們也表現出了通用計算的特性,並將其與圖靈的工作聯繫起來。
埃達接觸到了在我們這個時代具有決定性意義的知識思想,這是一種幸運。巴貝奇不知道自己擁有什麼,而埃達則看到了一些蛛絲馬跡,併成功地描述了它們。
作者簡介
斯蒂芬·沃爾弗拉姆(Stephen Wolfram):計算機科學家、數學家和理論物理學家。他創造了在全世界備受推崇的軟件系統——Mathematica、Wolfram|Alpha和Wolfram語言。35年來,他一直擔任科技公司Wolfram Research的首席執行官,並取得了基礎科學領域的一系列突破性進展,包括最近的Wolfram物理項目(Physics Project)。
特 別 提 示
1. 進入『返樸』微信公眾號底部菜單“精品專欄“,可查閲不同主題系列科普文章。
2. 『返樸』提供按月檢索文章功能。關注公眾號,回覆四位數組成的年份+月份,如“1903”,可獲取2019年3月的文章索引,以此類推。