Sistema de blogs Diarium
Universidad de Salamanca
Gustavo Santos-García Blog
Universidad de Salamanca
 

Tony Hoare Doctor Honoris Causa por la Universidad Complutense

Año Turing

Tony Hoare Doctor Honoris Causa por la Universidad Complutense

BY: DAVID DE FRUTOS. RICARDO PEÑA

16 de abril de 2013

http://blogs.elpais.com/turing/2013/04/tony-hoare-doctor-honoris-causa-por-la-universidad-complutense.html

 

Toni Hoare

Sir Charles Antony Richard Hoare, conocido inicialmente entre los informáticos como C. A. R. Hoare, y más coloquialmente como Tony Hoare, es uno de los científicos y académicos que más huella han dejado en nuestra disciplina. Recibió el Premio Turing en 1980, fue nombrado miembro de la Royal Society en 1982, y Sir por la Reina Británica en 2000. En su larga vida científica, ha sentado los fundamentos de muchas de las teorías y técnicas que hoy enseñamos en las facultades de Informática de todo el mundo, tanto a nivel de grado como de posgrado. Sus aportaciones han contribuido decisivamente a hacer de la programación de computadores una disciplina científicamente fundada, partiendo de una situación inicial en la que parecía más un arte, o un oficio artesanal, que una ciencia. Tony Hoare será investido Doctor Honoris Causa por la Universidad Complutense de Madrid el próximo 10 de mayo. Con estas líneas, queremos glosar su figura y su obra para que los informáticos más jóvenes y la sociedad en general conozcan más de cerca quién es este gran científico, y aprovechar la ocasión para invitaros a los distintos actos que se organizarán en nuestra Universidad con motivo de su visita.

