Niklaus Emil Wirth (IPA:/vɛrt/) (15 February 1934 – 1 January 2024) was a Swisscomputer scientist. He designed severalprogramming languages, includingPascal, and pioneered several classic topics in software engineering. In 1984, he won theTuring Award, generally recognized as the highest distinction incomputer science, "for developing a sequence of innovative computer languages".[4]
In 2004, he was made a Fellow of theComputer History Museum "for seminal work in programming languages and algorithms, including Euler, Algol-W, Pascal, Modula, and Oberon."[10]
In 1995, he popularized the adage now namedWirth's law. In his 1995 paper "A Plea for Lean Software" he attributed the following to Martin Reiser phrasing it as, "Software is getting slower more rapidly than hardware becomes faster."[21]
The April 1971Communications of the ACM article "Program Development by Stepwise Refinement",[22][23] concerning the teaching of programming, is considered to be a classic text in software engineering.[24] The paper is considered to be the earliest work to formally outline thetop-down method for designing programs.[25][26] The article was discussed byFred Brooks in his influential bookThe Mythical Man-Month and was described as "seminal" in the ACM's brief biography of Wirth published in connection to his Turing Award.[27][28]
The 1973 textbook,Systematic Programming: An Introduction,[29] was described as a quality source for mathematicians desiring to understand the nature of programming in a 1974 review.[30] The cover flap, of the 1973 edition, stated the book "... is tailored to the needs of people who view a course on systematic construction of algorithms as part of their basic mathematical training, rather than to the immediate needs of those who wish to be able to occasionally encode a problem and hand it over to their computer for instant solution."[31] Described in the review as a challenging text to work through, it was nevertheless recommended as useful reading for those interested in numerical mathematics.[32]
In 1974,The Pascal User Manual and Report,[33] jointly written[i] withKathleen Jensen,[36] served as the basis of many language implementation efforts in the 1970s (BSD Pascal[37]), and 1980s in the United States and across Europe.[38][39]
In 1975, he wrote the bookAlgorithms + Data Structures = Programs, which gained wide recognition.[40] Major revisions of this book with the new titleAlgorithms & Data Structures were published in 1986 and 2004.[41][42] The examples in the first edition were written in Pascal. These were replaced in the later editions with examples written in Modula-2 and Oberon, respectively.[41][42]
In 1992, Wirth andJürg Gutknecht published the full documentation of the Oberon operating system.[43] A second book, with Martin Reiser, was intended as a programming guide.[44]
^First chapter (Documentation) is a joint work, which according to Jensen has been edited by Wirth.[34] Second chapter is by Wirth (also published separately[35]).
^Gosch, John (25 October 1979). Weber, Samuel (ed.)."Wirth works to better Pascal"(PDF). Profile.Electronics. Paul W. Reiss. p. 157.ISSN0013-5070.Archived(PDF) from the original on 20 May 2024. Retrieved14 August 2024.[his family] includes two girls and a boy
^Wirth, Niklaus (3 May 2016).The Programming Language Oberon-07(PDF).ETH Zurich, Department of Computer Science (Report).Archived(PDF) from the original on 21 January 2021. Retrieved17 January 2021.
^Eberle, Hans (2000). "Designing a Cluster Network". In Böszörményi, László (ed.).The School of Niklaus Wirth: The Art of Simplicity. Gulf Professional Publishing. p. 154.ISBN978-3-932588-85-3.This class also inspired Niklaus to develop a simple yet powerful hardware description language called Lola. Niklaus has always built the systems he is either researching or teaching himself since he knows that this is the only way to keep an engineer honest and credible.
^Haigh, Thomas (1984)."Niklaus E. Wirth".A. M. Turing Award. Association for Computing Machinery.Archived from the original on 19 September 2017. Retrieved15 October 2019.
^Wirth, Program development by stepwise refinement, Communications of the ACM,. 14:221–227, ACM Press, 1971
^Wirth, Niklaus (2001). "Program Development by Stepwise Refinement". In Broy, Manfred; Denert, Ernst (eds.).Pioneers and Their Contributions to Software Engineering. Berlin, Heidelberg: Springer.doi:10.1007/978-3-642-48354-7.ISBN978-3-642-48355-4.S2CID11348419.
^Joy, William N.; Graham, Susan L.; Haley, Charles B. (1979).Berkeley Pascal User's Manual, Version 1.1, April, 1979. University of California, Berkeley. Department of Electrical Engineering and Computer Sciences.Archived from the original on 8 January 2024. Retrieved8 January 2024.
^Blotnick, Srully (July 1983)."Don't Fail Me Now"(PDF).Pascal News (26): 26.Archived(PDF) from the original on 5 January 2024. Retrieved3 January 2024.
^abWirth, Niklaus (1986)."Preface to the 1986 edition".Algorithms & Data Structures. Prentice-Hall. p. 9.ISBN978-0-13-022005-9.The major change which pervades the entire text concerns the programming language used to express the algorithms. Pascal has been replaced byModula-2.