歷史上第一位女性圖靈獎(jiǎng)得主Frances Allen,在她88歲生日這天去世了。
Jeff Dean專門發(fā)推表示悼念。
作為編譯器優(yōu)化領(lǐng)域杰出的學(xué)者,F(xiàn)rances Allen見證了編譯器高速發(fā)展的黃金時(shí)代。
60年代,時(shí)值計(jì)算機(jī)行業(yè)飛速發(fā)展,Allen趕上這波人才空缺,加入了IBM公司,最后一干就是45年。
期間,她負(fù)責(zé)過Stretch-Harvest(簡稱Stretch超算)的編譯器優(yōu)化,PTRAN開發(fā),開創(chuàng)了針對Fortran的自動(dòng)并行化技術(shù)和SSA(靜態(tài)單一賦值)的IR(中間表示法)。
時(shí)至今日,IR仍被廣泛應(yīng)用在靜態(tài)編譯器和JIT中。
除此之外,她還是「上古語言」COBOL的編譯器開發(fā)者。
在計(jì)算機(jī)發(fā)展歷程中,「編譯器」是一個(gè)非常古老的領(lǐng)域,甚至比操作系統(tǒng)還要古老。
但它對推動(dòng)計(jì)算機(jī)領(lǐng)域的發(fā)展功不可沒。
在Frances Allen生前的一次訪談中,她曾提及過自己當(dāng)上程序員的契機(jī)、學(xué)習(xí)編程的方式、以及對如今的部分高級語言(如C語言)的看法。
從她的一些觀點(diǎn)中,也許能窺見編譯器發(fā)展的歷史。
獲圖靈獎(jiǎng),其實(shí)與性別無關(guān)
在2007年2月獲圖靈獎(jiǎng)時(shí),作為第一位女性獲獎(jiǎng)?wù)?,F(xiàn)rances Allen(下簡稱Allen)坦言,其實(shí)在那個(gè)互聯(lián)網(wǎng)并不發(fā)達(dá)的時(shí)代,許多人只知她的名字,但不知道她的性別。
在一次IBM關(guān)于ACS項(xiàng)目的會(huì)議上,許多人見到她的第一面都驚嘆:「你就是Allen?」
這時(shí)候她才知道,分配房間的工作人員按名字順序編排,誤將她和另一名男性分在了一個(gè)房間。
最后,大會(huì)工作人員不得不為她找了一間女傭的房間,這件事情才算過去。
Allen生前曾回憶,其實(shí)在計(jì)算機(jī)最初發(fā)展時(shí),各公司希望招更多的女程序員。那時(shí)候大家普遍認(rèn)為,女性的「細(xì)心」使得她們能展現(xiàn)出優(yōu)秀的編程能力。
事實(shí)上,與之相反的是,時(shí)至今日,在編程相關(guān)的工作上,依舊是男性居多。
一方面與如今計(jì)算機(jī)崗位大多要求「工科」學(xué)位有關(guān),而另一方面,Allen自己也表示,她當(dāng)上程序員,其實(shí)并不因「細(xì)心」,畢竟她自己在編程中也時(shí)常犯錯(cuò)。
相比之下,她對數(shù)學(xué)的興趣非常濃厚,著迷于演算過程的嚴(yán)密與精確。
從數(shù)學(xué)老師到程序員
在Allen身上,數(shù)學(xué)與編程的共通之處得以體現(xiàn)。
最初加入IBM時(shí),Allen的目的僅僅是還碩士助學(xué)貸款,然后當(dāng)數(shù)學(xué)老師(當(dāng)?shù)財(cái)?shù)學(xué)老師要求碩士學(xué)歷)。
因此,相較于開發(fā)人員,Allen后來的工作更側(cè)重于對系統(tǒng)結(jié)構(gòu)和算法的整體把握,也主導(dǎo)了PTRAN項(xiàng)目的完整開發(fā)。
她會(huì)閱讀每一塊并進(jìn)項(xiàng)目中的源碼,了解算法實(shí)現(xiàn)的結(jié)構(gòu),如同演算過程一般,看著一個(gè)項(xiàng)目慢慢地被開發(fā)出來。
事實(shí)上,Allen坦言,如今產(chǎn)品開發(fā)中的一些弊端一直存在,但向來難以解決。
其中一個(gè)問題就是,當(dāng)小組內(nèi)的成員有更好的想法時(shí),往往因?yàn)楫a(chǎn)品周期所限,而難以實(shí)現(xiàn)。
大概這也是如今程序員對產(chǎn)品開發(fā)有所抱怨的原因:短周期的運(yùn)轉(zhuǎn),某種程度上限制了程序員的編程自由。
與此同時(shí),Allen也談及了自己學(xué)習(xí)編程的方式。
學(xué)習(xí)編程的方式
Allen表示,對于初學(xué)者而言,掌握一門編程語言最快的方式依舊是看源代碼。
事實(shí)上,Allen最初入門Fortran的過程也并不愉快。
但隨著對這門語言的深入理解,她被激發(fā)出了極大的興趣,而深入理解最簡單也最直接的辦法,就是閱讀杰出的程序員所編寫的源碼。
對于她來說,最好的代碼不是能簡單又直接地解決問題,就是能通過顯而易見的程序結(jié)構(gòu)展現(xiàn)隱晦的問題。
通過研究一個(gè)同事編寫的語法分析器,她研發(fā)出了PTRAN(并行翻譯項(xiàng)目)的一部分功能,這部分功能在于它有很強(qiáng)的即時(shí)糾錯(cuò)能力。
當(dāng)被問及閱讀源碼是否是一件非常困難的事情時(shí),Allen認(rèn)同了這一觀點(diǎn),她表示這一過程會(huì)非常困難,但是必須去做。
過程中可以運(yùn)用很多技巧,例如列出提綱、或者事先了解一下代碼適用領(lǐng)域,但閱讀源碼是無法跳過的一件事情。
只有這樣,才能從最根本上掌握一門語言的用法,以及代碼核心的邏輯。
而這一習(xí)慣,一直到Allen進(jìn)入IBM管理層后也并未改變。
她熟識一些大學(xué)教授,對于他們所寫的代碼風(fēng)格有所了解,對于她而言,代碼結(jié)構(gòu)清晰的教授,所教的學(xué)生會(huì)更值得她考慮。
除此之外,對于編程或者某一方向有熱情的學(xué)生,也在她的考慮范圍之內(nèi)。
談及進(jìn)入管理層,Allen表示,C語言的出現(xiàn)也是原因之一。
「C語言的出現(xiàn)是一次倒退」
當(dāng)被問及對如今C、Java等高級語言的看法時(shí),Allen坦誠,自己在C語言出現(xiàn)后,就很少再有機(jī)會(huì)接觸編程了。
這對于她而言是不小的打擊。
在60年代,有很多諸如Fortran、COBOL、APL……等高級語言,這些語言所能完成的功能令人驚嘆。
但C語言誕生后,摧毀了推進(jìn)自動(dòng)優(yōu)化、自動(dòng)并行化以及高級語言和機(jī)器語言自動(dòng)映射技術(shù)的進(jìn)程。
此后,編譯器基本上不再在大學(xué)和學(xué)院中教授。
即使還有相關(guān)會(huì)議在繼續(xù)召開、或是研究相關(guān)算法,但這些工作所能彌補(bǔ)的都微乎其微。
在她看來,C、Java、C#、Python等語言對問題的求解方法「過度地指手畫腳」,是破壞計(jì)算機(jī)科學(xué)作為學(xué)術(shù)研究的元兇。
這些語言的出現(xiàn),使得許多更大膽的概念被局限于已有的思想中,但想要改變并非一日之談。
但是,即使這些語言帶來的代碼已經(jīng)有數(shù)百萬行甚至更多,Allen認(rèn)為,對于計(jì)算機(jī)科學(xué)的研究仍然需要嘗試,來繼續(xù)打破邊界。
-
COBOL
+關(guān)注
關(guān)注
0文章
6瀏覽量
9743 -
編譯器
+關(guān)注
關(guān)注
1文章
1634瀏覽量
49166 -
圖靈獎(jiǎng)
+關(guān)注
關(guān)注
0文章
5瀏覽量
2092
原文標(biāo)題:首位女性圖靈獎(jiǎng)獲得者離世,曾開發(fā)上古語言COBOL編譯器
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論