程式祖師爺Niklaus Wirth於1月1日逝世,享年89歲。
他是圖靈獎得主,被稱為有史以來最偉大的程式設計師之一,程式語言Pascal、Euler、Algol W、Modula、Modula-2、Oberon、Oberon-2、Oberon-07等均出自他手。
他也主導了Lilith與Oberon作業系統的設計與開發,為電腦科學領域寫了十幾本著作,其中就包括《演算法資料結構=程序》(1975年)、《編譯器構造》(1996年)。
與人們對電腦科學家的刻板印像不同,Niklaus Wirth在生活中展現了極具幽默感和個性。
他常開這樣一個玩笑:
在歐洲人們通常用正確的發音「Nick-louse Veert」來稱呼他,而在美國,人們總是將其混淆為「Nickel's Worth」。 (也就是說,歐洲人直呼其名,而美國人則稱他為價值)
#對於了解程式設計的人來說,他們都知道「按名調用」和「按值呼叫」是兩種不同的參數傳遞方式。這個雙關語被認為是有史以來最好的CS雙關語。
Eiffel語言的創造者Bertrand Meyer發文悼念,對他的貢獻表示敬意。我們應銘記他在電腦科學領域的傑出成就,並感慨他的離世對整個行業的損失。他的創造將繼續影響和推動軟體工程的發展,為我們提供了更好的程式設計工具和方法。讓我們懷念他,同時致敬
程式語言、程式方法論、軟體工程及硬體設計領域的泰斗,Niklaus Wirth,已於1月1日辭世。我們對這位領域先驅、親密同事、啟蒙導師和摯友的離去深感哀痛。
1934年,Niklaus Wirth出生於瑞士北部的一個小鎮。
少年時他與數學家Pascal一樣熱衷於動手實踐和思考,尤其喜歡組裝飛機模型。
之後,他先後獲得蘇黎世聯邦理工學院電機工程學士學位、加拿大拉瓦爾大學理學碩士學位、加州大學柏克萊分校電腦科學博士學位。博士導師是電腦設計先驅Harry Huskey。
早期,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又以Algol-W為基礎,創造了他最有影響力的作品-Pascal語言。
遵循他個人的美學,Pascal保留了Algol的程式碼結構、邏輯完整性和對遞歸的支持,但去除了複雜性的內容,因此簡單、靈活、能夠快速編譯高效程式碼。
Wirth後來寫道:
最關鍵的原則是納入那些被充分理解的功能,同時排除那些尚未嘗試或尚未實現的功能,尤其是對於開發者而言。
1971年,Pascal在蘇黎世聯邦理工學院教學中被採用,並迅速在全球其他大學獲得推廣。
為適用不同計算機,Wirth也設計了一款新型編譯器,既能為虛擬機編寫程式碼,又能產生可在虛擬機器上執行的程式碼。
用這個方法在新電腦上模擬虛擬機,大大簡化了編譯器的移植過程。隨著個人電腦的廣泛普及,Pascal非常適應個人電腦有限的記憶體和儲存空間,成為主流程式語言。
而當時的Borland公司推出了經濟實惠且運行迅速的Turbo Pascal編譯器,進一步鞏固了Pascal在上世紀八十年代作為重要的個人電腦高級程式語言的地位。
也造就了當年的Borland傳奇。
直到現在,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常開的那句玩笑,都是他具有獨特個人特質的證明。
……
Niklaus Wirth的一生都與程式設計如影隨形。
即使是在80歲生日慶祝研討會上,Niklaus Wirth也展示了他的新Oberon端口操作系統,運行在一個自製的CPU上,CPU安裝在一個隨機帶有USB外設的FPGA開發板上。
面對Niklaus Wirth的離世,網友們紛紛悼念:
我第一份有報酬的程式設計工作使用的是Pascal,之後又使用了Modula,這對我後續很多工作產生了深遠影響。
我從未有機會見到他,但他對我的職業生涯以及許多其他人都產生了重大影響。
以上是電腦科學巨擘Niklaus Wirth過世,程式設計界一代教父從Euler到Pascal隕落的詳細內容。更多資訊請關注PHP中文網其他相關文章!