# Niklaus Wirth

Niklaus Wirth (Winterthur Suiza, 15 de febrero de 1934-1 de enero de 2024) fue un científico suizo de la computación.
En 1959 obtiene el título de Ingeniero en Electrónica en la Escuela Politécnica Federal de Zúrich (ETH) en Suiza. En 1960 obtuvo un M.Sc. de la Universidad Laval, Canadá. En 1963 obtiene un Doctorado (Ph.D.) en la Universidad de California, Berkeley.
De 1963 a 1967 sirvió como profesor auxiliar de Informática en la Universidad de Stanford y de nuevo en la Universidad de Zúrich. A partir de 1968 se convirtió en profesor de Informática en la ETH en Suiza, tomándose dos años sabáticos en la Xerox PARC de California.
Wirth fue el jefe de diseño de los lenguajes de programación Euler, Algol W, Pascal, Modula, Modula-2 y Oberon. También ocupó gran parte de su tiempo en el equipo de diseño e implementación de sistemas operativos Lilith y Oberon para el Lola en el diseño del hardware digital y el sistema de simulación.
Su artículo de desarrollo de un programa por refinamiento sucesivo («program development by stepwise refinement») se considera un texto clásico en la ingeniería del software, así como su libro Algoritmos + Estructuras de datos = Programas, que recibió un amplio reconocimiento, y que aún hoy resulta útil en la enseñanza de la programación. Recibió el Premio Turing por el desarrollo de estos lenguajes de programación en 1984. Se jubiló en 1999.

## Biografía

Wirth nació en Winterthur, Suiza, en 1934. En 1959, obtuvo una licenciatura en Ciencias (B.S.) en ingeniería electrónica del Instituto Federal Suizo de Tecnología de Zúrich (ETH Zürich). En 1960, obtuvo una Maestría en Ciencias (MSc) de la Université Laval, Canadá. Luego, en 1963, obtuvo un doctorado en Ingeniería eléctrica y ciencias informáticas (EECS) de la Universidad de California, Berkeley, supervisado por el pionero del diseño informático Harry Huskey.
De 1963 a 1967, se desempeñó como profesor asistente de informática en la Universidad de Stanford y nuevamente en la Universidad de Zúrich. Luego, en 1968, se convirtió en profesor de Informática en ETH Zürich, tomando dos sabáticos de un año en Xerox PARC en California (1976-1977 y 1984-1985). Se retiró en 1999.
Participó en el desarrollo de estándares internacionales en programación e informática, como miembro de la Federación Internacional para el Procesamiento de la Información (IFIP) IFIP Working Group 2.1 sobre lenguajes algorítmicos y cálculos, que especifica, mantiene y admite los lenguajes de programación ALGOL 60 y ALGOL 68.
En 2004, fue nombrado miembro del Museo de Historia de la Computación «por su trabajo fundamental en lenguajes de programación y algoritmos, incluidos Euler, Algol-W, Pascal, Modula y Oberon».

## Lenguajes de programación

Wirth fue el diseñador jefe de los lenguajes de programación Euler (1965), PL360 (1966), ALGOL W (1966), Pascal (1970), Modula (1975), Modula-2 (1978), Oberon (1987), Oberon-2 (1991) y Oberon-07 (2007). También formó parte importante del equipo de diseño e implementó los sistemas operativos Medos-2 (1983, para la estación de trabajo Lilith) y Oberon (1987, para la estación de trabajo Ceres ) y del hardware digital Lola (1995), sistema de diseño y simulación. En 1984, recibió el premio Turing de la Association for Computing Machinery (ACM) por el desarrollo de estos lenguajes. En 1994, fue admitido como miembro de la ACM.

## Publicaciones

El artículo de Communications of the ACM de abril de 1971 «Program Development by Stepwise Refinement», relativo a la enseñanza de la programación, está considerado como un texto clásico en ingeniería del software. Se considera que este artículo es el primer trabajo en el que se describe formalmente el método descendente para diseñar programas. El artículo fue discutido por Fred Brooks en su influyente libro The Mythical Man-Month y fue descrito como «seminal» en la breve biografía de Wirth publicada por la ACM con motivo de su Premio Turing.
El libro de texto de 1973, Systematic Programming: An Introduction, fue descrito como una fuente de calidad para los matemáticos que desean comprender la naturaleza de la programación en una reseña de 1974. En la solapa de la portada de la edición de 1973 se afirmaba que el libro «... está adaptado a las necesidades de las personas que consideran un curso sobre construcción sistemática de algoritmos como parte de su formación matemática básica, más que a las necesidades inmediatas de quienes desean poder codificar ocasionalmente un problema y entregarlo a su ordenador para su solución instantánea." Descrito en la reseña como un texto difícil de leer, se recomienda sin embargo como lectura útil para los interesados en las matemáticas numéricas.
En 1974, El Manual de Usuario del Pascal e Informe, escrito conjuntamente con Kathleen Jensen, sirvió de base para numerosos esfuerzos de implementación de distintos lenguajes en la década de 1970 (BSD Pascal), y en la década de 1980 en los Estados Unidos y por toda Europa.
En 1975, escribió el libro Algorithms + Data Structures = Programs, que obtuvo un amplio reconocimiento. Las principales revisiones de este libro con el nuevo título Algorithms + Data Structures se publicaron en 1985 y 2004. Los ejemplos de la primera edición se escribieron en Pascal. Estos fueron reemplazados en las ediciones posteriores con ejemplos escritos en Modula-2 y Oberon respectivamente.
Su libro de texto, Programación sistemática: una introducción, se consideró una buena fuente para los estudiantes que querían hacer algo más que codificar. La solapa de la portada de la sexta edición (1973) decía que el libro:
Programación sistemática: una introducción está considerado como un texto desafiante para trabajar, se buscó como lectura imperativa para aquellos interesados en las matemáticas numéricas.
En 1992, él y Jürg Gutknecht publicaron la documentación completa del sistema operativo Oberon. Un segundo libro, con Martin Reiser, pretendía ser una guía de programación.

## Honores, premios y membresías (selección)

* 1984: Premios Turing
* 1988: Premio Computer Pioneer de la IEEE Computer Society
* 1988: Premio de Ciencia y Tecnología de IBM Europa
* 1995: Pour le mérite para las ciencias y las artes [1]
* 1999: Premio a la investigación destacada en ingeniería de software de ACM Sigsoft
* 2001: Dador del nombre del asteroide (21655) Niklauswirth
* 2002: Premio de Tecnología de la Fundación Eduard Rhein
* 2007: Elección a la Academia Europea
Un premio un tanto especial es el nombre de un software para aprender el lenguaje de programación Pascal como «Niki - el robot» en alusión a Niklaus.
Wirth era miembro de la Academia Alemana de Ciencias e Ingeniería, Acatech.