DAVID DE FRUTOS
RICARDO PEÑA
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 en http://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.
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 la programació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ón go-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.
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.
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.
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 por Theoretical), 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.
Hay 6 Comentarios
Simplemente maravilloso. Excelente!!!... Es un gusto haber leido esta nota...
Publicado por: Mario Rossainz López | 06/05/2013 23:59:43
motu proprio, profes... ;)
Publicado por: Luis Aguirre | 22/04/2013 11:52:20
excelente nominación, su arduo trabajo ha contribuido enormemente a la sociedad, personas como estas son las que necesitamos forjar en nuestras universidades.
Publicado por: Gestion del desempeño | 17/04/2013 0:53:51
ni habia nacido cuando Hoare ya habia recibido un premio .....
http://www.newshub.es/ noticias en tiempo real
Publicado por: newshub.es/ | 16/04/2013 18:59:34
◄◄◄VIDEO SORPRENDENTE Revela Como Perder 22KG EN 45 DIAS. ►►►
★★★¡¡¡Visto Por Más de 100.000 PERSONAS!!!★★★
►►►►►►MIRALO AQUI: http://goo.gl/FCa41
Publicado por: ◄◄◄◄◄◄¡¡¡COMO BAJAR 22KG YA!!!!►►►►►►► | 16/04/2013 16:41:25
Tu país necesita tu ayuda en un nuevo juego de estrategia militar, economía y política online. Registrate en gratis en [ http://bit.ly/War1234 ] desde tu navegador.
Publicado por: Mardoner | 16/04/2013 8:15:38