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