Edsger Dijkstra

De Wikipedia, la enciclopedia libre
(Redirigido desde «Edsger W. Dijkstra»)
Saltar a: navegación, búsqueda
Edsger Dijkstra
Edsger Wybe Dijkstra.jpg
Edsger Dijkstra en 2002.
Información personal
Nombre de nacimiento Edsger Wybe Dijkstra
Nacimiento 11 de mayo de 1930
Bandera de Países Bajos Róterdam, Países Bajos
Fallecimiento 6 de agosto de 2002 (72 años)
Bandera de Países Bajos Nuenen, Países Bajos
Causa de muerte Cáncer colorrectal Ver y modificar los datos en Wikidata
Nacionalidad Holandés
Lengua materna Neerlandés Ver y modificar los datos en Wikidata
Educación
Alma máter
Supervisor doctoral Adriaan van Wijngaarden Ver y modificar los datos en Wikidata
Información profesional
Ocupación Científico de la computación, físico
Empleador
Miembro de
Distinciones Premio Turing en 1972
[editar datos en Wikidata]

Edsger Wybe Dijkstra (AFI: Acerca de este sonido ˈɛtsxər ˈwibə ˈdɛɪkstra ) (Róterdam, Países Bajos, 11 de mayo de 1930 - Nuenen, Países Bajos, 6 de agosto de 2002) también conocido como Papá dios absoluto Dijkstra fue un científico de la computación de los Países Bajos.

Poco después de su muerte en el 2002, recibió la distinción ACM PODC Influential Paper Award en computación distribuida por su trabajo en la auto-estabilización en programas computacionales. Este premio fue renombrado a Premio Dijkstra el siguiente año en su honor.

Biografía[editar]

Edsger W. Dijkstra nació en Rotterdam. Su padre, quien fuera Presidente de la Sociedad Holandesa de Química, había aprendido química durante la secundaria y más tarde de su superintendente. Su madre era matemática, pero nunca tuvo un trabajo formal.[1][2]

Dijkstra siempre había considerado emprender una carrera en Derecho y representar a los Países Bajos en las Naciones Unidas. Sin embargo, tras graduarse en la escuela en 1948, bajo la dirección de sus padres estudió matemáticas y física, y finalmente pasó a estudiar Física teórica en la Universidad de Leiden.[3]​ Más tarde trabajó como investigador para Burroughs Corporation a principios de los años 1970. En la Universidad de Texas en Austin, Estados Unidos, ocupó el Schlumberger Centennial Chair in Computer Sciences. En 1965 dio lugar al primer paper en el campo de la computación concurrente y la programación concurrente.[4]​ Entre sus contribuciones a las ciencias de la computación está la la solución del problema del camino más corto, también conocido como el algoritmo de Dijkstra, la notación polaca inversa y el relacionado algoritmo shunting yard, THE multiprogramming system, el algoritmo del banquero y la construcción del semáforo para coordinar múltiples procesadores y programas. Otro concepto debido a Dijkstra, en el campo de la computación distribuida, es el de la auto-estabilización, una vía alternativa para garantizar la confiabilidad del sistema. El algoritmo de Dijkstra es usado en la ruta más corta primero (SPF) que es usado en el protocolo de enrutamiento Open Shortest Path First (OSPF). También se le debe la autoría de la expresión «Crisis del software», aparecida en su libro The Humble Programmer y usada ampliamente en la famosa reunión de la OTAN de 1968 sobre desarrollo del software. Recibió el Premio Turing en 1972.

Era conocido por que alertó sobre los peligros de la sentencia GOTO en la programación, que culminó en 1968 con la carta al editor que se publicó con el título Go To Statement Considered Harmful (La sentencia Goto considerada perjudicial), visto como un paso importante hacia el rechazo de la expresión GOTO y de su eficaz reemplazo por estructuras de control tales como el bucle while. El famoso título del artículo no era obra de Dijkstra, sino de Niklaus Wirth, entonces redactor de Comunicaciones del ACM. Dijkstra era un aficionado bien conocido de ALGOL, y trabajó en el equipo que desarrolló el primer compilador para este lenguaje. En ese mismo año creó el primer sistema operativo con estructura jerárquica, de niveles o capas. Fue denominado THE (Technische Hogeschool, Eindhoven) que se utilizó con fines didácticos.

Desde los años 1970, el principal interés de Dijkstra fue la verificación formal. La opinión que prevalecía entonces era que uno debe primero escribir un programa y seguidamente proporcionar una prueba matemática de su corrección. Dijkstra objetó que las pruebas que resultan son largas e incómodas, y que la prueba no da ninguna comprensión de cómo se desarrolló el programa. Un método alternativo es la derivación de programas, «desarrollar prueba y programa conjuntamente». Uno comienza con una especificación matemática del programa que se supone va a hacer y aplica transformaciones matemáticas a la especificación hasta que se transforma en un programa que pueda ser ejecutado. El programa que resulta entonces es sabido correcto por la construcción. Muchos de los últimos trabajos de Dijkstra tratan sobre las maneras de hacer fluida la argumentación matemática.

Respecto a su carácter árido y ácido, conocidas son su oposición a la instrucción GOTO y al lenguaje BASIC («mutila la mente más allá de toda recuperación»). Alan Kay expuso que[5]​ en informática, la arrogancia se mide en nanodijkstras.

Dijkstra murió el 6 de agosto de 2002 después de una larga lucha contra el cáncer.

Personalidad y modo de trabajo[editar]

Dijkstra en la pizarra durante una conferencia en el ETH Zurich en 1994

