第六百八十章 彙編語言之母Kathleen Booth

第六百八十章 彙編語言之母Kathleen Booth

KathleenHyldaValerieBooth教授是英國早期的計算機先驅之一。

想像一下,必須通過重新布線來對計算機進行編程。是不是很不可思議?

在1940年代中期,第一台通用電子計算機就是以這種方式工作的。

像ENIAC這樣的計算機,最初並沒有用於代碼的內部存儲。如果我們想要用它編程,就要操縱數千個開關和電纜,而這些開關和電纜所在的位置,就是程序。

所有帶旋轉開關的單元都是需要大量編程的地方。

此時的編程,必須手動更改數千根電纜和開關,或者在卡片上打孔,然後將卡片送入計算機,這可能需要數天時間,而且極易出錯。

在KathleenBooth開始研究計算機的那個年代,有那麼一小群人,開始產生了將程序存儲在計算機內部的想法。而她也是最早研究「軟件」這一新概念的人之一,她從中看到了需求,發明了彙編語言,使計算機編程更加人性化。

AndrewBooth在與X射線晶體學家JDBernal教授(伯納爾球的發明者)合作期間,使用X射線衍射數據來研究晶體結構。他發現手動計算非常繁瑣,於是造了一台模擬計算機,來自動化部分步驟。

1946年,他在伯貝克擔任納菲爾德研究員。但由於學院沒有空間,而且由於BRPRA為其提供資金,所以他的工作是在BRPRA的設施上完成的。

就在那時,他遇到了Kathleen。同年,Kathleen和Andrew在伯貝克學院合作發明了一台早期的數字計算機——自動中繼計算機(ARC)。ARC使用紙帶進行輸入,實際上是一台用作傅立葉合成器的專用計算機。

在此期間,他們一同創建了如今的伯貝克計算機科學與信息系統系。

1945年,約翰·馮·諾依曼(JohnvonNeumann)撰寫了一份名為「EDVAC報告初稿」的文件,在這份文件中,他描述了後來被稱為計算機的馮·諾依曼架構。

在這個架構中,他定義了計算機的各個部分,特別是存儲在計算機內存中的程序。出於這個原因,它也被稱為存儲程序計算機。

在經典的馮·諾依曼計算機架構中,地址空間大部分用於指向內存,其餘部分用於指向外部設備:內存並不關心裏面存儲的是什麼。

1947年,Andrew和Kathleen在普林斯頓大學與馮諾依曼和IAS機器合作時,編寫了一個程序,用於在電子計算機上實現翻譯詞典,前提是提供必要的存儲容量。這是史上最早的機器翻譯奠基工作。

在這一年,Bernal幫助Kathleen和Andrew從洛克菲勒基金會申請到了訪問普林斯頓高等研究院的資金。在此期間,Andrew和Kathleen與馮諾依曼一起共事了6個月。

根據Andrew的說法,在訪問期間,只有Bernal的朋友約翰·馮·諾伊曼在任何時間都會接待他們。

一個簡化的內存管理系統——CPU中的程序計數器不再直接指向內存,而是產生一個進入MMU的虛擬地址,重定位常量添加到虛擬地址,以在內存中創建物理地址。

就是這次訪問,讓他們第一次聽說了馮諾依曼架構。受到啟發,他們重新設計了ARC,僅用了2個月就設計了機器的繼電器部分,並且提出了關於ARC2的構想。

還是在1947年,Kathleen和他還寫了兩份關於它的報告《通用電子數字計算機設計中的一般考慮因素》和《ARC編碼》。其中第一份報告廣為流傳。在其中,他們詳細介紹了馮諾依曼架構機器,並介紹了內存的不同選項。

此外,這份報告還描述了她發明「彙編語言」的前身,她在報告中將其命名為ContractedNotation。這是對計算機編程進行抽象思考的第一步,無需編寫顯式的1和0或機器代碼指令。

在這份報告中,Kathleen的編程能力大放異彩。並且,她設想了同步與非同步操作的可能性,這可是在1947年!在此之後,我們唯一能夠找到的非同步描述來自1980年代中期。

