天天看點

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

作者:量子位

西風 發自 凹非寺

量子位 | 公衆号 QbitAI

程式設計祖師爺Niklaus Wirth于1月1日逝世,享年89歲。

他是圖靈獎得主,被稱為有史以來最偉大的程式員之一,程式設計語言Pascal、Euler、Algol W、Modula、Modula-2、Oberon、Oberon-2、Oberon-07等均出自他手。

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

他還主導了Lilith和Oberon作業系統的設計與開發,為計算機科學領域寫下了十幾本著作,其中就包括《算法+資料結構=程式》(1975年)、《編譯器構造》(1996年)。

與人們對計算機科學家的刻闆印象不同,Niklaus Wirth生活中極具幽默感和個性。

他常開這樣一個玩笑:

在歐洲人們通常用正确的發音“Nick-louse Veert”來稱呼他,而在美國,人們總是将其混淆為“Nickel’s Worth”。(也就是說,歐洲人直呼其名,而美國人則稱他為價值)

懂程式設計的人都知道,“按名調用”和“按值調用”是兩種不同的參數傳遞方式,這也被大家公認為是的“有史以來最好的CS雙關語”。

Eiffel語言創造者Bertrand Meyer發文悼念:

程式設計語言、程式設計方法論、軟體工程及硬體設計領域的泰鬥,Niklaus Wirth,已于1月1日辭世。我們對這位領域先驅、親密同僚、啟蒙導師和摯友的離去深感哀痛。
圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

程式設計界一代傳奇

1934年,Niklaus Wirth出生于瑞士北部的一個小鎮。

少年時他與數學家Pascal一樣熱衷于動手實踐和思考,尤其喜歡組裝飛機模型。

之後,他先後獲得蘇黎世聯邦理工學院電氣工程學士學位、加拿大拉瓦爾大學理學碩士學位、加州大學伯克利分校計算機科學博士學位。博士導師是計算機設計先驅Harry Huskey。

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

早期,Wirth因建立兩種語言在計算機科學領域聲名鵲起:Euler、PL360。

Euler是基于他的博士論文工作而開發的通用程式設計語言,引入了非數值資料類型和運算符優先級等新的概念,被認為是在形式化程式設計語言設計方面的一次重要嘗試。

而PL360系統程式設計語言,專為IBM System/360系列計算機而設計,采用了特定的解析方法,提供了對硬體的直接控制能力,使得程式設計更加高效,也更容易編寫和維護。

這兩種語言都深受早期程式設計語言Algol的影響。

Niklaus Wirth是Algol項目團隊的精英成員,該團隊定義和建立了一系列語言标準,例如FORTRAN等首批進階語言。

上世紀五十年代末,在計算機科學家還沒有專門的學術部門和正常會議時,Algol項目為這個新興學科奠定了重要基礎。通過Algol,Wirth與其他未來的圖靈獎得主C.A.R.(Tony)Hoare、Edsger Dijkstra和Peter Naur等展開了深度合作。

Algol 60是Algol項目中最重要的成果之一,其中引入了遞歸函數、結構化代碼塊和局部變量等概念。

1966年,Wirth提議要把Algol下一種語言設計成受Euler語言影響的Algol 60擴充和改進版,但遭到團隊投票反對,最終團隊選擇了複雜度很高的Algol 68提案。

1968年,Niklaus Wirth從團隊辭職,與Tony Hoare合作,将被拒絕的提案轉變為一種非官方的Algol 版本,即Algol-W。

同年,Niklaus Wirth回到了蘇黎世聯邦理工學院任教,一幹就幹到了1999年退休。

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

這當中,Niklaus Wirth又以Algol-W為基礎,創造了他最有影響力的作品——Pascal語言。

遵循他個人的審美,Pascal保留了Algol的代碼結構、邏輯完整性和對遞歸的支援,但去除了複雜性的内容,是以簡單、靈活、能夠快速編譯高效代碼。

Wirth後來寫道:

最關鍵的原則是納入那些被充分了解的功能,同時排除那些尚未嘗試或尚未實作的功能,尤其是對于開發者而言。

1971年,Pascal在蘇黎世聯邦理工學院教學中得到采用,并迅速在全球其他大學獲得推廣。

為适用不同計算機,Wirth還設計了一款新型編譯器,既能為虛拟機編寫代碼,又能生成可在虛拟機上運作的代碼。

