Biography:Niklaus Wirth

From HandWiki
(Redirected from Systematic Programming)
Short description: Swiss computer scientist (1934–2024)
Niklaus Wirth
Niklaus Wirth, UrGU.jpg
Wirth in 2005
Born
Niklaus Emil Wirth

(1934-02-15)15 February 1934
Winterthur, Switzerland
Died1 January 2024(2024-01-01) (aged 89)
Education
Known forALGOL W, Euler, Pascal, Modula, Modula-2, Oberon, Oberon-2, Oberon-07, Oberon System
Awards
  • IEEE Emanuel R. Piore Award (1983)[1]
  • Turing Award (1984)
  • SIGPLAN Programming Languages Achievement Award
  • Fellow of the Computer History Museum (2004)[2]
  • Marcel Benoist Prize (1989)
Scientific career
FieldsComputer science
Institutions
ThesisA Generalization of Algol (1963)
Doctoral studentsMartin Odersky, Michael Franz
Signature
Signature of Niklaus Wirth

Niklaus Emil Wirth (15 February 1934 – 1 January 2024) was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages".[3]

Early life and education

Niklaus Emil Wirth was born in Winterthur, Switzerland , on 15 February 1934.[4]

He earned a Bachelor of Science (B.S.) degree in electronic engineering from the Swiss Federal Institute of Technology, Zürich (ETH Zürich) in 1959. In 1960, he earned a Master of Science (M.Sc.) from Université Laval in Quebec. Then in 1963, he was awarded a PhD in electrical engineering and computer science (EECS) from the University of California, Berkeley, supervised by computer design pioneer Harry Huskey.[5]

Career

From 1963 to 1967, Wirth served as assistant professor of computer science at Stanford University and again at the University of Zürich. Then in 1968, he became a professor of informatics at ETH Zürich, taking two one-year sabbaticals at Xerox PARC in California (1976–1977 and 1984–1985). He retired in 1999.[5]

Wirth was involved with developing international standards in programming and informatics, as a member of the International Federation for Information Processing (IFIP) Working Group 2.1 on Algorithmic Languages and Calculi,[6] which specified, maintains, and supports the programming languages ALGOL 60 and ALGOL 68.[7]

In 2004, he was made a Fellow of the Computer History Museum "for seminal work in programming languages and algorithms, including Euler, Algol-W, Pascal, Modula, and Oberon."[8]

Programming languages

Wirth in 1969

Wirth was the chief designer of the programming languages Euler (1965), PL360 (1966), ALGOL W (1966), Pascal (1970),[9] Modula (1975), Modula-2 (1978),[5] Oberon (1987), Oberon-2 (1991), and Oberon-07 (2007).[10] He was also a major part of the design and implementation team for the operating systems Medos-2 (1983, for the Lilith workstation),[11] and Oberon (1987, for the Ceres workstation),[12] and for the Lola (1995) digital hardware design and simulation system.[13][14]

In 1984, Wirth received the Association for Computing Machinery (ACM) Turing Award for the development of these languages.[15] In 1994, he was inducted as a Fellow of the ACM.[16]

Wirth's law

Main page: Wirth's law

In 1995, he popularized the adage now named Wirth's law. In his 1995 paper "A Plea for Lean Software" he phrased it as "Software is getting slower more rapidly than hardware becomes faster." and attributed it to Martin Reiser.[17]

Publications

The April 1971 Communications of the ACM article "Program Development by Stepwise Refinement", [18][19] concerning the teaching of programming, is considered to be a classic text in software engineering.[20] The paper is considered to be the earliest work to formally outline the top-down method for designing programs.[21][22] The article was discussed by Fred Brooks in his influential book The Mythical Man-Month and was described as "seminal" in the ACM's brief biography of Wirth published in connection to his Turing Award.[23][24]

The 1973 textbook, Systematic Programming: An Introduction,[25] was considered[by whom?] a quality source for mathematicians desiring to understand the nature of programming.[26] 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."[27] Regarded[by whom?] as a challenging text to work through, it was sought as imperative reading for those interested in numerical mathematics.[28]

In 1974, The Pascal User Manual and Report,[29] The Pascal User Manual and Report, jointly written[lower-roman 1] with Kathleen Jensen,[32] served as the basis of many language implementation efforts in the 1970s (BSD Pascal[33]), and 1980s in the United States and across Europe.[34][35]

In 1975, he wrote the book Algorithms + Data Structures = Programs, which gained wide recognition.[36] Major revisions of this book with the new title Algorithms & Data Structures were published in 1986 and 2004.[37][38] 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.[37][38]

In 1992, Wirth and Jürg Gutknecht published the full documentation of the Oberon operating system.[39] A second book, with Martin Reiser, was intended as a programming guide.[40]

