# Niklaus Wirth

Niklaus Wirth (alemany: Niklaus Emil Wirth) (Winterthur, 15 de febrer de 1934 - Zúric, 1 de gener de 2024) va ser un enginyer informàtic i programador suís. Va dissenyar diversos llenguatges de programació, inclòs Pascal, i va ser pioner en diversos temes clàssics en enginyeria del programari. El 1984, va guanyar el Premi Turing, reconegut generalment com la màxima distinció en informàtica, pel desenvolupament d'una seqüència de llenguatges informàtics innovadors.

## Biografia

Wirth va néixer a Winterthur, als afores de Zúric (Suïssa), Suïssa, el 1934, fill de Walter Wirth, professor d'escola, i Hedwig Wirth, de soltera Keller. Quan era nen, Niklaus Wirth estava interessat en el modelatge d'avions i la construcció de coets; la seva passió per l'electrònica i els sistemes de control de programari va començar amb el desenvolupament de dispositius de control remot.
El 1954 va ingressar a la Facultat d'Electrònica de l'Institut Federal Suís de Tecnologia (ETH Zürich) i el 1959, va obtenir una llicenciatura en ciències (BS) en enginyeria electrònica. El 1960, va obtenir un màster en ciències (MSc) per la Universitat Laval, Canadà. Després va ser convidat a la Universitat de Califòrnia a Berkeley (EUA), on el 1963, sota la direcció del pel pioner del disseny informàtic i professor Harry Huskey, va defensar la seva tesi sobre el llenguatge de programació Euler — extensió d'ALGOL utilitzant el llenguatge Lisp.
La tesi de Wirth va ser destacada per la comunitat de desenvolupadors de llenguatges de programació, i el mateix 1963 va ser convidat al Comitè de Normalització Algol de l'IFIP (International Federation for Information Processing), que estava desenvolupant un nou estàndard per al llenguatge Algol, que més tard esdevingué ALGOL 68. Juntament amb Charles Hoar, Wirth va defensar en el comitè el desenvolupament d'una versió moderadament modificada d'Algol, lliure de les mancances de la llengua original i complementada amb el mínim d'eines realment necessàries. Wirth i Hoar van presentar el llenguatge ALGOL W (W per Wirth) al comitè, que era només una reelaboració d'Algol, però no van rebre suport. En acabar el treball del comitè l'any 1968, Wirth va ser un dels que van criticar ALGOL-68, parlant de la seva manca de fiabilitat i extrema redundància. Paral·lelament, del 1963 al 1967, Wirth va treballar com a assistent a la Universitat Stanford (EUA). Juntament amb Jim Wales, va desenvolupar i implementar PL360, destinat a la programació a la plataforma IBM/360, un llenguatge similar a un algol en el qual es van incorporar una sèrie de funcions dependents del sistema relacionades amb l'arquitectura IBM/360.
De 1963 a 1967, va ser professor ajudant d’informàtica a la Universitat Stanford i de nou a la Universitat de Zúric. Després, el 1968, es va convertir en professor d’informàtica a l'ETH Zürich, prenent dos anys sabàtics d'un any a Xerox PARC a Califòrnia (1976–1977 i 1984–1985). Es va jubilar l'any 1999.

## Llenguatges de programació

