Niklaus Wirth y las buenas prácticas en la programación

En la década de 1960 la programación de computadoras ya se realizaba en lenguajes de alto nivel, es decir, no se necesitaba usar lenguaje ensamblador o alguno que se comunicara “directamente” con la computadora al nivel más bajo. Sin embargo, los lenguajes de la época tales como BASIC, COBOL, Fortran y otros, no promovían las buenas prácticas de la programación.

Era particularmente notorio el hábito de crear lo que en el argot de la programación se conoce como “código espagueti” usando GOTO y otras instrucciones para saltar de un lado a otro en el código de ejecución. Por esa época Niklaus Wirth era profesor de Matemáticas y de Ciencias de la Computación en el Instituto Federal de Tecnología (ETH) en Zurich, Suiza. Wirth quería enseñar buenos hábitos de programación a sus estudiantes y se propuso entonces crear herramientas que lo ayudaran en su propósito.

WIRTHPascal et al.
Antes de conocer las herramientas didácticas de Wirth, es importante dar un contexto de los logros que ya había tenido hasta ese entonces. La notoriedad de Wirth en el mundo de las Ciencias de la Computación inició con la creación de un par de lenguajes: el lenguaje Euler, derivado de su trabajo doctoral y el lenguaje PL360, diseñado para la serie de computadoras IBM System/360. Con ambos lenguajes había logrado innovaciones sustanciales al lograr separar la sintaxis de la semántica, proponer nuevas técnicas de implementación y diseñar cuidadosamente los lenguajes para ser procesados de manera eficiente y producir código optimizado.

Para 1957, se creó un grupo de élite al que no tardaría en unirse Wirth; se trataba del proyecto Algol. En ese proyecto se crearon nuevas técnicas no solo de programación, sino de interpretación y ejecución de programas. De ahí surgieron precisamente conceptos que los conocedores denominan funciones recursivas, bloques estructurados de código, variables locales, así como la descripción formal de gramáticas para lenguajes artificiales.

De estos esfuerzos se derivaron los lenguajes Algol 58 y Algol 60. Fue entonces que Wirth propuso incorporar conceptos y técnicas de su lenguaje Euler en la siguiente generación de Algol. La propuesta no tuvo buena aceptación en el grupo, así que Wirth decidió trabajar en su propia versión no oficial, a la que llamaría Algol-W. Aunque en el grupo se percibía como un subproyecto con contribuciones pequeñas, la verdad es que Algol-W contribuyó con conceptos que tuvieron mucha influencia en lenguajes posteriores, tales como el uso de cadenas (strings), números complejos, la introducción del estatuto while, reemplazo del estatuto switch por case, y otros novedosos en esa época.


Con las lecciones aprendidas en el desarrollo de estos lenguajes, Wirth se propuso crear un nuevo lenguaje que fuera simple, flexible, que fuera eficiente tanto en términos de compilación como del código generado y que permitiera la enseñanza de buenos hábitos de programación. El resultado fue el lenguaje que se convirtió quizás en su contribución de mayor influencia: el lenguaje Pascal, nombrado así en honor al matemático francés Blaise Pascal. En Pascal se incluían las mejores prácticas de los lenguajes anteriores de Wirth, así como ideas de un nuevo movimiento en programación que impulsaban colegas notables tales como E.W. Dijkstra; ese movimiento era el de la programación estructurada.

Pascal logró su objetivo y se convirtió en el lenguaje con el que toda una generación de futuros profesionales de las tecnologías de la información aprenderían a programar estructuradamente, incluyendo quien escribe estas líneas. Asimismo, Pascal trascendió las aulas y se convirtió en un poderoso lenguaje de producción de software profesional en diferentes ámbitos. Para dar unos pocos ejemplos, Pascal fue la base para el desarrollo de la computadora Apple Lisa y de las versiones iniciales de la Macintosh; más recientemente, el sistema Skype de videoconferencia fue escrito originalmente en Object Pascal (Delphi).

Un ingeniero versátil
Aunque Wirth es principalmente conocido por sus contribuciones en software, también ha tenido contribuciones notables en hardware. El uso moderno de las teclas Alt y Option deriva de su influencia en el diseño de la computadora PDP-1 con dos teclas modificadoras. También, en 1976 participó en el diseño de la estación de trabajo personal Lilith, que aunque no tuvo repercusión comercial, influyó en el diseño de muchas otras computadoras de su época. Lilith era un entorno de computación muy rico con sistema operativo Medos, red local de alta velocidad, aplicaciones tales como editores de textos y de gráficas, impresora láser y otras características muy adelantadas en ese entonces. Algunos años más tarde trabajaría en otro proyecto que avanzaría el estado del arte, que fue la estación de trabajo Ceres. También fue pionero, en la década de 1980, del nuevo campo conocido como Field Programmable Gate Arrays (FPGA).

El hombre que tiene en su haber la hazaña de haber creado 8 influyentes lenguajes de programación, desde Algol-W, pasando por Pascal, Modula, Oberon y varios derivados, también produjo libros fundamentales para la enseñanza de la programación; basta recordar sus famosos “Algoritmos + Estructuras de datos = Programas” (1975) o “Desarrollo de programas por refinamientos sucesivos” (1971).

Por sus grandes contribuciones, Wirth ha recibido varios doctorados honoríficos, reconocimientos de asociaciones profesionales tal como el IEEE, la membresía honorífica a la Academia Nacional de Ingeniería de Estados Unidos y el muy prestigioso premio Turing de la ACM. Fue precisamente en 1984, al recibir el premio Turing, que dijo “uno debe distinguir entre lo que es esencial y lo que es efímero” y observó que en su carrera “... cada proyecto fue principalmente un experimento de aprendizaje. Uno aprende mejor inventando. Solamente al realizar un proyecto de desarrollo obtengo la familiaridad suficiente con las dificultades intrínsecas y la confianza suficiente que los detalles inherentes pueden resolverse”.

A pesar de haberse retirado como catedrático del ETH desde 1999, Niklaus Wirth sigue activo en su área. No es raro encontrárselo en conferencias, ya sea como asistente o como ponente. Además sigue a cargo del desarrollo de Oberon-07, con diseños de gran elegancia y que siguen influyendo a nuevas generaciones.

---

por J. Antonio García Macías
MUNDO DIGITAL
El Dr. J. Antonio García Macías es investigador del Departamento de Ciencias de la Computación del CICESE. Su correo electrónico es This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Hits: 1731

Licencia

Creative Commons License El contenido de la web está bajo licencia Creative Commons. Eres libre de copiar, distribuir y comunicar públicamente la obra. No puedes utilizar esta obra para fines comerciales. Si alteras, transformas o creas una obra a partir de esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta. Debes reconocer la autoría de la obra en los términos especificados por el propio autor o licenciante mediante un enlace a este Sitio. 

<a href="http://www.eveliux.com/mx/"> Eveliux.com </a>