Death

Wirth died on New Year's Day 2024, at age 89.[41]

See also

Notes

  1. First chapter (Documentation) is a joint work, which according to Jensen has been edited by Wirth.[30] Second chapter is by Wirth (also published separately[31]).

References

  1. "IEEE Emanuel R. Piore Award Recipients". IEEE. http://www.ieee.org/documents/piore_rl.pdf. Retrieved 20 March 2021. 
  2. "Niklaus Wirth 2004 Fellow". http://www.computerhistory.org/fellowawards/hall/niklaus-wirth/. 
  3. "Niklaus E. Wirth - A.M. Turing Award Laureate". Association for Computing Machinery. 2019. https://amturing.acm.org/award_winners/wirth_1025774.cfm. 
  4. Henderson, Harry (2009). "Wirth, Niklaus" (in en). Encyclopedia of Computer Science and Technology. Infobase Publishing. p. 514. ISBN 978-1-4381-1003-5. https://books.google.com/books?id=3Tla6d153uwC&dq=%22Niklaus%20Wirth%22%2015%20february%201934&pg=PA514. 
  5. 5.0 5.1 5.2 Pomberger, Gustav; Mössenböck, Hanspeter; Rechenberg, Peter (2000). "Niklaus Wirth - a Pioneer of Computer Science" (in en). The School of Niklaus Wirth: The Art of Simplicity. Gulf Professional Publishing. p. 6. ISBN 978-3-932588-85-3. https://books.google.com/books?id=6kHs4s-79bkC&dq=Niklaus%20Wirth%20retired%201999&pg=PA6. 
  6. Jeuring, Johan; Meertens, Lambert; Guttmann, Walter (17 August 2016). "Profile of IFIP Working Group 2.1". https://ifipwg21wiki.cs.kuleuven.be/IFIP21/Profile. 
  7. Swierstra, Doaitse; Gibbons, Jeremy; Meertens, Lambert (2 March 2011). "ScopeEtc: IFIP21: Foswiki". https://ifipwg21wiki.cs.kuleuven.be/IFIP21/ScopeEtc. 
  8. "Niklaus Wirth: 2004 Fellow". https://www.computerhistory.org/fellowawards/hall/niklaus-wirth/. 
  9. Petzold, Charles (9 September 1996). "Programming Languages: Survivors and Wannabes". The New York Times. ISSN 0362-4331. https://www.nytimes.com/1996/09/09/business/programming-languages-survivors-and-wannabes.html. 
  10. Wirth, Niklaus (3 May 2016). The Programming Language Oberon-07 (Report). https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf. Retrieved 17 January 2021. 
  11. Knudsen, Svend Erik (1983). Medos-2: a Modula-2 oriented operating system for the personal computer Lilith (Doctoral Thesis). ETH Zurich. doi:10.3929/ethz-a-000300091. hdl:20.500.11850/137906. I am indebted to Prof. N. Wirth for conceiving and coordinating the Lilith project, for giving me the opportunity to design and implement the operating system Medos-2, and for supervising this thesis.
  12. Franz, Michael (2000). "Oberon - The Overlooked Jewel" (in en). The School of Niklaus Wirth: The Art of Simplicity. Gulf Professional Publishing. pp. 42, 45. ISBN 978-3-932588-85-3. https://books.google.com/books?id=6kHs4s-79bkC&q=oberon. 
  13. Wirth, Niklaus (1995) (in English). Digital Circuit Design. Springer. https://archive.org/details/isbn_9773540585771/. 
  14. Hans Eberle (2000). "Designing a Cluster Network" (in en). The School of Niklaus Wirth: The Art of Simplicity. Gulf Professional Publishing. p. 154. ISBN 978-3-932588-85-3. https://books.google.com/books?id=6kHs4s-79bkC&q=lola. "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." 
  15. Haigh, Thomas (1984). "Niklaus E. Wirth". Association for Computing Machinery. http://amturing.acm.org/award_winners/wirth_1025774.cfm. 
  16. "ACM Fellows by year". https://awards.acm.org/fellows/award-recipients?year=1994&award=158&region=&submit=Submit&isSpecialCategory=. 
  17. Wirth, Niklaus (February 1995). "A Plea for Lean Software". Computer 28 (2): 64–68. doi:10.1109/2.348001. 
  18. Wirth, Program development by stepwise refinement, Communications of the ACM,. 14:221–227, ACM Press, 1971
  19. Wirth, Niklaus (2001). "Program Development by Stepwise Refinement". in Broy, Manfred; Denert, Ernst. Pioneers and Their Contributions to Software Engineering. Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-48354-7. ISBN 978-3642483554. 
  20. Gehani, Narain (1991) (in en). Ada: Concurrent Programming. Silicon Press. p. 209. ISBN 978-0-929306-08-7. https://books.google.com/books?id=E6wOK8OYBG4C&dq=%22Program+Development+by+Stepwise+Refinement%22+classic&pg=PA209. 
  21. Gill, Nasib Singh (in en). Software Engineering. Khanna Publishing House. p. 192. ISBN 978-81-906116-3-3. https://books.google.com/books?id=mFoJEAAAQBAJ&dq=top-down+method+wirth+stepwise+1971&pg=PA192. 
  22. Dooley, John F. (25 November 2017) (in en). Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring. Apress. p. 54. ISBN 978-1-4842-3153-1. https://books.google.com/books?id=LGRADwAAQBAJ&dq=top-down+method+wirth+stepwise&pg=PA54. 
  23. Brooks, Frederick P. (Frederick Phillips) (1975). The Mythical Man-Month. Reading, Mass. : Addison-Wesley Pub. Co.. p. 143. ISBN 978-0-201-00650-6. https://archive.org/details/mythicalmanmonth00broo/page/142/mode/2up?q=wirth. 
  24. "Niklaus Wirth: 1984 ACM A. M. Turing Award Recipient". Communications of the ACM 28 (2). February 1985. doi:10.1145/1283920.1283941. 
  25. Wirth, Niklaus (8 January 1973). Systematic Programming: An Introduction. Prentice-Hall. ISBN 0-13-880369-2. 
  26. Abrahams, Paul; Wirth, Niklaus (July 1974). "Systematic Programming: An Introduction". Mathematics of Computation 28 (127): 881. doi:10.2307/2005728. 
  27. Wirth, Niklaus (1973). "Cover flap". Systematic Programming: An Introduction. Prentice-Hall. ISBN 0-13-880369-2. 
  28. Abrahams, Paul (July 1974). "Systematic Programming: An Introduction by Niklaus Wirth". Mathematics of Computation (American Mathematical Society) 28 (127): 881–883. doi:10.2307/2005728. 
  29. Pascal User Manual and Report Second Edition. http://archive.org/details/h42_Pascal_User_Manual_and_Report_Second_Edition. 
  30. "Kathleen Jensen's Speech at the Wirth Symposium (20.02.2014)". https://www.youtube.com/watch?v=Yj3DMUn6cck. 
  31. Wirth, Niklaus (1973) (in en). The programming language Pascal (Revised Report) (Report). ETH Zurich. pp. 49 p. doi:10.3929/ethz-a-000814158. http://hdl.handle.net/20.500.11850/68910. 
  32. * https://www.researchgate.net/scientific-contributions/Kathleen-Jensen-2058521472
  33. 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. https://books.google.com/books?id=1rc7GwAACAAJ. 
  34. Blotnick, Srully (July 1983). "Don't Fail Me Now". Pascal News (26): 26. http://bitsavers.org/magazines/Pascal_News/26_Pascal_News_Jul83.pdf. 
  35. Hartel, Pieter H. (May 1982). "Pascal for systems programmers". ECODU-32. https://cds.cern.ch/record/137861/files/cer-000048872.pdf. 
  36. Citations collected by the Association for Computing Machinery (ACM)
  37. 37.0 37.1 Wirth, Niklaus (1986). "Preface to the 1986 edition". Algorithms & Data Structures. Prentice-Hall. p. 9. ISBN 978-0-13-022005-9. https://archive.org/details/algorithmsdatast0000wirt_u9b4/page/12/mode/2up?q=modula. "The major change which pervades the entire text concerns the programming language used to express the algorithms. Pascal has been replaced by Modula-2." 
  38. 38.0 38.1 Wirth, Niklaus. "Algorithms and Data Structures". ETH Zürich. https://people.inf.ethz.ch/wirth/AD.pdf. "© N. Wirth 1985 (Oberon version: August 2004)." 
  39. Wirth, Niklaus; Gutknecht, Jürg (1992). Project Oberon: The Design of an Operating System and Compiler. Addison-Wesley, ACM Press. ISBN 978-0201544282. http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf.  Out of print. Online version of a 2nd edition. 2005 edition, PDF.
  40. Reiser, Martin; Wirth, Niklaus (1992). Programming in Oberon: Steps Beyond Pascal and Modula. Addison-Wesley, ACM Press. ISBN 978-0201565430. http://www.ethoberon.ethz.ch/WirthPubl/ProgInOberonWR.pdf. . Out of print.
  41. Proven, Liam (4 January 2024). "RIP: Software design pioneer and Pascal creator Niklaus Wirth". The Register. https://www.theregister.com/2024/01/04/niklaus_wirth_obituary/. 

External links