El 1970 va crear el llenguatge de programació Pascal. A la dècada de 1970, va desenvolupar, juntament amb Hoare i Dijkstra, la tecnologia de programació estructurada. Per transferir el sistema Pascal a diverses plataformes informàtiques, l'any 1973, amb la participació de Wirth, es va desenvolupar un prototip de màquina virtual que executaria un "pi-code" intermedi en qualsevol plataforma, en la qual s'havien de compilar tots els programes.
Va participar en el desenvolupament d'estàndards internacionals en programació i informàtica, com a membre del Grup de treball 2.1 de l'IFIP sobre llenguatges algorítmics i càlculs de la Federació Internacional per al Processament de la Informació (IFIP), que especifica, manté i dona suport als llenguatges de programació ALGOL 60, ALGOL 68, Pascal (1970), Modula (1975), Modula-2 (1978), Oberon (1987), Oberon-2 (1991) i Oberon-07 (2007). També va ser una part important de l'equip de disseny i implementació dels sistemes operatius Medos-2 (1983, per a l'estació de treball Lilith) i Oberon (1987, per a l'estació de treball Ceres), i per al disseny i maquinari digital Lola (1995). El 1984 va rebre el premi Turing de l'Association for Computing Machinery (ACM) pel desenvolupament d'aquests llenguatges. El 1994, va ser incorporat com a membre de l'ACM.
El 1975, va desenvolupar el llenguatge Modula, en el qual va implementar les idees de desenvolupar programes modulars amb interfícies intermodulars ben definides i programació paral·lela. A més, es va canviar la sintaxi del llenguatge en el mòdul - Wirth es va desfer de la necessitat, heretada d'Algol-60, d'utilitzar operadors compostos en estructures de ramificació i bucles. El mòdul no era gaire conegut i només tenia una implementació experimental, però la seva versió modificada era Modula-2, el desenvolupament de la qual va començar el 1977 i va acabar el 1980, destinada a implementar el programari del sistema del sistema Lilith que es va desenvolupar en un ordinador personal de 16 bits, es va fer conegut i força popular, tot i que no va superar el Pascal en popularitat, especialment les seves implementacions comercials. El sistema Lilith es va avançar uns quants anys a les tendències de la indústria informàtica; Wirth va lamentar més tard que com que no es va adonar del potencial d'aquest sistema, la indústria informàtica suïssa va perdre la seva oportunitat històrica. El desenvolupament de Modula-2 va ser el llenguatge Modula-3, desenvolupat conjuntament per DEC i Olivetti; Wirth no va participar en la seva creació.
A la segona meitat de la dècada de 1970, Wirth va participar en un concurs del Departament de Defensa dels Estats Units per desenvolupar un nou llenguatge per a la programació de sistemes incrustats, que va donar lloc a la creació del llenguatge Ada. La història amb ALGOL-68 es va repetir: el projecte del grup en el qual treballaven Wirth i Hoare no va ser aprovat per la comissió lingüística. Com a resultat, el concurs va ser guanyat per un projecte basat en Pascal, però molt més complex i voluminós.
De 1982 a 1984 i de 1988 a 1990, Wirth va dirigir la Facultat d'Informàtica de l'ETH Zürich, i des de 1990, l'Institut de Sistemes Informàtics de l'ETH.
El 1988, en col·laboració amb Jürg Gutknecht, Wirth va desenvolupar el llenguatge de programació Oberon. L'objectiu del desenvolupament era crear un llenguatge per implementar el programari del sistema de la nova estació de treball que s'està dissenyant. La base d'Oberon va ser Modula-2, que es va simplificar significativament, però al mateix temps es va complementar amb noves capacitats.
El 1992, Wirth i Hanspeter Mössenböck va publicar un missatge sobre un nou llenguatge de programació: Oberon-2, una versió mínimament ampliada d'Oberon. El mateix any, es va formar una filial d'ETH, Oberon microsystems, que va començar a desenvolupar sistemes Oberon. Wirth es va convertir en un dels membres de la seva junta directiva. El 1999, aquesta companyia va llançar la següent versió d'Oberon - Component Pascal, més adequada per a la programació de components. El 1996 Wirth va desenvolupar un altre llenguatge de programació original, Lola, un llenguatge d'aprenentatge senzill per descriure i simular formalment circuits elèctrics digitals.
L'1 d'abril de 1999, Wirth es va jubilar després d'haver arribat al límit d'edat d'un funcionari a Suïssa (ETH és una universitat estatal, els seus empleats són funcionaris i la seva feina està subjecta a la legislació corresponent).
El 19 de juny de 2007, Wirth va rebre un doctorat honoris causa de l'Acadèmia de Ciències de Rússia. L'iniciador de la presentació va ser un informàtic rus, Igor Nikolaevich Xagaev, professor de la Universitat Metropolitana de Londres, que col·labora amb Niklaus Wirth el 2005-2008 en el projecte europeu ONBASS. És membre de diverses acadèmies nacionals: Acadèmia Suïssa d'Enginyeria (Suïssa), U. S. Academy of Engineering (EUA), Berlin-Brandenburg Academy (Alemanya). És "Doctor Honoris Causa de la Universitat ITMO" (2005).
El 2004, va ser nomenat membre del Computer History Museum per un treball seminal en llenguatges de programació i algorismes, inclosos Euler, Algol-W, Pascal, Modula i Oberon.
Wirth va ser el cap de disseny dels llenguatges de programació Euler, Algol W, Pascal, Modula, Modula-2 i Oberon. També va ocupar gran part del seu temps a l'equip de disseny i implementació de sistemes operatius Lilith i Oberon per al Lola en el disseny del maquinari digital i el sistema de simulació.
El seu article de desenvolupament d'un programa per refinament successiu (program development by stepwise refinement) és considerat un text clàssic en l'enginyeria del programari, així com el seu llibre Algorismes+Estructures de dades = Programes , que va rebre un ampli reconeixement, i que encara avui en dia és útil en l'ensenyament de la programació d'ordinadors. Va rebre el Premi Turing pel desenvolupament d'aquests llenguatges de programació el 1984. Es va jubilar el 1999.

## Publicacions

El seu llibre, escrit conjuntament amb Kathleen Jensen, The Pascal User Manual and Report, va servir com a base de molts esforços d'implementació lingüística als anys setanta i vuitanta als Estats Units i a tot Europa.
El seu article Program Development by Stepwise Refinement, sobre l'ensenyament de la programació, es considera un text clàssic de l'enginyeria del programari. El 1975, va escriure el llibre Algoritmes + Estructures de dades = Programes, que va obtenir un gran reconeixement. Les principals revisions d'aquest llibre amb el nou títol Algoritmes + Estructures de dades es van publicar el 1985 i el 2004. Els exemples de la primera edició es van escriure en Pascal. Aquests van ser substituïts en les edicions posteriors per exemples escrits en Modula-2 i Oberon respectivament.
El seu llibre de text, Systematic Programming: An Introduction, es va considerar una bona font per als estudiants que volien fer més que codificar. La portada de la sisena edició (1973) deia que el llibre «... s'adapta a les necessitats de les persones que veuen un curs sobre construcció sistemàtica d'algorismes com a part de la seva formació matemàtica bàsica, més que no pas a les immediates necessitats d'aquells que volen poder codificar de tant en tant un problema i lliurar-lo al seu ordinador per a una solució instantània». Considerat com un text difícil de treballar, és lectura imprescindible per a aquells interessats en les matemàtiques numèriques.
El 1992, ell i Jürg Gutknecht van publicar la documentació completa del sistema operatiu Oberon. Un segon llibre, amb Martin Reiser, estava pensat com una guia de programació.

## La llei de Wirth

El 1995, va popularitzar l'adagi que ara s'anomena llei de Wirth, que afirma que el programari s'està fent lent més ràpidament que el maquinari. En el seu article de 1995 "A Plea for Lean Software" ho atribueix a Martin Reiser.

## Referències

* ↑ «Computer Pioneers - Niklaus Wirth». [Consulta: 19 octubre 2023].
* ↑ Dasgupta, Sanjoy. Algorithms. McGraw-Hill Education, 2008, p. 317. ISBN 978-0-07-352340-8.
* ↑ Bibliography of Turing Award lectures, DBLP
* ↑ Haigh, Thomas. «Niklaus E. Wirth». A. M. Turing Award. Association for Computing Machinery. [Consulta: 15 octubre 2019].
* ↑ «[https://amturing.acm.org/pdf/WirthTuringTranscript.pdf A. M. Turing Award Oral History Interview with Niklaus Wirth]».
* ↑ «Harry D. Huskey». [Consulta: 19 octubre 2023].
* ↑ Jeuring, Johan. «Profile of IFIP Working Group 2.1». Foswiki, 17-08-2016. [Consulta: 4 octubre 2020].
* ↑ Swierstra, Doaitse. «ScopeEtc: IFIP21: Foswiki». Foswiki, 02-03-2011. [Consulta: 4 octubre 2020].
* ↑ The New York Times, 09-09-1996. ISSN: 0362-4331 [Consulta: 8 març 2018].
* ↑ «Постановление № 141 «О присуждении учёной степени доктора honoris causa иностранному ученому Никласу Вирту»». РАН, 19-06-2007. Arxivat de l'original el 2014-07-15. [Consulta: 9 abril 2013].
* ↑ «Niklaus Wirth: 2004 Fellow». Computer History Museum (CHM). [Consulta: 15 octubre 2019].
* ↑ Bloom, Howard M. Conceptual Design of a Direct High-Level Language Processor. Elsevier, 1975, p. 187–242.
* ↑ BYTE Vol 09 10 1984 09 Computer Graphics.
* ↑ Wirth, Niklaus. «Program Development by Stepwise Refinement». A: Broy. Pioneers and Their Contributions to Software Engineering. Berlin, Heidelberg: Springer, 2001. DOI 10.1007/978-3-642-48354-7. ISBN 978-3642483554.
* ↑ Citations collected by the Association for Computing Machinery (ACM)
* ↑ Wirth, Niklaus. «Cover flap». A: Systematic Programming: An Introduction, 1973. ISBN 0-13-880369-2.
* ↑ Abrahams, Paul Mathematics of Computation, 28, 127, 7-1974, pàg. 881–883. DOI: 10.2307/2005728. JSTOR: 2005728.
* ↑ Wirth, Niklaus. Project Oberon: The Design of an Operating System and Compiler. Addison-Wesley, ACM Press, 1992. ISBN 978-0201544282. Arxivat 2013-04-12 a Wayback Machine.
* ↑ Reiser, Martin. Programming in Oberon: Steps Beyond Pascal and Modula. Addison-Wesley, ACM Press, 1992. ISBN 978-0201565430. Arxivat 2016-04-16 a Wayback Machine.
* ↑ Wirth, Niklaus Computer, 28, 2, 2-1995, pàg. 64–68. DOI: 10.1109/2.348001.

## Enllaços externs

* Biografia Arxivat 2006-02-06 a Wayback Machine., en ETH Zürich (anglès)
* Wirth/Pàgina personal Arxivat 2010-01-18 a Wayback Machine. a ETH Zürich (anglès)
* Projectes duts a terme per Niklaus Wirth (anglès)