Tony Hoare nació en Colombo, capital de Sri Lanka, antigua Ceilán, y se graduó en lenguas clásicas y filosofía por la Universidad de Oxford en 1956. Comenzó trabajando en la Universidad Estatal de Moscú, donde ideó su famoso algoritmo de ordenación quicksort,un algoritmo de ordenación en memoria cuya eficiencia promedio supera a la de todos los otros algoritmos de ordenación previos y posteriores (un vídeo ilustrativo se puede ver enhttp://www.youtube.com/watch?v=m1PS8IR6Td0). Entre 1960 y 1968 trabajó para la empresa británica Elliot Computers, una de las primeras compañías europeas que fabricaban computadores científicos. En 1968 pasó a la Queen University of Belfast y fue profesor allí hasta 1977. A partir de esa fecha pasó a liderar el Programming Research Group de la Universidad de Oxford, donde transcurrió la mayor parte de su carrera profesional. Actualmente es Investigador Principal en el Microsoft Research Center de Cambridge (UK).

Su artículo de 1969 “An axiomatic basis for computer programming”, visto en perspectiva, puede considerarse como el equivalente a las Leyes de Newton de la programación. Por primera vez se enunciaban unas leyes lógicas que permitían comprender el significado de los programas independientemente de las máquinas que los ejecutan. Su lógica, llamada posteriormente en su honor Hoare Logic, sentó las bases para el razonamiento matemático sobre la corrección de los programas y continúa siendo usada intensamente en la actualidad. Con ella se ha descrito la semántica de numerosos lenguajes de programación.

IBM 360

Estos años, los finales de los 60, son cruciales para  la historia de la programación. Son años de fracasos estrepitosos en el desarrollo de grandes sistemas software, como el del paradigmático sistema operativo OS/360 de IBM. Se habla abiertamente de una “crisis del software”. Se acuña el término “ingeniería del software” más con la intención de expresar un deseo que de describir la realidad predominante, en la que el software se construía con muy poca técnica y con unos lenguajes completamente inseguros. Tony Hoare contribuyó en gran medida a cambiar esta situación, actuando en varias direcciones: primeramente, criticó duramente los lenguajes como PL/I y Algol-68 que eran más bien parte del problema. En ese sentido, abandonó junto con otros colegas el grupo IFIP WG 2.1 ocupado en la definición de este lenguaje Algol-68, y  se unió al grupo WG 2.3 que había de definir buenas metodologías de programación. En su opinión, los lenguajes debían venir después y no antes de las metodologías. En segundo lugar, fue cofundador del movimiento llamado de laprogramación estructurada, editor del libro original con dicho nombre y autor de uno de sus tres capítulos.  Este libro contenía las semillas cuyos frutos disfrutamos hoy y que todavía son parte esencial de las metodologías actuales: la necesidad de razonar formalmente sobre los programas y de disminuir el número de detalles a tener en cuenta simultáneamente, la técnica llamada de diseño descendente, el encapsulamiento de las estructuras de datos, la peligrosidad de usar la instruccióngo-to, y otras ideas que chocaban frontalmente con las prácticas del momento. Finalmente, colaboró con su colega Niklaus Wirth en el desarrollo del lenguaje Pascal, el lenguaje de referencia de la programación estructurada, y proporcionaron una semántica formal para el mismo. Era la primera vez que a un lenguaje de programación se le daba un significado matemático.

Niklaus Wirth

 

Su trabajo de 1972 “Proof of correctness of data representations” extiende el razonamiento formal a las estructuras de datos que implementan un tipo abstracto, concepto este último en el origen de lo que hoy conocemos como programación orientada a objetos. Su concepto de invariante de la representación se enseña actualmente en los cursos de estructuras de datos.

A partir de 1974, sus trabajos sobre monitores proporcionan un mecanismo elegante y fiable para gobernar la concurrencia en un solo computador, y para razonar sobre la corrección de este tipo de programas.  Los programas concurrentes proporcionan la ilusión de que el computador realiza varias tareas simultáneamente y se trata de un tipo de programación mucho más difícil y propensa a errores que la secuencial. Gracias a los monitores de Hoare no serán ya posibles desastres como los del sistema OS/360 previamente citado.

 

Libro "Communicating Sequential Processes"

Muy poco después, aparecen en el mercado los primeros microprocesadores y se hace evidente que la programación concurrente va a convertirse enseguida en programación distribuida en la que intervendrán muchas máquinas simultáneamente. Con ello, los mecanismos preexistentes -incluidos sus monitores-, que suponen la existencia de una memoria común, van a quedar obsoletos. Es el primero en proponer un mecanismo y un lenguaje, sus Communicating Sequential Processes (CSP) de 1978, para domesticar el nuevo monstruo. La compañía INMOS, que fabrica redes de microprocesadores, se inspira en ellos y le pide su colaboración para desarrollar el lenguaje Occam. Se trata de un bello ejemplo de transferencia entre la universidad y la industria y de cómo las buenas ideas se pueden transformar en muy poco tiempo en productos industriales útiles para la sociedad.

Por todos estos méritos, en 1980 recibió el Premio Turing de la ACM (Association for Computer Machinery), considerado en el ámbito informático como el equivalente a los Premios Nobel.

Premio Turing

En la mención del premio se indica que “su trabajo se caracteriza por una combinación inusual de profundidad, originalidad, elegancia e impacto”.  En su conferencia de aceptación del premio aprovecha para arremeter contra el lenguaje Ada, que representaba el estado del arte en ese momento, por su excesiva complejidad.

Lejos de dormirse en los laureles tras semejante reconocimiento, Hoare continúa trabajando sobre concurrencia, dándose cuenta de que resulta inevitable asumir el no-determinismo de los procesos concurrentes, al estar controlada su ejecución por un mecanismo asíncrono, que renuncia a controlar la velocidad relativa de las distintas componentes que evolucionan simultáneamente dentro de un sistema. En definitiva se trata de introducir una idea de abstracción, de manera que la corrección de los programas ha de estar basada en razonamientos formales bastante más complejos que los desarrollados para garantizar la corrección de los programas secuenciales. Además el uso sistemático de estos formalismos resulta ahora ineludible, pues el no-determinismo hace que en general la ejecución de los programas concurrentes se vuelva irreproducible, terminando así con la posibilidad de probar los programas concurrentes, como resultaba habitual hacer con los programas secuenciales.

Surgen así las Algebras de Procesos, cuyo primer ejemplo fue el modelo TCSP (T porTheoretical), que pronto pasó a denominarse simplemente CSP, una vez que la comunidad científica consensúa con Hoare y su equipo el hecho de que este modelo formal, basado en su lenguaje anterior, es aún más importante para estudiar la esencia de la concurrencia.

Es de justicia citar aquí los trabajos que en paralelo con él realizó Robin Milner, dando lugar al modelo CCS. Podríamos hablar de una rivalidad amistosa entre estos dos grandes genios, que por supuesto fueron bien conscientes del carácter complementario de sus dos modelos, siendo por tanto interesante continuar con el desarrollo de ambos, que de hecho se beneficiaron de un fenómeno de fertilización cruzada entre ellos.

Desde mediados de los noventa,  después de su jubilación como Profesor para pasar a ser Investigador en Microsoft Research, y llegando ya hasta la actualidad, en la que todavía permanece en activo, Hoare se embarca en dos magnas aventuras en parte relacionadas entre sí. Se trata de las Teorías Unificadoras de la Programación y el gran reto que constituye la realización de un Compilador capaz de Verificar los programas que compila, asegurando de ese modo la corrección de los mismos. En la primera de esas aventuras se inspira en la unificación de las fuerzas en Física, y de nuevo persigue ese objetivo de fertilización cruzada: una vez unificados los distintos modelos que permiten la especificación y diseño de procesos, podremos transferir las definiciones de los distintos procesos de un marco a otro, y ayudarnos en cada momento de todos los resultados y técnicas que se hayan desarrollado en cada modelo por separado.

Cada artículo de Hoare se convierte inmediatamente en un clásico que es ampliamente citado por trabajos posteriores de otros investigadores. De hecho, las estadísticas muestran que su trabajo inicial sobre CSP es el tercero más citado en la historia en las publicaciones científicas sobre Informática. Sin embargo, en una entrevista que concedió recientemente a un periódico español, Tony Hoare nos alertó con rotundidad del peligro de medir la capacidad científica de los investigadores por el número de artículos que publican cada año. Esta práctica, extendida por las agencias de evaluación y universidades del todo el mundo incluida España, es muy perniciosa para la creación de buena ciencia. Estimula la fragmentación innecesaria de los trabajos, la repetición parcial de los mismos, y el no realizar suficiente experimentación antes de enviar el trabajo a publicar. Algunos de sus trabajos más citados ocuparon a Hoare más de dos años de investigación. Seguramente más de una agencia de evaluación le habría llegado a reconvenir por su limitada  productividad. Otro dato que revela su exquisito cuidado por el trabajo bien hecho es que llegó a retirar motu propio un artículo de la prestigiosa revista Communications of the ACM, una vez que este había sido aceptado por el Comité Editorial, sólo porque no estaba del todo satisfecho con el mismo, y había descubierto una forma de mejorarlo.

Como indicamos en nuestra introducción, el próximo 10 de mayo Tony Hoare será investido Doctor Honoris Causa por la Universidad Complutense en su Facultad de Informática. Además, él se ha ofrecido generosamente a dar una conferencia de carácter divulgativo el día 9, que tendrá lugar en la Facultad de Matemáticas, con el sugerente título “Could computers understand their own programs?”, sin duda relacionado con la última de las temáticas arriba tratadas. La conferencia se enmarca en el Distinguished Speaker Program de la ACM y contará con la colaboración del ACM Chapter radicado en la Universidad Rey Juan Carlos de Madrid. De estos actos, y algunos otros relacionados, se podrá encontrar detalle en lás páginas web de la Universidad, y más específicamente en las de los dos citados Centros.

David de Frutos y Ricardo Peña son catedráticos de la Universidad Complutense de Madrid.

, ,

Comments are closed.
Política de privacidad
Studii Salmantini. Campus de excelencia internacional