¿Quién
es Edsger Dijstra?
Dijkstra nació el 11 de mayo de 1930 en Rotterdam,
Holanda, hijo de un químico y una matemática. Estudio física
y matemáticas en la Univ. de Leyden terminando en 1951. Más tarde, un doctorado
en física teórica en la misma universidad en 1956, seguido de un Ph.D. en 1959
en la Univ. de Amsterdam. En 1952 comenzó a trabajar en el Centro Matemático de
Amsterdam donde aprendió a programar, siendo el primer programador en Holanda.
En 1962 pasó a ser profesor en la Univ.
Tecnológica de Eindhoven hasta 1984. En paralelo, desde
1973 a 1984 fue investigador para Burroughs. Finalmente, en 1984
aceptó la cátedra Schlumberger en la Univ. de Texas at
Austin, hasta que jubiló en 1999. Finalmente, el mes pasado,
enfermo de cáncer, murió en Nuenen, Holanda. Dijkstra se
casó en 1957 con Maria Debets (más conocida como Ria) y tuvo tres hijos:
Marcus, Femke y Rutger, el único que siguió sus pasos en la computación.
El trabajo de Dijkstra siempre se ha caracterizó por su
elegancia y simplicidad, sin comprometer el rigor de su investigación con
consideraciones económicas, políticas o administrativas. Contaba el mismo que
al preguntarle a su madre cuán difícil eran las matemáticas, ella le contestó:
"aprende todas las fórmulas y que si alguna vez necesitaba
más de cinco líneas para demostrar algo, estaba en el
camino equivocado". En 1972 recibió el premio Turing, y su discurso fue
publicado en un artículo titulado "The Humble Programmer" (el
programador humilde) ese mismo año en Communications of the ACM. Recientemente,
en esta misma revista, publicaba un artículo corto titulado "The End of
Computing Science?" (El Fin de la Computación), donde recalcaba que el objetivo
principal de la computación, ¿Cómo no convertir un programa en un caos?,
todavía no se había logrado.
-Algunos de sus contribuciones son:
--Dijkstra escribió más de 1300 artículos, pero
indudablemente hay tres contribuciones cuyo impacto está presente en numerosos
ámbitos de la computación moderna:
Algoritmo para encontrar el camino más corto en un grafo:
este fue el primer problema de grafos que resolvió Dijkstra en 1956 y publicado
en 1959 por que en esa época un algoritmo era difícilmente considerado un logro
científico. Hoy en día, este algoritmo ha sido usado como la base para
protocolos de enrutamiento en Internet, sistemas de posicionamiento global o
simplemente para itinerarios de viaje.
--El concepto de abrazo mortal (deadlock) y su solución a
través de semáforos y regiones de código con acceso exclusivo. Dijkstra
describió el problema con la cena de los famosos cinco filósofos que sólo
tenían cinco palillos para comer arroz (ver figura). Si ellos no se ponían de acuerdo
y tomaban un palillo cada uno, creaban un deadlock y morían de hambre pues se
necesitaban dos palillos para comer. Esta es la base de la programación
concurrente y una parte fundamental de cualquier sistema operativo.
--Su aporte a la programación estructurada. Dijkstra
participó en el comité que diseño Algol 60, el primer lenguaje de programación
estructurado, y lo promovió intensamente fomentando la verificación formal de
programas y la eliminación del goto. En este tema fue autor y coautor de varios
libros, además de su artículo corto
"Go To statement considered harmful" (La instrucción go to es
considerada dañina) publicado en Communications of ACM en 1968, que es legendario.

