在计算机科学的历史长河中,有这样一位人物,他的贡献不仅限于创造出一种全新的编程语言,更是深刻地影响了整个软件工程领域的发展方向。他就是瑞士计算机科学家——尼克劳斯·沃斯(Niklaus Wirth)。
-
award (2007): Programming Languages Achievement Award
奖项 (2007):编程语言成就奖 -
award (1987): Computer Pioneer Award
奖项 (1987):计算机先锋奖 -
award (1984): Turing Award
奖项 (1984):图灵奖 -
award (1983): IEEE Emanuel R. Piore Award
奖项 (1983):IEEE Emanuel R. Piore
尼克劳斯·埃米尔·沃斯(Niklaus Emil Wirth,1934 年 2 月 15 日 - 2024 年 1 月 1 日)是一位瑞士计算机科学家。他设计了多种编程语言,包括 Pascal,并开创了软件工程领域的几个经典主题。1984 年,他获得了图灵奖,该奖被公认为计算机科学领域的最高荣誉,“以表彰他开发了一系列创新的计算机语言”。
Born 出生 | Niklaus Emil Wirth 尼克劳斯·埃米尔·沃斯 15 February 1934 15 二月 1934 Winterthur, Switzerland |
---|---|
Died 逝世 | 1 January 2024 (aged 89) 2024 年 1 月 1 日(享年 89 岁) Zürich, Switzerland |
Citizenship 公民 | Switzerland 瑞士 |
Education 教育 |
|
Known for 闻名 | ALGOL W, Euler, Pascal, Modula, Modula-2, Oberon, Oberon-2, Oberon-07, Oberon System Algol O, Yuler, Pascal, Modula, Modula-2, Oberon, Oberon-2, Oberon-07, Oberon 系统 |
Awards 奖 |
|
Fields 领域 | Computer science 计算机科学 |
Institutions 机构 |
|
Thesis 论文 | A Generalization of Algol (1963) Algol 的概括(1963) |
初识沃斯:从苏黎世到斯坦福
1934年2月15日,尼克劳斯·沃斯出生于瑞士温特图尔的一个工程师家庭。从小他就对数学和技术产生了浓厚的兴趣。1959年,苏黎世瑞士联邦理工学院 (ETH Zürich) 电子工程理学学士学位 (B.S.) 学位。1960 年,他获得了魁北克省拉瓦尔大学的理学硕士学位 (M.Sc)。1963 年,获得了加州大学伯克利分校电气工程和计算机科学 (EECS) 博士学位,由计算机设计先驱 Harry Huskey 指导。
编程语言的革新者
从 1963 年到 1967 年,Wirth 在斯坦福大学和苏黎世大学担任计算机科学助理教授。然后在 1968 年,他成为苏黎世联邦理工学院的信息学教授,并在此开启了他辉煌的职业生涯。
1970年,发明了Pascal语言,这是一种面向教学的高级编程语言,它简洁易懂,特别适合于教学目的。Pascal的诞生,标志着计算机科学教育的一个重要转折点,许多后来流行的编程语言都受到了它的启发。
1978年,他又推出了Modula-2语言,这是一种更加强调模块化设计思想的语言。通过引入模块化编程的概念,Modula-2使得大型系统的开发变得更加高效有序。直到今天,许多现代编程语言的设计依然可以从Modula-2中找到影子。
Wirth 是编程语言 Euler (1965)、PL360 (1966)、ALGOL W (1966)、Pascal (1970)、Modula (1975)、Modula-2 (1978)、Oberon (1987)、Oberon-2 (1991) 和 Oberon-07 (2007) 的首席设计师。他还是操作系统 Medos-2(1983 年,用于 Lilith工作站)和 Oberon(1987 年,用于 Ceres 工作站)以及 Lola (1995) 数字硬件设计和模拟系统的设计和实施团队的主要成员。
系统化的思维:算法+数据结构=程序
除了编程语言之外,沃斯教授还提出了“算法+数据结构=程序”这一著名公式,强调了程序设计的本质在于逻辑思维能力的培养。这一理念不仅为软件开发提供了理论指导,也促进了计算机科学学科体系的完善和发展。
沃斯定律
1995 年,他推广了现在称为沃斯定律的谚语。在他 1995 年的论文《精益软件的呼吁》中,他将以下内容归功于 Martin Reiser,并将其解释为:"Software is getting slower more rapidly than hardware becomes faster",软件性能下降的速度比硬件提升的速度要快。
对教育的贡献
沃斯教授一生致力于计算机科学的教学与研究工作,他撰写了多本经典教材,如《Algorithms + Data Structures = Programs》和《Software Engineering Principles》等,这些书籍不仅成为了众多程序员学习的圣经,也对推动计算机科学教育的发展起到了重要作用。
Niklaus Wirth 尼克劳斯·沃斯生平大事记
2021年
50 years of Pascal. Commun. ACM 64(3): 39-41 (2021)
帕斯卡 50 周年。Commun. ACM 64(3):39-41 (2021)
2012年
Programming Languages - Past Achievements and Future Challenges. ACM-TURING 2012: 12:1
编程语言 - 过去的成就和未来的挑战。ACM-TURING 2012:12:1
2010年
Computer Science: A Historical Perspective and a Current Assessment. The Future of Software Engineering 2010: 151
计算机科学:历史视角和当前评估。软件工程的未来 2010:151
2008年
Grundlagen und Techniken des Compilerbaus (2. Aufl.). Oldenbourg 2008, ISBN 978-3-486-58581-0, pp. I-XI, 1-191
编译器构造的基础和技术(第 2 版)。奥尔登堡2008 年,ISBN 978-3-486-58581-0,第 I-XI 页,1-191 页
A Brief History of Software Engineering. IEEE Ann. Hist. Comput. 30(3): 32-39 (2008)
软件工程简史。IEEE Ann. Hist. Comput. 30(3):32-39 (2008)
2007年
Modula-2 and Oberon. HOPL 2007: 1-10
2006年
Good Ideas, through the Looking Glass. Computer 39(1): 28-39 (2006)
创意奇境。计算机 39(1):28-39 (2006)
2003年
Hardware/software co-design then and now. Inf. Process. Lett. 88(1-2): 83-87 (2003)
硬件/软件的过去和现在共同设计。Inf. Process. Lett. 88(1-2):83-87 (2003)
The Essence of Programming Languages. JMLC 2003: 1-11
编程语言的本质。JMLC 2003:1-11
2002年
Computing science education: the road not taken. ITiCSE 2002: 1-3
计算机科学教育:未走的路。ITiCSE 2002:1-3
Pascal and Its Successors. Software Pioneers 2002: 108-119
帕斯卡及其继任者。软件先驱 2002:108-119
The Programming Language Pascal (Reprint). Software Pioneers 2002: 121-148
编程语言 Pascal(重印)。软件先驱 2002:121-148
Program Development by Stepwise Refinement (Reprint). Software Pioneers 2002: 149-169
由 Stepwise Refinement 程序开发(重印)。软件先锋 2002:149-169
2001年
Embedded Systems and Real-Time Programming. EMSOFT 2001: 486-492
嵌入式系统和实时编程。EMSOFT 2001:486-492
2000年
From Programming Language Design to Computer Construction. The School of Niklaus Wirth 2000: 21-30
从编程语言设计到计算机构建。尼克劳斯·沃斯学院 2000:21-30
The Development of Procedural Programming Languages: Personal Contributions and Perspectives. JMLC 2000: 1-10
过程编程语言的发展:个人贡献和观点。JMLC 2000:1-10
1999年
Algorithmen und Datenstrukturen - Pascal-Version (5. Aufl.). Leitfäden der Informatik, Teubner 1999, ISBN 978-3-519-22250-7, pp. 1-320
1998年
Hardware Compilation: Translating Programs into Circuits. Computer 31(6): 25-31 (1998)
硬件编译:将程序转换为电路。计算机 31(6):25-31 (1998)
1996年
Grundlagen und Techniken des Compilerbaus. Addison-Wesley 1996, ISBN 978-3-89319-931-0, pp. I-IX, 1-195
编译器构造的基础知识和技术。艾迪生-卫斯理1996 年,ISBN 978-3-89319-931-0,第 I-IX 页,1-195 页
Compiler construction. International computer science series, Addison-Wesley 1996, ISBN 978-0-201-40353-4, pp. I-XI, 1-176
编译器构造。国际计算机科学系列,Addison-Wesley1996,ISBN 978-0-201-40353-4,页。I-XI, 1-176
Tasks versus Threads: An Alternative Multiprocessing Paradigm. Softw. Concepts Tools 17(1): 6-12 (1996)
任务与线程:另一种多处理范式。软件。概念工具 17(1):6-12 (1996)
The Language Lola, FPGAs and PLDs in Teaching Digital Circuit Design. Ershov Memorial Conference 1996: 2-20
数字电路设计教学中的语言 Lola、FPGA 和 PLD。1996 年埃尔绍夫纪念会议:2-20
1995年
Digital circuit design for computer science students - an introductory textbook. Springer 1995, ISBN 978-3-540-58577-0, pp. I-XIII, 1-204
计算机科学学生的数字电路设计 - 一本入门教科书。施普林格1995 年,ISBN 978-3-540-58577-0,第I-XIII、1-204
A Plea for Lean Software. Computer 28(2): 64-68 (1995)
精益软件的呼吁。计算机28(2):64-68 (1995)
1994年
Programmieren in Oberon - das neue Pascal. Addison-Wesley 1994, ISBN 978-3-89319-657-9, pp. I-XXI, 1-338
Gedanken zur Software-Exlosion. Inform. Spektrum 17(1): 5-10 (1994)
A Laboratory for a Digital Design Course Using FPGAs. FPL 1994: 385-396
使用 FPGA 的数字设计课程实验室。FPL 1994:385-396
1993年
Recollections about the Development of Pascal. HOPL Preprints 1993: 333-342
关于帕斯卡发展的回忆。HOPL 预印本 1993:333-342
1992年
Project Oberon - the design of an operating system and compiler. Addison-Wesley 1992, ISBN 978-0-201-54428-2, pp. I-XI, 1-548
Oberon 项目 - 操作系统和编译器的设计。Addison-Wesley1992 年,ISBN 978-0-201-54428-2,页。I-XI, 1-548
Programming in Oberon - steps beyond Pascal and Modula. ACM 1992, ISBN 978-0-201-56543-0, pp. I-XVI, 1-320
在 Oberon 中编程 - 超越 Pascal 和 Modula。ACM1992,ISBN 978-0-201-56543-0,页。I-XVI,1-320
1991年
Pascal user manual and report - ISO Pascal standard, 4th Edition. Springer 1991, ISBN 978-0-387-97649-5, pp. I-XVI, 1-266
Pascal 用户手册和报告 - ISO Pascal 标准,第 4 版。施普林格1991 年,ISBN 978-0-387-97649-5,第I-XVI,1-266
Differences between Oberon and Oberon-2. Struct. Program. 12(4): 175-178 (1991)
Oberon 和 Oberon-2 之间的区别。结构。程序。12(4):175-178 (1991)
The Programming Language Oberon-2. Struct. Program. 12(4): 179-196 (1991)
编程语言 Oberon-2。结构。程序12(4):179-196 (1991)
Reply to "Type-Extension Tests Can Be Performed In Constant Time". ACM Trans. Program. Lang. Syst. 13(4): 630 (1991)
回复 “Type-Extension Tests Can be Perform In Constant Time”Lang. Syst. 13(4):630 (1991)
1990年
MODULA-2 and object-oriented programming. Microprocess. Microsystems 14(3): 149-152 (1990)
MODULA-2 和面向对象编程。微过程。微系统14(3):149-152 (1990)
Ceres-Net: A Low-cost Computer Network. Softw. Pract. Exp. 20(1): 13-24 (1990)
Ceres-Net:一种低成本的计算机网络。软件。实践。实验20(1):13-24 (1990)
1989年
The Oberon System. Softw. Pract. Exp. 19(9): 857-893 (1989)
Oberon 系统。软件。实践。实验19(9):857-893 (1989)
Designing a System from Scratch. Struct. Program. 10(1): 10-18 (1989)
从头开始设计系统。结构。程序。10(1):10-18 (1989)
1988年
Programming in Modula-2, 4th Edition. Texts and Monographs in Computer Science, Springer 1988, ISBN 978-3-540-50150-3, pp. 1-182
Programming in Modula-2, 第 4 版。计算机科学中的文本和专著,施普林格1988 年,ISBN 978-3-540-50150-3,第 1-182 页
Oberon: A system for workstations. Microprocess. Microprogramming 24(1-5): 3-8 (1988)
Oberon:用于工作站的系统。微过程。微编程 24(1-5):3-8 (1988)
From Modula to Oberon. Softw. Pract. Exp. 18(7): 661-670 (1988)
从 Modula 到 Oberon。软件。实践。实验18(7):661-670 (1988)
The Programming Language Oberon. Softw. Pract. Exp. 18(7): 671-690 (1988)
编程语言 Oberon。软件。实践。实验18(7):671-690 (1988)
Type Extensions. ACM Trans. Program. Lang. Syst. 10(2): 204-214 (1988)
键入 Extensions。ACM Trans. Program. Lang. Syst. 10(2):204-214 (1988)
1987年
Extension of record types. ACM SIGCSE Bull. 19(2): 2-9 (1987)
记录类型的扩展。ACM SIGCSE 公牛。19(2):2-9 (1987)
Hardware Architectures for Programming Languages and Programming Languages for Hardware Architectures. ASPLOS 1987: 2-8
编程语言的硬件体系结构和硬件体系结构的编程语言。ASPLOS 1987:2-8
1986年
Microprocessor Architectures: A Comparison Based on Code Generation by Compiler. Commun. ACM 29(10): 978-990 (1986)
微处理器架构:基于编译器代码生成的比较。Commun。ACM 29(10):978-990 (1986)
1985年
Algorithms and data structures. Prentice Hall 1985, ISBN 978-0-13-022005-9, pp. 1-288
算法和数据结构。Prentice Hall1985 年,ISBN 978-0-13-022005-9,第 1-288 页
Pascal user manual and report: rev. for the ISO Pascal standard, 3rd Edition. Springer 1985, ISBN 0387960481, pp. I-XVI, 1-266
Pascal 用户手册和报告:ISO Pascal 标准修订版,第 3 版。施普林格1985 年,ISBN 0387960481,第 1 页。I-XVI,1-266
Programmieren in Modula-2. Texts and Monographs in Computer Science, Third Corrected Edition, Springer 1985, ISBN 3-540-13301-1, pp. 1-140
Programmieren in modula-2.计算机科学中的文本和专著,第三校正版,施普林格1985 年,ISBN 3-540-13301-1,第 1-140 页
From Programming Language Design to Computer Construction. Commun. ACM 28(2): 159-164 (1985)
从编程语言设计到计算机构建。Commun。ACM 28(2):159-164 (1985)
1983年
Programming in Modula-2, Second Corrected Edition. Texts and Monographs in Computer Science, Springer 1983, ISBN 978-3-642-96759-7, pp. 1-165
Programming in Modula-2, Second Corrected Edition(在 Modula-2 中编程,第二修正版)。计算机科学中的文本和专著,施普林格1983 年,ISBN 978-3-642-96759-7,第 1-165 页
Program Development by Stepwise Refinement (Reprint). Commun. ACM 26(1): 70-74 (1983)
由 Stepwise Refinement 程序开发(重印)。Commun。ACM 26(1):70-74 (1983 年)
1982年
Programming in Modula 2. Springer 1982, ISBN 3-540-11674-5
在 Modula 2 中编程。施普林格1982 年,ISBN 3-540-11674-5
1981年
LILITH: A personal computer for the software engineer. Advanced Course: Microcomputer System Design 1981: 349-397
LILITH:软件工程师的个人电脑。高级课程:微型计算机系统设计 1981:349-397
Lilith: A Personal Computer for the Software Engineer. ICSE 1981: 2-16
Lilith:软件工程师的个人电脑。国际科学学院 1981:2-16
Pascal-S: A Subset and its Implementation. Pascal - The Language and its Implementation 1981: 199-259
Pascal-S:子集及其实现。帕斯卡 - 语言及其实现 1981:199-259
The Programming Language Ada Reference Manual, Proposed Standard Document, United States Department of Defense. Lecture Notes in Computer Science 106, Springer 1981, ISBN 3-540-10693-6
编程语言 Ada 参考手册,拟议标准文件,美国国防部。计算机科学讲义 106,施普林格1981 年,ISBN 3-540-10693-6
1979年
The Module: A System Structuring Facility in High-Level Programming Languages. Language Design and Programming Methodology 1979: 1-24
模块:高级编程语言的系统结构工具。语言设计与编程方法论 1979:1-24
A Personal Computer Based on a High-Level Language. Language Design and Programming Methodology 1979: 191-194
基于高级语言的个人计算机。语言设计与编程方法 1979:191-194
A Personal Computer Designed for Use with a High-Level Language. Microcomputing 1979: 115-134
设计用于高级语言的个人计算机。微计算 1979:115-134
1978年
Interlude on signals and semphores revisited. author's response. Commun. ACM 21(7): 592 (1978)
重新审视信号和 semphores 的插曲。作者的回应。Commun。ACM 21(7):592 (1978)
1977年
Compilerbau - Eine Einführung. Teubner 1977, ISBN 3-519-02338-5
编译器构造 - 简介。Teubner1977 年,ISBN 3-519-02338-5
Toward a Discipline of Real-Time Programming. Commun. ACM 20(8): 577-583 (1977)
迈向实时编程学科。公社。ACM 20(8):577-583 (1977)
What Can We Do about the Unnecessary Diversity of Notation for Syntactic Definitions? Commun. ACM 20(11): 822-823 (1977)
我们能做些什么来应对句法定义中不必要的符号多样性呢?公社。ACM 20(11):822-823 (1977)
Modula: a Language for Modular Multiprogramming. Softw. Pract. Exp. 7(1): 3-35 (1977)
Modula:一种用于模块化多程序编程的语言。软件。实践。实验7(1):3-35 (1977)
The Use of Modula. Softw. Pract. Exp. 7(1): 37-65 (1977)
Modula 的使用软件。实践。实验7(1):37-65 (1977 年)
Design and Implementation of Modula. Softw. Pract. Exp. 7(1): 67-84 (1977)
Modula 的设计和实施。软件。实践。实验7(1):67-84 (1977)
1976年
Comment on a note on dynamic arrays in PASCAL. ACM SIGPLAN Notices 11(1): 37-38 (1976)
对 PASCAL 中动态数组的注释进行注释。ACM SIGPLAN 通知 11(1):37-38 (1976)
1975年
Pascal User Manual and Report, Second Edition. Springer 1975, ISBN 3-540-90144-2
Pascal 用户手册和报告,第二版。施普林格1975 年,ISBN 3-540-90144-2
Pascal User Manual and Report, Second Edition. Lecture Notes in Computer Science 18, Springer 1975, ISBN 3-540-07167-9
Pascal 用户手册和报告,第二版。计算机科学讲义 18,施普林格1975 年,ISBN 3-540-07167-9
An Assessment of the Programming Language Pascal. IEEE Trans. Software Eng. 1(2): 192-198 (1975)
编程语言 Pascal 的评估。IEEE Trans. Software Eng. 1(2):192-198 (1975)
An assessment of the programming language PASCAL. Reliable Software 1975: 23-30
编程语言 PASCAL 的评估。可靠的软件 1975:23-30
1974年
On the Composition of Well-Structured Programs. ACM Comput. Surv. 6(4): 247-259 (1974)
关于结构良好的程序的组成。ACM 计算。Surv.6(4):247-259 (1974 年)
Systemprogramming aus der Sicht der Universität. Programming Methodology 1974: 192-202
On the Design of Programming Languages. IFIP Congress 1974: 386-393
关于编程语言的设计。IFIP 大会 1974:386-393
1973年
An Axiomatic Definition of the Programming Language PASCAL. Acta Informatica 2: 335-355 (1973)
编程语言 PASCAL 的公理定义。信息学报 2:335-355 (1973)
1971年
The Programming Language Pascal. Acta Informatica 1: 35-63 (1971)
编程语言 Pascal.信息学报 1:35-63 (1971)
Program Development by Stepwise Refinement. Commun. ACM 14(4): 221-227 (1971)
通过 Stepwise Refine 进行程序开发。Commun。ACM 14(4):221-227 (1971)
The Design of a PASCAL Compiler. Softw. Pract. Exp. 1(4): 309-333 (1971)
PASCAL 编译器的设计。软件。实践。实验1(4):309-333 (1971)
1969年
On multiprogramming, machine coding, and computer organization. Commun. ACM 12(9): 489-498 (1969)
关于多重编程、机器编码和计算机组织。Commun。ACM 12(9):489-498 (1969)
1968年
PL360, a Programming Language for the 360 Computers. J. ACM 15(1): 37-74 (1968)
PL360,一种用于 360 计算机的编程语言。J. ACM 15(1):37-74 (1968)
Corrigendum: "PL360, a Programming Language for the 360 Computers". J. ACM 15(3): 489 (1968)
勘误表:“PL360,一种用于 360 度计算机的编程语言”。J. ACM 15(3):489 (1968)
1966年
EULER: a generalization of ALGOL and it formal definition: Part 1. Commun. ACM 9(1): 13-25 (1966)
EULER:ALGOL 的推广及其正式定义:第 1 部分。Commun。ACM 9(1):13-25 (1966 年)
EULER: a generalization of ALGOL, and its formal definition: Part II. Commun. ACM 9(2): 89-99 (1966)
EULER:ALGOL 的推广及其正式定义:第二部分。Commun。ACM 9(2):89-99 (1966)
A note on "Program structures for parallel processing". Commun. ACM 9(5): 320-321 (1966)
关于 “Program structures for parallel processing” 的说明。Commun。ACM 9(5):320-321 (1966)
A contribution to the development of ALGOL. Commun. ACM 9(6): 413-432 (1966)
对 ALGOL 的发展做出贡献。Commun。ACM 9(6):413-432 (1966)
1965年
Algorithm 249: outreal N [15]. Commun. ACM 8(2): 104 (1965)
算法 249:outreal N [15]。Commun。ACM 8(2):104 (1965)
Automatic grading programs. Commun. ACM 8(5): 275-278 (1965)
自动评分程序。Commun。ACM8(5):275-278 (1965)
Algorithm 265: find precedence functions [L2]. Commun. ACM 8(10): 604-605 (1965)
算法 265:查找优先函数 [L2]。Commun。ACM 8(10):604-605 (1965)
1964年
Certification of algorithm 146: Multiple integration. Commun. ACM 7(5): 296 (1964)
算法 146 认证:多重集成。Commun。ACM 7(5):296 (1964)
1963年
A syntactic description of BC NELIAC. Commun. ACM 6(7): 367-375 (1963)
BC NELIAC 的句法描述。Commun。ACM 6(7):367-375 (1963)
A generalization of ALGOL. Commun. ACM 6(9): 547-554 (1963)
ALGOL 的推广。Commun. ACM 6(9):547-554 (1963)
参考来源:
尼克劳斯·沃斯 - 维基百科,自由的百科全书 --- Niklaus Wirth - Wikipedia
https://dblp.org/pid/w/NiklausWirth.html#