同步與非同步操作將允許程序中的多條指令并行執行。因此,在執行下一條指令之前,程序不會被阻止等待當前指令的結果。這將有效地改善程序執行時間,即處理所有指令所需的時間。

摘自《通用電子數字計算機設計中的一般考慮因素》

第二份報告「CodingForARC」,於1947年9月出版。在這份報告裏,Kathleen首次詳細介紹了ARC2「彙編語言」。

在該報告中,Kathleen還解釋了orders(現在稱為指令instructions)是如何由載入到某種存儲中的0和1表示的。

通過彙編語言,我們不必再記住機器代碼10010110作為指令,只需記住並輸入彙編語言助記符MOV作為指令。

不過,目前已無法找到這份報告的數字副本。

在1948年,Andrew和Kathleen將研究方向轉向簡單電子計算機(SEC),然後是通用電子X射線計算機或APE(X)C。現在,我們可以在MESS模擬器中試用APE(X)C。

Hollerith電子計算機(HEC)是世界上現存最早的電子計算機之一。

他們最著名的機器APEC(通用電子計算機)是在1949年設計出來的。

1951年,BTM使用其硬件電路作為HEC1計算機設計的基礎,這種計算機在1950年代末直接成為最暢銷的英國計算機,安裝了近100台。

Andrew發明了一種并行乘法器演演算法,該演演算法仍然構成現代計算機晶片(布斯乘法器)中乘法電路的基礎。

他們還一起發明了旋轉存儲設備。在1940年代後期,他們試圖製造可工作的光碟,但失敗了,不過,他們成功地建造了世界上第一個磁鼓存儲器,該存儲在1950年代被廣泛用於主存儲器和後備存儲。

在磁鼓存儲器中,信息存儲在滾筒上的可磁化條上,數字信息存儲為二進位磁性圖案

1950年,Kathleen和Andrew結婚,就在同年,Kathleen從倫敦大學獲得了應用數學博士學位。

為了爭取更多資金,兩夫婦再次前往洛克菲勒基金會。基金會提出的條件:必須讓APE(C)X既可以用人類語言,也可以用數學語言。這也就是我們所熟知的自然語言處理。

他們做到了,在1955年11月,他們展示了機器翻譯的過程。

他們的目標是實現準確的技術翻譯,而不是追求文學質量。

他們在伯貝克學院時,與學生一起做了很多NLP的工作,同時在1965年至1972年間,他們為加拿大國家研究委員會從事英法翻譯工作。

Kathleen在1958年出版的《自動數字計算器編程》,可能是第一本由女性撰寫的關於編程的書。

在這本書中,她介紹了和同事在1965年之前一直在研究的一些演演算法,比如單詞替換、詞幹和詞尾處理。

她的另一個開創性工作是通過編程模擬神經網絡,來識別動物。這距離史上第一次在計算機上運行神經網絡,僅僅過了四年。

Booth一家於1962年離開伯貝克學院,移居加拿大,先後在薩斯喀徹溫大學、湖首大學工作。

她於1978年從湖首大學退休,但可以看到,在1993年、她已經71歲高齡時,還發表了和兒子IanJMBooth博士共同撰寫的論文《使用神經網絡識別海洋哺乳動物》。

KathleenBooth於2022年9月29日去世。伯貝克學院發文悼念。

不過,相比於這位來自英國的女性,更加廣為人知的是另一位男性——DavidWheeler。

為此,美國IEEE計算機協會還在1985年為他頒發了計算機先鋒獎。

當時,作為與MauriceWilkes一起研究劍橋大學Edsac(電子延遲存儲自動計算機)的團隊成員,DavidWheeler負責為計算機提供指令的系統。

Wheeler開發的「初始指令」(initialorders)讓Edsac的指令可以用一種簡單的語言編寫,而不再是「人肉輸入」二進位數字。

此外,他還開發了「WheelerJump」,允許程序將控制權傳遞給子程序,也就是用Basic寫過程序的人都知道的「goto」語句的前身。