用這種方法在新計算機上模拟虛拟機,大大簡化了編譯器的移植過程。随着個人計算機的廣泛普及,Pascal非常适應個人計算機有限的記憶體和存儲空間,成為主流程式設計語言。

而當時的Borland公司推出了經濟實惠且運作迅速的Turbo Pascal編譯器,進一步鞏固了Pascal在上世紀八十年代作為重要的個人計算機進階程式設計語言的地位。

也造就了當年的Borland傳奇。

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

直到現在,Pascal被認為是C語言問世以前最好的程式設計語言之一,國際資訊學奧林匹克競賽(IOI)還把Pascal語言作為三種程式設計語言之一。

從Euler到Pascal,可以窺見Wirth的一個習慣,他的學術成果或程式設計語言經常以著名科學家命名,Euler就是為了紀念瑞士著名數學家Euler而命名的,Pascal則是為紀念法國數學家Blaise Pascal而命名。

之後,Wirth與Algol項目的其他資深人士如Edsger Dijksta,對程式設計方法和形式化方法感興趣。他參加了IFIP程式設計方法工作組,提出了逐漸完善代碼的想法,作為對他們提出的各種“結構化程式設計”願景的補充。

之後他又擴充了Pascal,提出了Modula、Modula-2、Oberon等,還主導了Lilith和Oberon作業系統的設計與開發。

除此外,Wirth在其他方面也有許多貢獻,如擴充了著名的巴科斯範式,發明了文法圖,還寫下了《系統程式設計導論》、《算法+資料結構=程式》等衆多計算機科學領域的經典著作。

1984年,Niklaus Wirth因“開發了一系列創新的計算機語言”,獲得計算機科學最高榮譽圖靈獎。

在獲獎演講中,Niklaus Wirth講道人們必須“及早區分什麼是本質的,什麼是短暫的”,并確定“短暫的事物永遠不會侵犯到核心設施的系統化、結構化設計”。

每一個項目首先都是一個學習實驗。通過發明才能學得最好。隻有親自進行開發項目,我才能對固有的困難有足夠的了解,對内在的細節有足夠的信心,能夠掌握它們。

除了圖靈獎之外,維爾特還獲得了IEEE計算機先驅獎(1988年)、IBM歐洲科學技術獎(1988年)。他還被選為瑞士工程院院士(1992年)、美國國家工程院外籍院士(1994年)。

極具幽默感和個性

天才計算機科學家或是軟體工程師常常被視為是與世隔絕的“外來者”,Niklaus Wirth卻不符合大衆的這種刻闆印象,他有自己的個性和幽默感。

據網友分享,1968年,Niklaus Wirth好友、計算機科學家Edsger W. Dijkstra向《ACM通訊》(Communications of the ACM)送出了一篇論文,原标題是“A case against the goto statement”(反對goto語句的一個案例)。

為加快發表速度,出版編輯将其改為了“給編輯的信”的形式,随後Niklaus Wirth還為其更改了标題為“The goto statement considered harmful”(認為goto語句有害)。

随後這個标題被廣泛引用,并啟發了許多類似的文章标題,如“X considered harmful”,甚至出現了一篇名為“Dijkstra considered harmful”的文章。

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

包括開頭提到的Niklaus Wirth常開的那句玩笑,都是他具有獨特個人特質的證明。

……

Niklaus Wirth的一生都與程式設計如影随形。

即便是在80歲生日慶祝研讨會上,Niklaus Wirth還展示了他的新Oberon端口作業系統,運作在一個自制的CPU上,CPU安裝在一個随機帶有USB外設的FPGA開發闆上。

面對Niklaus Wirth的離世,網友們紛紛悼念:

我第一份有報酬的程式設計工作使用的是Pascal,之後又使用了Modula,這對我後續很多工作産生了深遠影響。

我從未有機會見到他,但他對我的職業生涯以及許多其他人都産生了重大影響。

圖靈獎得主Niklaus Wirth逝世,從Euler到Pascal,程式設計巨星隕落

R.I.P

參考連結:

[1]https://twitter.com/Bertrand_Meyer/status/1742613897675178347

[2]https://news.ycombinator.com/item?id=38858012

[3]https://amturing.acm.org/award_winners/wirth_1025774.cfm

— 完 —

量子位 QbitAI · 頭條号簽約

關注我們,第一時間獲知前沿科技動态

繼續閱讀