JUAN JOSÉ MORENO NAVARRO / PABLO NOGUEIRA / RICARDO PEÑA / MYRIAM REDONDO
Hace unas semanas Sir Charles Anthony Richard Hoare (C.A.R. o simplemente Tony Hoare) visitó Madrid. Tony Hoare es un investigador en Informática muy prestigioso, que recibió el Premio Turing (considerado como el Nobel en Informática) en 1980, por sus investigaciones sobre lenguajes de programación.
Tony Hoare es uno de los grandes artífices de muchos elementos de la Informática tal y como la entendemos hoy, con aportaciones brillantes en muchas materias, desde la manera en que interaccionan programas que se ejecutan a la vez (concurrencia) a la forma en que puede comprobarse que un programa cumple su cometido (lo que le entronca con Alan Turing que ya atisbó que esto era un problema y dio soluciones iniciales) pasando por el desarrollo de varios lenguajes de programación (Algol, Pascal, Occam, …) o algoritmos (Quicksort).
Para los que hayan estudiado Informática necesita poca presentación ya que sus contribuciones son materia de estudio en varias asignaturas. Para el resto, solamente indicar que Tony Hoare es uno de los más grandes y brillantes investigadores en la historia de la Informática y que sus ideas han contribuido a que disfrutemos de avances muy significativos: cada vez que un computador ordena una serie de datos, lo hace con un algoritmo de su invención, cuando tu PC permite que dos programas se ejecuten a la vez (por ejemplo, se descarga el correo mientras editamos una carta) lo hace gracias a las ideas de Hoare).
Aprovechando su presencia en España en el año del centenario del nacimiento de Alan Turing, hemos hecho esta entrevista en donde repasamos su actividad investigadora así como algunos temas de actualidad en Informática. Dada la longitud de la entrevista, la hemos dividido en dos partes. A continuación, presentamos la primera parte de la entrevista.
Es usted probablemente el científico más conocido o más leído actualmente en Informática, y con toda seguridad lo es entre nuestros estudiantes. Para alguien que no conozca su obra, ¿cuál de sus numerosas aportaciones destacaría?
Tuve mucha suerte al principio de mi carrera. Aprendí sobre computadores ya en 1958, al interesarme sobre la clasificación, sobre la ordenación correcta de números dentro de un computador. Planteé un nuevo método para hacerlo, lo llamé Quicksort porque era más rápido que otros métodos conocidos en la época. Resulta que sigue siendo más rápido que la mayoría de otros métodos en la actualidad. Es ampliamente utilizado en todo el mundo y es el trabajo por el que me suelen presentar.
Desde entonces mi principal línea de investigación ha seguido una de las líneas de pensamiento abiertas por Turing. Empezó en 1948 pero luego fue olvidada, sólo para ser “reinventada” varias veces después por la Informática. Yo la retomé en 1968 cuando iniciaba mi carrera académica como profesor en la Queen’s University de Belfast. Entonces decidí que convertiría aquello en el objeto de investigación de mi vida investigadora. Y lo hice. Sabía que no sería aplicable a la industria al menos hasta que pasaran 30 años, casi cuando yo me retirase, pero a pesar de ello en aquel tiempo fue aceptado como tema académico.
A eso dediqué toda mi carrera y creo que eso es probablemente lo que me permitió aportar todos los logros subsecuentes. Solía pasar cinco años para escribir un único artículo. Y ahora un profesor joven tiene que escribir dos artículos al año. No se puede comparar. El artículo que me costó cinco años escribir (mientras investigaba a la vez) es a día de hoy el más citado en el ámbito de la Informática, me ha hecho famoso. Es sobre concurrencia y sobre cómo conseguir que cooperen los computadores operando simultáneamente y solucionando grandes problemas a través de la colaboración más que a través de la división.
Tenemos muchos computadores operando a la vez y yo diseñé un cierto esquema, un tipo de lenguaje de programación, para que esta colaboración fuera posible. Se llamó “procesos secuenciales comunicantes” y una compañía británica de computadores lo convirtió en la base del diseño de un hardware que derivó en el transputer [arquitectura pionera de los actuales microprocesadores]. Despertó bastante interés principalmente entre académicos, pero también entre expertos en control de procesos. Los transputer han continuado haciéndose casi hasta hoy, forman parte de los decodificadores actuales y en particular de los de televisión. Entre mis logros puede decirse que éste es el que ha tenido mayor aplicación práctica directa.
Vídeo sobre el funcionamiento del algoritmo Quicksort:
¿Cómo se le pueden resumir al ciudadano corriente las principales aportaciones de Alan Turing para la sociedad?
Turing fue el creador de la Informática. Inventó el tipo de computador que vemos hoy en día por todas partes. Inició la programación de los computadores digitales. Consiguió uno de los primeros diseños completos para construir un computador “físico” en 1945. También fue el fundador de la Inteligencia Artificial, planteó que los computadores pudieran simular la inteligencia humana. Además de todo esto, él obtuvo varios logros científicos y matemáticos que son ampliamente utilizados todavía hoy, como ocurre con sus ideas aplicadas a la biología. Definitivamente, es uno de los mayores contribuyentes a la ciencia moderna. Hay una biografía suya muy buena, escrita por Andrew Hodges. Tras leerla sientes que realmente le conoces mejor, y además el libro aborda también sus aportaciones científicas, que obviamente fueron muy importantes para él y que también resultaron serlo para nosotros.
En comparación con otros científicos, la vida de Alan Turing fue bastante excitante, casi como una película, pero no mucha gente la conoce aquí.
Creo que empieza a ser más conocido en Reino Unido. Están poniendo su nombre en calles, placas… Pero además este año con motivo de su centenario se están celebrando sus logros en todo el mundo.
El hecho de que haya costado que la gente vaya conociéndole, ¿se debe a que la Informática en sí es poco conocida, complicada?
En general los científicos no son muy conocidos. Pero además el caso de España puede ser específico ya que Turing es sobre todo conocido por sus trabajos durante la II Guerra Mundial, en la que los participantes fueron otros países europeos.
Usted recibió el Premio Turing por contribuir a definir y diseñar lenguajes de programación. ¿Hay espacio para nuevos lenguajes de programación, para el descubrimiento de nuevos paradigmas? ¿Cuál es su lenguaje de programación favorito? ¿Hay algún orden de preeminencia en esta Torre de Babel que son los lenguajes de programación?
Los lenguajes de programación fueron precisamente la forma en la que yo me interesé por la verificación de programas, porque en 1968 planteé que un lenguaje de programación debería ser diseñado de un modo que hiciera más fácil el verificar la corrección de los programas. Porque el trabajo del programador no es sólo escribir programas sino escribir programas que funcionen. Algunos lenguajes de programación simplemente lo hacen difícil. Los programas que yo diseñé conllevaban un cierto método de razonamiento que permite seguir pasos bien definidos y en fin, que permiten el buen funcionamiento desde el mismo inicio.
Estoy muy a favor de los lenguajes de programación funcionales como Haskell. Pero me van gustando cada vez más los lenguajes de programación procedurales, cuanto más los entiendo y más comprendo cómo comprobar su corrección. Creo que mis investigaciones han podido ayudar en este sentido, en particular con respecto a la demostración de corrección dentro de la cooperación de computadores concurrentes.
Hay un tercer paradigma, que es el de la programación lógica, que es muy diferente de estos otros dos. No está específicamente pensado para que escribas un algoritmo, está indicado más bien para aquellos programas en los que no sabes el orden en que se están llevando a cabo las transformaciones, como programas probabilísticos en los que ni siquiera sabes del todo cómo va a ser el programa porque éste funciona bajo la norma de la probabilidad más que por reglas fijas almacenadas previamente en el computador.
Creo que estos son los principales tres paradigmas, con puntos de encuentro y de desencuentro, y que pueden llegar a ser particularmente útiles si se combinan de modo adecuado sacando lo mejor de cada uno en aplicaciones específicas. Esa es mi principal línea de interés en estos momentos: formas de incrustar diferentes lenguajes en un marco común, y que podamos crear aparatos o herramientas en cualquiera de los lenguajes que queramos utilizar, incluso combinándolos.
Ya ha mencionado que una de sus principales líneas de investigación es la verificación de programas, una preocupación que ya ocupó a Turing, como reflejó en un artículo científico. ¿Hasta qué punto la verificación de programas es realmente un problema? ¿Cómo de cerca estamos de una solución?
El problema tiene todo el aspecto de agravarse a medida que los programas se van haciendo más grandes, a medida que se incorporan más a nuestras actividades diarias, a la sociedad, a la industria, a las ciencias, a los aviones. Los programas que controlan estos aparatos son todavía relativamente simples, de menos de un millón de líneas de código (la parte crítica, probablemente tiene menos de 100.000 líneas) y ya se invierten una gran cantidad de dinero en comprobarlos.
Una de las primeras aplicaciones de métodos de verificación es para reducir el coste de comprobación de los programas que nunca deben fallar, nunca. Son programas que van a funcionar durante 20 años, que van a funcionar en miles de aviones, 24 horas al día, siete días a la semana, sin que pueda decirse que un solo accidente ha estado provocado por el software. Más o menos se consigue este objetivo, pero es muy caro. El tipo de investigación que realizo sobre verificación espero que abarate gradualmente estos procesos.
Juan José Moreno Navarro es catedrático de la Universidad Politécnica de Madrid e investigador sénior del instituto IMDEA Software.
Pablo Nogueira es profesor ayudante doctor en la Universidad Politécnica de Madrid.
Ricardo Peña es catedrático de la Universidad Complutense de Madrid.
Myriam Redondo es periodista.
Hay 1 Comentarios
Mil gracias a Alan Turing y a Tony Hoare por su trabajo. Os dejo una trivia que tiene que ver con el tema:
¿Puedes decirnos a qué países pertenecen los códigos de internet que te presentamos? http://www.dwaroo.com/Play_Quiz.aspx?Gid=1809
Publicado por: Yo sólo sé que no sé nada | 09/08/2012 16:30:58