kathleen hylda valerie booth教授是英國早期的計算機先驅之一。
想象一下,必須通過重新布線來對計算機進行編程。是不是很不可思議?
在1940年代中期,第一台通用電子計算機就是以這種方式工作的。
像eniac這樣的計算機,最初並沒有用於代碼的內部存儲。如果我們想要用它編程,就要操縱數千個開關和電纜,而這些開關和電纜所在的位置,就是程序。
所有帶旋轉開關的單元都是需要大量編程的地方。
此時的編程,必須手動更改數千根電纜和開關,或者在卡片上打孔,然後將卡片送入計算機,這可能需要數天時間,而且極易出錯。
在kathleen booth開始研究計算機的那個年代,有那麽一小群人,開始產生了將程序存儲在計算機內部的想法。而她也是最早研究「軟件」這一新概念的人之一,她從中看到了需求,發明了匯編語言,使計算機編程更加人性化。
andrew booth在與x射線晶體學家jd bernal教授(伯納爾球的發明者)合作期間,使用x射線衍射數據來研究晶體結構。他發現手動計算非常繁瑣,於是造了一台模擬計算機,來自動化部分步驟。
1946年,他在伯貝克擔任納菲爾德研究員。但由於學院沒有空間,而且由於brpra為其提供資金,所以他的工作是在brpra的設施上完成的。
就在那時,他遇到了kathleen。同年,kathleen和andrew在伯貝克學院合作發明了一台早期的數字計算機——自動中繼計算機(arc)。arc使用紙帶進行輸入,實際上是一台用作傅立葉合成器的專用計算機。
在此期間,他們一同創建了如今的伯貝克計算機科學與信息係統係。
1945年,約翰·馮·諾依曼(john von neumann)撰寫了一份名為「edvac報告初稿」的文件,在這份文件中,他描述了後來被稱為計算機的馮·諾依曼架構。
在這個架構中,他定義了計算機的各個部分,特別是存儲在計算機內存中的程序。出於這個原因,它也被稱為存儲程序計算機。
在經典的馮·諾依曼計算機架構中,地址空間大部分用於指向內存,其餘部分用於指向外部設備:內存並不關心裏麵存儲的是什麽。
1947年,andrew和kathleen在普林斯頓大學與馮諾依曼和ias機器合作時,編寫了一個程序,用於在電子計算機上實現翻譯詞典,前提是提供必要的存儲容量。這是史上最早的機器翻譯奠基工作。
在這一年,bernal幫助kathleen和andrew從洛克菲勒基金會申請到了訪問普林斯頓高等研究院的資金。在此期間,andrew和kathleen與馮諾依曼一起共事了6個月。
根據andrew的說法,在訪問期間,隻有bernal的朋友約翰·馮·諾伊曼在任何時間都會接待他們。
一個簡化的內存管理係統——cpu中的程序計數器不再直接指向內存,而是產生一個進入mmu的虛擬地址,重定位常量添加到虛擬地址,以在內存中創建物理地址。
就是這次訪問,讓他們第一次聽說了馮諾依曼架構。受到啟發,他們重新設計了arc,僅用了2個月就設計了機器的繼電器部分,並且提出了關於arc2的構想。
還是在1947年,kathleen和他還寫了兩份關於它的報告《通用電子數字計算機設計中的一般考慮因素》和《arc編碼》。其中第一份報告廣為流傳。在其中,他們詳細介紹了馮諾依曼架構機器,並介紹了內存的不同選項。
此外,這份報告還描述了她發明「匯編語言」的前身,她在報告中將其命名為contracted notation。這是對計算機編程進行抽象思考的第一步,無需編寫顯式的1和0或機器代碼指令。
在這份報告中,kathleen的編程能力大放異彩。並且,她設想了同步與異步操作的可能性,這可是在1947年!在此之後,我們唯一能夠找到的異步描述來自1980年代中期。
同步與異步操作將允許程序中的多條指令並行執行。因此,在執行下一條指令之前,程序不會被阻止等待當前指令的結果。這將有效地改善程序執行時間,即處理所有指令所需的時間。
摘自《通用電子數字計算機設計中的一般考慮因素》
第二份報告「coding for arc」,於1947年9月出版。在這份報告裏,kathleen首次詳細介紹了arc2「匯編語言」。
在該報告中,kathleen還解釋了orders(現在稱為指令instructions)是如何由加載到某種存儲中的0和1表示的。
通過匯編語言,我們不必再記住機器代碼作為指令,隻需記住並輸入匯編語言助記符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歲高齡時,還發表了和兒子ian jm booth博士共同撰寫的論文《使用神經網絡識別海洋哺乳動物》。
kathleen booth於2022年9月29日去世。伯貝克學院發文悼念。
不過,相比於這位來自英國的女性,更加廣為人知的是另一位男性——david wheeler。
為此,美國ieee計算機協會還在1985年為他頒發了計算機先鋒獎。
當時,作為與maurice wilkes一起研究劍橋大學edsac(電子延遲存儲自動計算機)的團隊成員,david wheeler負責為計算機提供指令的係統。
wheeler開發的「初始指令」(initial orders)讓edsac的指令可以用一種簡單的語言編寫,而不再是「人肉輸入」二進製數字。
此外,他還開發了「wheeler jump」,允許程序將控製權傳遞給子程序,也就是用basic寫過程序的人都知道的「goto」語句的前身。
david john wheeler於1927年出生在伯明翰。1945年,他獲得了劍橋大學三一學院的獎學金,在那裏他學習數學,並於1948年畢業。
在此期間,maurice wilkes在重新開放的數學實驗室工作,從事一個名為edsac的存儲程序電子計算機的建造項目。
edsac的第一個程序於1949年3月在edsac上運行,其中就包括了wheeler開發的「初始命令」,一個可以將簡單的命令翻譯成計算機所需的二進製指令的程序。這使得edsac可以由非專業人員進行編程,並標誌著編程語言的發展邁出了第一步。
為edsac編寫程序的經驗使wheeler和他的同事maurice wilkes和stanley gill在1951年出版了第一本針對程序員的書「the preparation of programs for an electronic digital puter」,同年,wheeler獲得了實驗室授予的第一個博士學位。
1955年,應用數學的研究學生joyce ckler開始在工作中使用edsac,並認識了david wheeler。他們於1957年8月結婚。
1965年他成為達爾文學院的研究員,1966年在加利福尼亞大學伯克利分校工作,研究如何將在線終端與大型計算機連接起來。1968年,他在貝爾實驗室工作了一段時間。1977年,他成為計算機科學教授。
他在1970年被選為英國計算機學會的會員,1981年成為最早被選為皇家學會會員的計算機科學家之一。
1984:美國女性離開代碼的那一年
但凡是對編程曆史有所了解的人,必然聽說過ada lovce和grace hopper。她們和其他從業的女性一起,對現代編程產生了巨大影響。
但現在,你能叫出名字的「大人物」,無疑是像史蒂夫·喬布斯、比爾·蓋茨和馬克·紮克伯格這樣的男性。
那麽,曾經的女性都去了哪裏?
時間迴到第二次世界大戰期間,當時第一批「程序員」有很多都是女性,如計算公司(pinc.)的創始人elsie shutt和創造了第一個編譯器的grace hopper。
戰爭勝利之後,雖然有越來越多的男性加入,但女性不僅仍然從事著科學和技術領域工作,而且攻讀計算機科學學位的人數也在不斷增長。
直到,1984年……
在20世紀80年代中期,計算機開始成為美國人的家庭用品。
當時,計算機在市場上的定位主要是麵向商業和遊戲的,而這兩類產品的受眾基本上都是男性。
此外,電影院裏的電影和電視上的廣告為程序員確立了一個獨特的身份:書呆子,年輕男性。
看看這個玩具反鬥城的modore 64的廣告就知道了。
不難想象,初高中的男孩們顯然會比同齡的女孩,更容易接觸到電腦。
而這一差距,在他們升入大學時便會顯現出來。
上世紀70年代,計算機科學的教授普遍認為新生是不具備任何計算機相關的經驗。但隨著個人電腦在80年代變得越來越普及,教授們也越來越覺得他們的學生是玩著電腦長大的。
對於家裏沒有電腦的patricia ordo?ez來說,這無疑是一道難以逾越的鴻溝。
還在上中學的時候,ordo?ez數學成績極佳。因此,當他進入約翰霍普金斯大學時,最初的誌願是攻讀計算機科學或電氣工程專業。
然而,當ordo?ez來到第一堂入門課時才發現,周圍男同學對計算機的了解都比她要早得多,而自己卻不得不問一些「常識性問題」。
「有一次,教授在迴答完之後,停下來看著我說:『現在你應該知道了吧。』」
雖然ordo?ez在後來也通過了課程,但也獲得了人生中第一個c。最終,她選擇放棄,主修了外語。
不過,十多年後,她又迴到了計算機領域,並最終獲得了計算機科學的博士學位。現在她是波多黎各大學的計算機科學助理教授。
想象一下,必須通過重新布線來對計算機進行編程。是不是很不可思議?
在1940年代中期,第一台通用電子計算機就是以這種方式工作的。
像eniac這樣的計算機,最初並沒有用於代碼的內部存儲。如果我們想要用它編程,就要操縱數千個開關和電纜,而這些開關和電纜所在的位置,就是程序。
所有帶旋轉開關的單元都是需要大量編程的地方。
此時的編程,必須手動更改數千根電纜和開關,或者在卡片上打孔,然後將卡片送入計算機,這可能需要數天時間,而且極易出錯。
在kathleen booth開始研究計算機的那個年代,有那麽一小群人,開始產生了將程序存儲在計算機內部的想法。而她也是最早研究「軟件」這一新概念的人之一,她從中看到了需求,發明了匯編語言,使計算機編程更加人性化。
andrew booth在與x射線晶體學家jd bernal教授(伯納爾球的發明者)合作期間,使用x射線衍射數據來研究晶體結構。他發現手動計算非常繁瑣,於是造了一台模擬計算機,來自動化部分步驟。
1946年,他在伯貝克擔任納菲爾德研究員。但由於學院沒有空間,而且由於brpra為其提供資金,所以他的工作是在brpra的設施上完成的。
就在那時,他遇到了kathleen。同年,kathleen和andrew在伯貝克學院合作發明了一台早期的數字計算機——自動中繼計算機(arc)。arc使用紙帶進行輸入,實際上是一台用作傅立葉合成器的專用計算機。
在此期間,他們一同創建了如今的伯貝克計算機科學與信息係統係。
1945年,約翰·馮·諾依曼(john von neumann)撰寫了一份名為「edvac報告初稿」的文件,在這份文件中,他描述了後來被稱為計算機的馮·諾依曼架構。
在這個架構中,他定義了計算機的各個部分,特別是存儲在計算機內存中的程序。出於這個原因,它也被稱為存儲程序計算機。
在經典的馮·諾依曼計算機架構中,地址空間大部分用於指向內存,其餘部分用於指向外部設備:內存並不關心裏麵存儲的是什麽。
1947年,andrew和kathleen在普林斯頓大學與馮諾依曼和ias機器合作時,編寫了一個程序,用於在電子計算機上實現翻譯詞典,前提是提供必要的存儲容量。這是史上最早的機器翻譯奠基工作。
在這一年,bernal幫助kathleen和andrew從洛克菲勒基金會申請到了訪問普林斯頓高等研究院的資金。在此期間,andrew和kathleen與馮諾依曼一起共事了6個月。
根據andrew的說法,在訪問期間,隻有bernal的朋友約翰·馮·諾伊曼在任何時間都會接待他們。
一個簡化的內存管理係統——cpu中的程序計數器不再直接指向內存,而是產生一個進入mmu的虛擬地址,重定位常量添加到虛擬地址,以在內存中創建物理地址。
就是這次訪問,讓他們第一次聽說了馮諾依曼架構。受到啟發,他們重新設計了arc,僅用了2個月就設計了機器的繼電器部分,並且提出了關於arc2的構想。
還是在1947年,kathleen和他還寫了兩份關於它的報告《通用電子數字計算機設計中的一般考慮因素》和《arc編碼》。其中第一份報告廣為流傳。在其中,他們詳細介紹了馮諾依曼架構機器,並介紹了內存的不同選項。
此外,這份報告還描述了她發明「匯編語言」的前身,她在報告中將其命名為contracted notation。這是對計算機編程進行抽象思考的第一步,無需編寫顯式的1和0或機器代碼指令。
在這份報告中,kathleen的編程能力大放異彩。並且,她設想了同步與異步操作的可能性,這可是在1947年!在此之後,我們唯一能夠找到的異步描述來自1980年代中期。
同步與異步操作將允許程序中的多條指令並行執行。因此,在執行下一條指令之前,程序不會被阻止等待當前指令的結果。這將有效地改善程序執行時間,即處理所有指令所需的時間。
摘自《通用電子數字計算機設計中的一般考慮因素》
第二份報告「coding for arc」,於1947年9月出版。在這份報告裏,kathleen首次詳細介紹了arc2「匯編語言」。
在該報告中,kathleen還解釋了orders(現在稱為指令instructions)是如何由加載到某種存儲中的0和1表示的。
通過匯編語言,我們不必再記住機器代碼作為指令,隻需記住並輸入匯編語言助記符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歲高齡時,還發表了和兒子ian jm booth博士共同撰寫的論文《使用神經網絡識別海洋哺乳動物》。
kathleen booth於2022年9月29日去世。伯貝克學院發文悼念。
不過,相比於這位來自英國的女性,更加廣為人知的是另一位男性——david wheeler。
為此,美國ieee計算機協會還在1985年為他頒發了計算機先鋒獎。
當時,作為與maurice wilkes一起研究劍橋大學edsac(電子延遲存儲自動計算機)的團隊成員,david wheeler負責為計算機提供指令的係統。
wheeler開發的「初始指令」(initial orders)讓edsac的指令可以用一種簡單的語言編寫,而不再是「人肉輸入」二進製數字。
此外,他還開發了「wheeler jump」,允許程序將控製權傳遞給子程序,也就是用basic寫過程序的人都知道的「goto」語句的前身。
david john wheeler於1927年出生在伯明翰。1945年,他獲得了劍橋大學三一學院的獎學金,在那裏他學習數學,並於1948年畢業。
在此期間,maurice wilkes在重新開放的數學實驗室工作,從事一個名為edsac的存儲程序電子計算機的建造項目。
edsac的第一個程序於1949年3月在edsac上運行,其中就包括了wheeler開發的「初始命令」,一個可以將簡單的命令翻譯成計算機所需的二進製指令的程序。這使得edsac可以由非專業人員進行編程,並標誌著編程語言的發展邁出了第一步。
為edsac編寫程序的經驗使wheeler和他的同事maurice wilkes和stanley gill在1951年出版了第一本針對程序員的書「the preparation of programs for an electronic digital puter」,同年,wheeler獲得了實驗室授予的第一個博士學位。
1955年,應用數學的研究學生joyce ckler開始在工作中使用edsac,並認識了david wheeler。他們於1957年8月結婚。
1965年他成為達爾文學院的研究員,1966年在加利福尼亞大學伯克利分校工作,研究如何將在線終端與大型計算機連接起來。1968年,他在貝爾實驗室工作了一段時間。1977年,他成為計算機科學教授。
他在1970年被選為英國計算機學會的會員,1981年成為最早被選為皇家學會會員的計算機科學家之一。
1984:美國女性離開代碼的那一年
但凡是對編程曆史有所了解的人,必然聽說過ada lovce和grace hopper。她們和其他從業的女性一起,對現代編程產生了巨大影響。
但現在,你能叫出名字的「大人物」,無疑是像史蒂夫·喬布斯、比爾·蓋茨和馬克·紮克伯格這樣的男性。
那麽,曾經的女性都去了哪裏?
時間迴到第二次世界大戰期間,當時第一批「程序員」有很多都是女性,如計算公司(pinc.)的創始人elsie shutt和創造了第一個編譯器的grace hopper。
戰爭勝利之後,雖然有越來越多的男性加入,但女性不僅仍然從事著科學和技術領域工作,而且攻讀計算機科學學位的人數也在不斷增長。
直到,1984年……
在20世紀80年代中期,計算機開始成為美國人的家庭用品。
當時,計算機在市場上的定位主要是麵向商業和遊戲的,而這兩類產品的受眾基本上都是男性。
此外,電影院裏的電影和電視上的廣告為程序員確立了一個獨特的身份:書呆子,年輕男性。
看看這個玩具反鬥城的modore 64的廣告就知道了。
不難想象,初高中的男孩們顯然會比同齡的女孩,更容易接觸到電腦。
而這一差距,在他們升入大學時便會顯現出來。
上世紀70年代,計算機科學的教授普遍認為新生是不具備任何計算機相關的經驗。但隨著個人電腦在80年代變得越來越普及,教授們也越來越覺得他們的學生是玩著電腦長大的。
對於家裏沒有電腦的patricia ordo?ez來說,這無疑是一道難以逾越的鴻溝。
還在上中學的時候,ordo?ez數學成績極佳。因此,當他進入約翰霍普金斯大學時,最初的誌願是攻讀計算機科學或電氣工程專業。
然而,當ordo?ez來到第一堂入門課時才發現,周圍男同學對計算機的了解都比她要早得多,而自己卻不得不問一些「常識性問題」。
「有一次,教授在迴答完之後,停下來看著我說:『現在你應該知道了吧。』」
雖然ordo?ez在後來也通過了課程,但也獲得了人生中第一個c。最終,她選擇放棄,主修了外語。
不過,十多年後,她又迴到了計算機領域,並最終獲得了計算機科學的博士學位。現在她是波多黎各大學的計算機科學助理教授。