DavidJohnWheeler於1927年出生在伯明翰。1945年,他獲得了劍橋大學三一學院的獎學金,在那裏他學習數學,並於1948年畢業。

在此期間,MauriceWilkes在重新開放的數學實驗室工作,從事一個名為Edsac的存儲程序電子計算機的建造項目。

Edsac的第一個程序於1949年3月在Edsac上運行,其中就包括了Wheeler開發的「初始命令」,一個可以將簡單的命令翻譯成計算機所需的二進位指令的程序。這使得Edsac可以由非專業人員進行編程,並標誌着編程語言的發展邁出了第一步。

為Edsac編寫程序的經驗使Wheeler和他的同事MauriceWilkes和StanleyGill在1951年出版了第一本針對程序員的書「ThePreparationofProgramsforanElectronicDigitalComputer」,同年,Wheeler獲得了實驗室授予的第一個博士學位。

1955年,應用數學的研究學生JoyceBlackler開始在工作中使用Edsac,並認識了DavidWheeler。他們於1957年8月結婚。

1965年他成為達爾文學院的研究員,1966年在加利福尼亞大學伯克利分校工作,研究如何將在線終端與大型計算機連接起來。1968年,他在貝爾實驗室工作了一段時間。1977年,他成為計算機科學教授。

他在1970年被選為英國計算機學會的會員,1981年成為最早被選為皇家學會會員的計算機科學家之一。

1984:美國女性離開代碼的那一年

但凡是對編程歷史有所了解的人,必然聽說過AdaLovelace和GraceHopper。她們和其他從業的女性一起,對現代編程產生了巨大影響。

但現在,你能叫出名字的「大人物」,無疑是像史蒂夫·喬布斯、比爾·蓋茨和馬克·扎克伯格這樣的男性。

那麼,曾經的女性都去了哪裏?

時間回到第二次世界大戰期間,當時第一批「程序員」有很多都是女性,如計算公司(CompInc.)的創始人ElsieShutt和創造了第一個編譯器的GraceHopper。

戰爭勝利之後,雖然有越來越多的男性加入,但女性不僅仍然從事著科學和技術領域工作,而且攻讀計算機科學學位的人數也在不斷增長。

直到,1984年……

在20世紀80年代中期,計算機開始成為美國人的家庭用品。

當時,計算機在市場上的定位主要是面向商業和遊戲的,而這兩類產品的受眾基本上都是男性。

此外,電影院裏的電影和電視上的廣告為程序員確立了一個獨特的身份:書獃子,年輕男性。

看看這個玩具反斗城的Commodore64的廣告就知道了。

不難想像,初高中的男孩們顯然會比同齡的女孩,更容易接觸到電腦。

而這一差距,在他們升入大學時便會顯現出來。

上世紀70年代,計算機科學的教授普遍認為新生是不具備任何計算機相關的經驗。但隨着個人電腦在80年代變得越來越普及,教授們也越來越覺得他們的學生是玩著電腦長大的。

對於家裏沒有電腦的PatriciaOrdóez來說,這無疑是一道難以逾越的鴻溝。

還在上中學的時候,Ordóez數學成績極佳。因此,當他進入約翰霍普金斯大學時,最初的志願是攻讀計算機科學或電氣工程專業。

然而,當Ordóez來到第一堂入門課時才發現,周圍男同學對計算機的了解都比她要早得多,而自己卻不得不問一些「常識性問題」。

「有一次,教授在回答完之後,停下來看着我說:『現在你應該知道了吧。』」

雖然Ordóez在後來也通過了課程,但也獲得了人生中第一個C。最終,她選擇放棄,主修了外語。

不過,十多年後,她又回到了計算機領域,並最終獲得了計算機科學的博士學位。現在她是波多黎各大學的計算機科學助理教授。

上一章書籍頁下一章

數學心

···
加入書架
上一章
首頁 其他 數學心
上一章下一章

第六百八十章 彙編語言之母Kathleen Booth

%