近來寫程式成了一門顯學,歐巴馬在2014年12月8日還現學現寫,用Javascript在螢幕上畫了一個方形色塊,成為第一位寫程式的美國總統。那麼史上第一位程式設計師是誰呢?答案出乎絕大部份人的意料之外:是一位出生於兩百年前的女性──艾妲.勒芙雷斯。
艾妲·勒芙雷斯。圖片來源:wikimedia
等等,電腦發明尚未超過百年,這怎麼可能呢?這就得從英國發明家查爾斯.巴貝奇(Charles Babbage)說起了。他在1822年設計出一部由齒輪帶動的差分機,可以反覆計算多項式的差值,而反推出函數的近似值,若能用機器取代人力計算,不但能縮短時間還能避免出錯。然而這部機器要用到兩萬多個零件,而且零件須有相當高的精密度,結果耗時十年,只做出完成度只有七分之一的半成品,原本資助此計畫的英國政府終於失去耐心,不願再挹注資金。但巴貝奇的夢想並未因此中止,因為他遇見了艾妲。
艾妲原來的姓氏是拜倫,是的,她就是詩人拜倫的女兒,卻從未見過父親。因為她的母親在她出生沒多久就受不了拜倫的喜怒無常與不負責任,而帶著她離開拜倫了。或許是遺傳到母親的數學天賦,艾妲自小就嶄露數學天份。十七歲時,她在巴貝奇處看到差分機的半成品,當場就被它吸引。她與巴貝奇兩人持續密集地書信往返討論差分機的未來,巴貝奇從中獲得靈感,決定設計更強大的「分析機」。
巴貝奇構想的分析機用蒸氣驅動,可以用打孔紙帶輸入不同程式,還有貯存資料的暫存器,可說是具備了現代電腦的雛型。為了尋求資助,巴貝奇也到歐陸演講宣傳。一位義大利數學家特地寫了篇科學報告,向歐陸的科學家介紹巴貝奇的構想。這份以法文寫成的報告約八千字,艾妲將它翻譯成英文並加上自己的註解,結果成了兩萬字的小書。
就是在這份譯稿中,艾妲為了舉例如何讓分析機解出代表白努利數的無限數列,而一個步驟一個步驟的寫出形成遞迴計算的指令,這些步驟其實就相當於現在的電腦程式。雖然巴貝奇的分析機終因過於龐大複雜而從未製造出來,但艾妲毫無疑義地被公認為寫出第一支電腦程式的先驅。
在那女性不能進大學的時代,艾妲以家庭主婦的身分竟能有此成就,實在難能可貴!只可惜她37歲時就因醫生用放血療法醫治她的子宮頸癌而失血過多死亡。
本文同時收錄於《科學史上的今天:歷史的瞬間,改變世界的起點》,由究竟出版社出版。