程式設計龍書的兩位作者憑藉編譯器技術獲得2020年圖靈獎
Alfred Aho和Jeffrey Ullman憑藉開創性的編譯器和演算法工作而獲得2020年圖靈獎。
週三,全球最大的計算機專業人士協會電腦科學協會表示,Aho博士和Ullman博士將因其在支援計算機程式語言的基本概念方面所做的工作而獲得今年的圖靈獎。Ullman和Aho之間的合作是開創編譯器技術的先河,該合作始於1967年在AT&T的傳奇研究中心貝爾實驗室。
在過去的五十年中,電腦科學家已經建立了越來越直觀的程式語言,使人們越來越容易地為桌上型電腦,膝上型電腦,智慧手機,汽車甚至超級計算機建立軟體。編譯器的工作是將這些語言指令轉換成處理器真正理解的機器程式碼,也就是將這些語言有效地轉換為計算機可以理解的一和零。Aho和Ullman幫助找出了將高階程式轉換為低階機器程式碼的編譯器技術。
Aho和Ullman還共同撰寫了2篇經典的CS書籍:綠色和紅色的“龍書”(1977年和1986年)。
駭客新聞網友評論:
龍書今年獲得了圖靈獎!想象一下,您在40年前所做的事情贏得了大獎。
十年後,我開始閱讀《龍書》,並意識到如何修改NFA正規表示式搜尋演算法,以解決我在數字取證和電子資料展示中遇到的問題。
我經常看到龍書被當作一個出氣筒的時候。似乎在某些時候,這本書與K&R一起成為了毫無根據的批評的目標。
《龍書》在解析上花費了太多時間,而在最佳化上卻花了不多的時間。公平地說,本書的第一版是1986年出版的。看起來第二版(2006年)增加了3章有關資料流分析和並行化的章節。
《龍之書》的第一版就表明了Aho和Ullman當時就領先了很多嗎?
從事正規表示式引擎工作的人不多。
我的碩士論文是為Haskell進行程式碼生成的,其中我花了相當長的時間來學習樹模式匹配,AST操作,暫存器分配等。透過理解程式碼生成的這些不同階段,可以大大提高速度。
在編譯器的上下文中,另一個原因是透過微最佳化詞法分析和解析沒有太多收穫。畢竟,一個程式碼只被編譯一次並執行多次。因此,您知道很多樂趣在哪裡。不幸的是,本科生通常會錯過編譯器課程中最複雜的部分。
過去,詞法分析是編譯器最熱的部分,因為它必須接觸原始碼的每個位元組,並且後續階段沒有太多資料需要處理。但是在1990年代,隨著最佳化編譯器成為主流技術,這種情況不再成立。
儘管我在大學期間真的很喜歡編譯器,但我從沒想過出於實際原因會構建一個編譯器。我最終將這些知識用於兩個非常有趣的專案。其中一個是Java中的模板引擎,用於將變數轉換為SQL查詢中的子句。另一個是PL / SQL的直譯器,該直譯器有助於提取過程和功能以對生產環境中的軟體包進行部分更新(使用者可以選擇將哪些過程傳送到生產環境,而不必更新整個軟體包)。
很奇怪,我記得這本書太笨拙,晦澀難懂,當我最初閱讀它時,沒有足夠的說明性文字來編寫編譯器課程……也許我記錯了。
我實際上認為前端(詞法分析,語法分析,語義分析)對大多數軟體工程師而言更為重要。
想象一下:在大多數職業中,您都不需要在後端工作。但是,如果您想解析某些內容(例如配置檔案),則Lexing和解析非常有價值。這類事情在日常工作中比在程式碼生成和最佳化中更常見。
建議大多數軟體工程師避免發明新的配置或其他DSL及其解析器/詞法分析器。這很容易導致難以除錯的程式和長期的技術債務。始終首先研究現有的和經過測試的解決方案(甚至是JSON!)。即使您不發明語言,也可以避免使用高階格式(例如無上下文語法)來編寫低階解析器/詞法分析器(請參閱Lark https://github.com/lark-parser/lark)。定義和維護語法要容易得多。
在“資料結構和演算法”是我們最先進的教科書的黑暗時代,我們將Aho,Hopcroft和Ullman的作者三人稱為“三個智者”。很高興看到Aho和Ullman得到了更多的重視。
真正的“弦論”大師
獎金沒有發給React創作者嗎?好吧,也許明年。
相關文章
- 圖靈技術圖書譯者須知圖靈
- 《我的第一本程式設計書》作者平山尚,訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- Jolt大獎獲獎作者Venkat Subramaniam訪談問題有獎徵集(圖靈訪談)圖靈
- 《程式碼本色》作者Daniel Shiffman:藝術家也程式設計(圖靈訪談)程式設計圖靈
- 圖靈成立八週年大型贈書活動——獲獎名單公佈圖靈
- 可程式設計的編譯器程式設計編譯
- 程式設計師翻譯技術類書籍的總結程式設計師
- 《CSS設計指南》作者Charles Wyke-Smith:技術的目的就是幫助使用者獲得成功(圖靈訪談)CSSMIT圖靈
- 圖靈八月書訊 ——技術圖書嘉年華圖靈
- 圖靈成立七週年——圖靈書與翻譯事圖靈
- 《Erlang程式設計(第2版)》作者Joe Armstrong訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- 圖靈設計書近期新書圖靈新書
- 譯後訪談《Scratch少兒趣味程式設計》作者阿部和廣(圖靈訪談)程式設計圖靈
- 如何獲得“圖靈訪談”贈送的紙質書和電子書圖靈
- (轉)陳寶權教授訪談圖靈獎獲得者Ivan Sutherland圖靈
- linux(ubuntu)下的64位編譯器編譯32位程式LinuxUbuntu編譯
- 分享“程式設計師人生指南”贏圖靈圖書!程式設計師圖靈
- 【已公佈獲獎】有獎書評活動:《京東技術解密》解密
- 好書妙評之《編譯器設計》編譯
- 《寫給大家看的設計書》作者Robin Williams:我永遠是一位教師(圖靈訪談)圖靈
- “龍書”作者Jeffery Ullman:相信你自己,自由地思考(圖靈訪談)圖靈
- 《Java程式設計師修煉之道》作者Ben Evans訪談問題有獎徵集(圖靈訪談)Java程式設計師圖靈
- [英]專訪《寫給大家看的設計書》作者Robin Williams(圖靈訪談)圖靈
- 再訪《Scratch少兒趣味程式設計》系列圖書作者阿部和廣、倉本大資訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- 跨語言程式設計的探索 | 龍蜥技術程式設計
- “CCF 科技成果獎”獲獎名單公佈,龍蜥榮獲技術發明一等獎
- 《Java 8函數語言程式設計》作者Richard Warburton訪談問題有獎徵集(圖靈訪談)Java函數程式設計圖靈
- [英]“龍書”作者Jeffery Ullman:相信你自己,自由地思考(圖靈訪談)圖靈
- 如何聽圖靈電子書,技術貼圖靈
- 2555. 兩個線段獲得的最多獎品
- 程式設計師如何選擇程式設計技術書?程式設計師
- 【民間圖靈獎】讀《圖靈的祕密》寫讀後感獲圖靈水杯圖靈
- Core Image程式設計指南翻譯七(獲得最佳效能)程式設計
- 再訪《Scratch少兒趣味程式設計》系列圖書作者阿部和廣、倉本大資(圖靈訪談)程式設計圖靈
- 有獎 |《Lua設計與實現》作者codedump訪談話題徵集(圖靈訪談)圖靈
- 《CSS設計指南》作者Charles Wyke-Smith訪談問題有獎徵集(圖靈訪談)CSSMIT圖靈
- 《黑客與設計》作者David Kadavy訪談問題有獎徵集(圖靈訪談)黑客圖靈
- 《我心愛的雷龍:一本寫給大人的恐龍書》作者Brian Switek訪談問題有獎徵集(圖靈訪談)圖靈