Dijkstra es conocido como un "personaje" en el mundo de las ciencias de la computación. En el prólogo de su libro "A Discipline of Programming", escrito en 1976, declaró la siguiente frase: "Debido a la ausencia de una bibliografía, no ofrezco ni explicación ni apología". De hecho, gran parte de sus artículos y libros no tienen ninguna referencia. Esta ausencia de referencias fue criticada por muchos investigadores. Sin embargo, Dijkstra eligió esta forma de trabajar para remarcar su autosuficiencia.

Aunque parezca irónico, Dijkstra, uno de los mayores desarrolladores del software de su época, evitó el uso de computadores en su trabajo durante décadas. Cuando, finalmente, sucumbió a la tecnología, únicamente utilizó los ordenadores para enviar correos electrónicos y hacer búsquedas en la red. Dijkstra nunca utilizó un computador para realizar ninguno de sus trabajos, todos ellos fueron realizados a mano.

Desde una edad muy temprana destacó por su ingenio y elocuencia. Cuando era pequeño le aseguró a su madre que no resolvería ningún problema o cuestión que le ocupará más de cinco líneas de un folio.

Dijkstra también destacó como escrito de ensayos. En uno de ellos, en tono humorístico describió una empresa ficticia en la que había trabajado como presidente llamada Mathematics. Inc. Esta empresa se había dedicado a comercializar teoremas matemáticos (un paralelismo a lo que estaba ocurriendo con las empresas tecnológicas, las cuales estaban haciendo una abusiva comercialización de los programas que desarrollaban). Al concluir este discurso Dijkstra aseguró que era la empresa más emocionante, y a la vez miserable jamás concebida.

Mathematisch Centrum, Amsterdam[editar]

Desde 1952 hasta 1962, Dijkstra trabajó en el Mathematisch Centrum en Amsterdam, donde colaboró con Bram Jan Loopstra y Carel S. Scholten, los cuales habían sido contratados para construir un computador. Su modo de trabajo fue muy disciplinado: en primer lugar, debían escribir un manual de programación. Posteriormente los diseñadores de Hardware debían tener fe en que Dijkstra, el programador, escribiera las líneas de códigos para una máquina todavía inexistente. De su experiencia aprendieron la gran importancia que tiene una documentación clara y que una tediosa depuración de un programa puede ser evitada si se ha hecho un diseño cuidadoso.

En este centro, Dijkstra y Jaap Zonneveld desarrollaron un compilador para el lenguaje de programación ALGOL, que tuvo una gran influencia en su posterior actividad científica.

Programación distribuida[editar]

Dijkstra fue uno de los pioneros en el establecimiento de la Programación distribuida. Gracias a este tipo de programación, Dijkstra fue el primero en presentar una solución al problema de exclusión mutua.

Especificación formal y verificación[editar]

Desde los años 70 el principal interés de Dijkstra fue la verificación formal. La verificación formal es un método de validación estática, en el que, partiendo de un conjunto de axiomas, reglas de inferencia y algún lenguaje lógico, se puede encontrar una demostración de un programa. En 1976 Dijkstra publicó su libro "A Discipline of Programming" el cual presentó su método de desarrollo sistemático de programas, junto con sus pruebas de corrección.

En su exposición, utilizó su Lenguaje de Comandos Guardados. Este lenguaje, con su dependencia en el no determinismo, la semántica de la precondición más débil y el método de desarrollo propuesto, produjeron un impacto considerable en el campo de las ciencias de ese momento.

En 1984, para añadir mayor apoyo a su enfoque de la programación, publicó junto con Wim Feijen un libro de texto para estudiantes de primer año de informática, llamado "Een methode van programmeren". La versión inglesa se publicó en 1988, llamada "A Method of Programming".

Ciencias de la computación y la programación[editar]

Dijkstra fue uno de los mayores oponentes de la visión de las ciencias de la computación desde el punto de vista de la ingeniería. Mediante el término "ciencias de la computación", que sustituyó a "ciencias del computador", Dijkstra quería hacer énfasis en los mecanismos abstractos que esta ciencia tiene.

Dijkstra consideraba que el trabajo de un programador no era la realización de programas, sino diseñar las distintas clases de computación para el posterior desarrollo de estos. Este pensamiento queda reflejado en su obra The Humble Programmer (1972).

También, se opuso a que la ingeniería del software estuviera bajo la tutela de la academia de la computación. Sobre esto, Dijkstra argumentó que, "Al igual que a la economía es considerada como "La Ciencia Miserable", a la ingeniería del software debería ser considerada como "La disciplina Condenada", debido a que no se acerca, ni siquiera, a su objetivo, ya que este es contradictorio en si mismo". [6]

Véase también[editar]

Referencias[editar]

  1. «Edsger Wybe Dijkstra». Stichting Digidome. 3 de septiembre de 2003. Archivado desde el original el 6 de diciembre de 2004. 
  2. O'Connor, J J; Robertson, E F (July 2008). «Dijkstra biography». The MacTutor History of Mathematics, School of Mathematics and Statistics, University of St Andrews, Scotland. Archivado desde el original el 11 de octubre de 2013. Consultado el 18 de enero de 2014. 
  3. Hoare, Tony (March 2003). "Obituary: Edsger Wybe Dijkstra". Physics Today. 56 (3): 96–98
    • Leslie Lamport Tal y como Lamport (2002) escribió, "Edsger W. Dijkstra inició el campo de los algoritmos concurrentes y distribuidos con su artículo de 1965 en CACM "Solución de un Problema en Control Programático Concurrente", en el cual era el primero que iniciaba y resolvía el problema de exclusión mutua. Ese artículo es probablemente el motivo por el que la PODC existe"
  4. Alan Kay on Dijkstra
  5. Dijkstra, Edsger. On the cruelty of really teaching computer science. 

Enlaces externos[editar]


Predecesor:
John McCarthy
Premio Turing
1972
Sucesor:
Charles Bachman