尼克勞斯威茨

Nicklaus Wirth(尼克勞斯威茨),1934年出生於瑞士,1963年在加州大學伯克利分校取得博士學位。

基本介紹

  • 中文名:尼克勞斯威茨
  • 外文名:Nicklaus Wirth
  • 出生日期:1934
  • 出生地:瑞士
簡介
Nicklaus Wirth(尼克勞斯威茨),1934年出生於瑞士,1963年在加州大學伯克利分校取得博士學位。取得博士學位後直接被以高門檻著稱的史丹福大學聘到剛成立的計算機科學 系工作。
在史丹福大學成功的開發出Algol W以及PL360後,愛國心極強的Nicklaus Wirth於1967年回到祖國瑞士,第二年在他的母校蘇黎世工學院他創建與實現了Pascal語言——當時世界上最受歡迎的語言之一。
圖片圖片
憑藉一句話獲得圖靈獎的Pascal之父——Nicklaus Wirth  尼克勞斯威茨
讓他獲得圖靈獎的這句話就是他提出的著名公式:  “算法+數據結構=程式”。
這個公式對計算機科學的影響程度足以類似物理學中愛因斯坦的“E=MC^2”——一個公式展示出了程式的本質。
後來他的學生Philipe Kahn畢業後和Anders Hejlsberg(Delphi之父)創辦了Borland公司靠Turbo Pascal起家,很快成為了將Borland發展成為全球最大的開發工作廠商,這一切都不得不說要歸工於PASCAL語言的魅力。PASCAL已經影響 了整整幾代的程式設計師,Nicklaus Wirth的思想還將會繼續指引現在和以後的程式設計師前進的方向。
PASCAL之父及結構化程式設計的首創者  ----凡是學過一點計算機的人大概都知道“算法+數據結構=程式”這一著名公式。提出這一公式並以此作為其一本專著書名的瑞士計算機科學家尼克勞斯·威茨(Niklaus Wirth)於1984 年獲得了圖靈獎。這是瑞士學者中唯一獲此殊榮的人。
----威茨1934年2月15日生於瑞士北部離蘇黎世不遠的溫特圖爾(Winterthur),其父瓦爾特是一位地理學教授。威茨小時就喜歡動手動腦, 他的最大愛好就是組裝飛機模型。中學畢業以後,威茨進入在歐洲甚至全世界都很有名的蘇黎世工學院(ETH),1958年取得學士學位。之後他到加拿大的萊 維大學深造(Laval是和加拿大名城魁北克隔聖勞倫斯河相望的一座城市),於1960年取得碩士學位。之後他又一次遷移到美國加州,進入加州大學伯克利 分校,於1963年獲得博士學位。
----學成以後,威茨受聘到史丹福大學剛剛成立的計算機科學系工作。著名的史丹福大學門檻極高,怎么會看中這個來自歐洲小國的毛頭小伙子呢?原來在50 年代末、60年代初,威茨的計算機經驗和成就相當顯赫:在蘇黎世工學院時,瑞士的計算機先驅斯帕塞(A.P.Speiser,他曾經出任IFIP的主席) 曾經給威茨上過有關計算機的課程,也曾經用過由斯帕塞開發的計算機ERMETH;在萊維大學時,威茨學了數值分析,上過AlvacⅢE計算機;在伯克利 時,威茨先是有一台Bendix G-15計算機可用,後來又參加了為IBM 704開發NELIAC語言編譯器的科研小組(NELIAC是一個類似於Algol 58的語言)。威茨在撰寫博士論文時,Algol 60報告已經發表。Algol 60是第一個清晰定義的語言,其語法是用嚴格公式化的方法說明的。但當時已有一些學者認識到,清晰的規格說明對於可靠而有效的實現是必需的,但還不夠。 Algol 60報告中還有一些缺陷和不足。威茨在和Algol的設計者之一馮·維京格藤(Andrian van Wijngaarden)多次接觸和討論以後,決定對Algol 60做進一步改進,並以此為自己的博士論文課題。這就誕生了由威茨所設計的第一個語言Euler。Euler雖然在實用性上考慮並不很周到,但在學術上卻 非常優美,為編譯器的系統設計創造了一個很好的基礎。
----正是由於上述經歷和成果,史丹福大學看中了威茨。與此同時,IFIP負責Algol語言完善與擴充的工作小組也看中了威茨,吸收他參加工作。當 時,小組中有兩派,一派勁頭十足地要設計一個新語言,以便樹起一個新的里程碑;另一派則覺得時間太緊,主張對Algol 60進行適當擴充。威茨參加進去以後,自稱同時屬於這兩派,並提交了一份建議書。這份建議書經過霍爾(Tony Hoare)等人的修改、完善以後獲得通過,這就是Algol W(W是威茨名字的首字母)。第二年,也即1966年,Algol W在史丹福大學的第一台IBM 360上成功實現並正式套用。這中間還有一個小插曲:IBM 360當時只提供彙編語言和FORTRAN語言,但威茨和他的學生都覺得這兩者並不適宜於作為設計編譯器的工具。為此,威茨決定定義另一種語言來描寫 Algol W的編譯器。威茨用了兩周時間寫出這個語言的定義,然後用了4個月的時間在Burroughs公司的Bu5000計算機上完成了交叉編譯程式,而威茨的一 個學生則把這個交叉編譯程式移植到IBM 360上去。這些額外的工作極大地加快了Algol W編譯器的開發,同時催生了一個新的語言PL360。PL360 雖然是作為輔助工具而開發的,但卻在許多地方獲得套用。
----Algol W及PL360的成功奠定了威茨作為程式設計語言專家的地位,一舉成名。但威茨是一個愛國心極強的人,成名後的他拒絕了史丹福大學的挽留,於1967年回 到祖國,先在蘇黎世大學任職,但第二年就回到他的母校蘇黎世工學院。在這裡,他首先設計與實現了PASCAL語言,這是在CDC6000上開發成功的。說 來有趣,威茨開發PASCAL的初衷是為了有一個適合於教學的語言,並沒有想到商業套用。但PASCAL一經推出,由於它的簡潔明了,更由於它特別適合於 由微處理器組成的計算機系統,竟然廣泛地流傳開來。在C語言問世以前,PASCAL是風靡世界、最受歡迎的語言之一。單是威茨的一個學生菲力浦·凱恩 (Phillipe Kahn),從ETH畢業以後,到美國加州辦了一個軟體公司,就賣出了100多萬個PASCAL拷貝,大獲成功。
PASCAL之所以成功和受到歡迎,主要 是因為它具有以下特點:
----1.提供了豐富的數據類型和構造數據的方法。除一般的整型、實型、布爾型數據外,PASCAL還增加了字元型、子域類型、記錄結構類型、檔案類型、集合類型和指示字類型,為程式設計師增加了極大的方便,也為程式設計提供了極大的靈活性。
----2.既保留了GO TO語句,同時又增加了大量的控制結構,如if-then-else語句、case語句、while語句、repeat語句、for語句,還允許複合語句和處理記錄變數的分量使用with語句這種縮寫形式。
----PASCAL的許多成功特點後來被C、Ada等語言所繼承和發展。因此,PASCAL在程式設計語言的發展史上具有承上啟下的重要里程碑意義。
----1971年,威茨基於其開發程式設計語言和編程的實踐經驗,在4月份的《Communications of ACM》上發表了“通過逐步求精方式開發程式” (“Program Development by Stepwise Refinement”)的論文,首次提出了“結構化程式設計” (Structured Programming)的概念。這個概念的重點是 :不要求一步就編製成可執行的程式,而是分若干步進行,逐步求精。第一步編出的程式抽象程度最高,第二步編出的程式抽象程度有所降低,……,最後一步編出 的程式即為可執行的程式。用這種方法編程,似乎複雜,實際上優點很多,可使程式易讀、易寫、易調試、易維護,也易於保證程式的正確性及驗證其正確性。威茨 提出的這種結構化程式設計方法又稱為“自頂向下”或“逐步求精”法,在程式設計領域引發了一場革命,成為程式開發的一個標準方法,尤其是在後來發展起來的 軟體工程中獲得廣泛套用。有人評價說威茨的結構化程式設計概念“完全改變了人們對程式設計的思維方式”,是一點也不誇張的。1983年1月,ACM在紀念 《Communications of ACM》創刊25周年時,從其1/4個世紀發表的大量論文中評選出有 “里程碑式意義的研究論文”25篇,每年1篇,威茨的這篇論文就是其中之一。
----PASCAL的成功也罷,結構化程式設計思想的巨大影響也罷,都沒有停止威茨繼續創造性的研究與開發工作。70年代中期,為適應並發程式設計的需 要,威茨又成功開發了一個獲得廣泛套用的語言Modula。(下轉第B6版)(上接第B5 版)Modula除了提供並發程式設計功能之外,另一個重要特徵就是引進了模組概念(這也是這個語言命名為Modula的原因)。此外,它還引進了“進 程”(Process)這一和並發程式相聯繫而產生的重要概念。Modula語言特別適合於書寫系統程式。但是,這個語言的第二個版本Modula-2卻 具有比Modula更加重大得多的意義。這是1976年,威茨再次赴美國,到Xerox公司的Palo Alto研究中心參與Alto計算機的設計與開發工作。我們以前介紹過, Alto計算機是世界上第一個具有圖形用戶界面的個人計算機系統(可惜Xerox公司沒有把它商品化,而由Apple公司的人學去了它的技術推出了 Macintosh)。威茨回到瑞士以後,參考Alto的經驗,設計、開發Lilith個人計算機系統。為了和Lilith的體系結構相配合,威茨決定在 Modula的基礎上開發Modula-2,作為整個系統的開發語言。Modula-2與 Modula相比,語法更加簡潔,更加強調界面設計,模組可以重用。它共有3個編譯單元,即程式模組,定義模組和實現模組,既提高了可讀性,又有助於分別 編譯。Modula-2在優美性(elegance)和簡潔性(simplicity)方面都比Modula更加提高了一步。Lilith的作業系統、圖 形軟體包、資料庫系統、網路協定套件、檔案伺服器等基本系統和大量套用模組都是用Modula-2開發的。在Lilith項目中,威茨堅持將計算機體系結 構、語言、操作環境三者統一起來,進行集成化、一體化設計,這一成功經驗是具有革命性的創舉,從而使這個項目在計算機科學史上占有很重要的地位。
----除了程式設計語言本身以外,在其他方面威茨也有許多創造。為了定義和描述PASCAL和Modula,威茨對著名的“巴科斯-諾爾範式”BNF進 行了擴充,成為EBNF(Extended BNF)。我們目前所看到的許多語言的BNF實際上是EBNF,不過人們往往忽略掉這個“E”字。和BNF一起出現的,還常常有一些看上去像鐵路圖那樣的 圖形,這叫“語法圖”(syntax chart或syntax diagram)或乾脆就叫“鐵路圖”(railroad diagram),這也是由威茨所設計與發明的,這種圖形標記法的描述能力等價於BNF,但當然更易於閱讀與理解。
----近年來威茨致力於“Oberon計畫”(Oberon是希臘神話中的仙境之王和女神Titania的丈夫),威茨的目標是要使Oberon語言超 越Pascal和Modula,使設計出的作業系統和編譯器功能更加強勁。1992年他寫了兩本書向讀者推介Oberon計畫(見後),可見其對這個計畫 的重視。
----威茨的學術著作很多,主要有如下幾種,其中一些是由法文譯成英文的:
----《系統程式設計導論》(《Systematic Programming:An Introduction》,Prentice-Hall,1973。其法文版已出至第5版) ;
----《算法 數據結構=程式》(《Algorithms Data Structures=Programs》,Prentice-Hall,1976) ;
----《算法和數據結構》(《Algorithms and Data Structures》,Prentice-Hall,1986) ;
----《Modula-2程式設計》(《Programming in Modula-2》, Springer,1988,第4版) ;
----《PASCAL用戶手冊和報告:ISO PASCAL標準》 (《PASCAL User Manual and Report:ISO PASCAL Standard》,Springer,1991) ;
----《Oberon計畫:作業系統和編譯器的設計》(《Project Oberon:the Design of an Operating System and Compiler》,ACM Pr.,1992) ;
----《Oberon程式設計:超越Pascal和Modula》(《Programming in Oberon:Steps beyond Pascal and Modula》,ACM Pr.,1922) ;
----《數字電路設計教材》(《Digital Circuit Design for Computer Science Students:An Introductory Textbook》,Springer,1995)。
----ACM除了在1984年授予威茨圖靈獎外,1987年又授予他另一項獎:計算機科學教育傑出貢獻獎。另一個重要的國際學術組織IEEE也授予過威 茨兩個獎項:1983年的Emanual Piore獎和1988年的計算機先驅獎(Computer Pioneer Award)。1992年,加州大學伯克利分校命名威茨為“傑出校友”。
----威茨是在1984年10月於舊金山舉行的ACM年會上接受圖靈獎的。威茨發表了題為“從程式設計語言設計到計算機建造”(From Programming Language Design to Computer Construction)的圖靈獎演說,回顧了自己在計算機領域所做的工作。演說全文刊載於《Communications of ACM》1985年2月,159-164頁,也可見《ACM 圖靈獎演說集》(《ACM Turing Award Lectures-The First 20 rears:1966-1985》,ACM Pr.),179- 196頁。
----威茨現仍在蘇黎世工學院任教,他的電子信箱為: [email protected]

相關詞條

熱門詞條

聯絡我們