El Año de Turing

El Año de Turing

La informática a la que recurrimos para tuitear o hacernos una resonancia magnética es en esencia Alan Turing, uno de los científicos más importantes de la Historia. Fue un hombre generoso que afrontó con genialidad lógica horrores como el Nazismo pero al que el mundo devolvió sólo injusticia. Acercamos su obra a los lectores para que comprueben lo importante que fueron sus aportaciones. Creó la Informática tal y como la conocemos.

¿Computadores von Neumann, o computadores Turing?

Por: | 06 de septiembre de 2012

RICARDO PEÑA

ENIAC
Multitud de libros de informática afirman que el primer  computador electrónico de la historia fue el ENIAC, desarrollado en la Moore School de la Universidad de Pensilvania, coincidiendo con el final de la II Guerra Mundial, y que el primer computador con programa almacenado fue el EDVAC desarrollado poco después. También que su diseño se debió al genio del matemático estadounidense de origen húngaro John von Neumann. Nuestros computadores actuales repiten las líneas esenciales de ese diseño y por eso hablamos frecuentemente de una arquitectura “tipo von Neumann” para referirnos a un computador convencional que ejecuta sus instrucciones de forma secuencial y que almacena su programa en la misma memoria que los datos.

Los científicos no basan su prestigio EDVAC. VonNeumann y Oppenheimer aparecen en primer plano. en el dinero ni en el poder político. Su principal aspiración es que se de el crédito debido a sus ideas, y que se les atribuyan correctamente sus aportaciones a la ciencia. Por eso es importante que en este año de Alan Turing se le reconozcan a este científico británico sus contribuciones a la concepción y nacimiento práctico de los computadores electrónicos. Ya que en vida no pudo gozar del reconocimiento debido, es de justicia que en el aniversario de su nacimiento se le restituyan sus méritos, desconocidos durante muchos años debido al secreto que el Servicio de Inteligencia Británico impuso a sus importantes aportaciones durante la guerra.

Su artículo de 1936, On Computable Numbers, with an Application to the Entscheidungsproblem, fue la verdadera semilla de los computadores con programa almacenado. Aunque su propósito original era formalizar la idea de “procedimiento efectivo” que los matemáticos venían usando de manera informal, y su objetivo último era demostrar que no existía tal procedimiento para resolver el llamado “problema de decisión” (comprobar la veracidad o falsedad de cualquier fórmula lógica),  el trabajo tuvo como resultado colateral demostrar que existía una sola máquina, llamada posteriormente la Maquina Universal de Turing, capaz de calcular cualquier función computable. Una sola máquina podía en definitiva ejecutar cualquier algoritmo. Más aún, la descripción del algoritmo se podía almacenar de forma codificada en la misma cinta en la que se almacenaban los datos de entrada y los resultados intermedios y finales del cómputo. La cinta de una Máquina de Turing constituye su memoria. La descripción a su vez constaba de un conjunto de instrucciones elementales, cada una de las cuales decidía, por un lado la acción a ejecutar, y por otro cuál debía ser la siguiente instrucción a ser ejecutada. Las acciones eran tan simples como leer o escribir un símbolo, o/y desplazar la cabeza lectora una posición en la cinta. Como se aprecia, aquí aparecen ya todos los conceptos utilizados en un computador moderno con programa almacenado.

Este artículo, además de suponer una revolución en las matemáticas de la época, era perfectamente conocido, y apreciado en toda su profundidad, tanto por von Neumann como por Max Newman, el preceptor de Turing en Cambridge. Durante la guerra, Max Newman dirigió la construcción de Colossus, una máquina electrónica que fue decisiva para descifrar los mensajes de la máquina alemana Tunny, con la cual se codificaban los mensajes del alto mando. Gracias a ella, el día D (6 de junio de 1944) los aliados supieron que los alemanes no esperaban el gran desembarco en la costa de Normandía y ganaron unos días preciosos antes del contraataque alemán. Turing contribuyó a la concepción teórica de Colossus con algunos algoritmos, si bien el algoritmo principal se debió al criptógrafo Bill Tutte. El diseño electrónico y la realización práctica se debieron al ingeniero Tommy Flowers que utilizó por primera vez cientos de válvulas en una sola máquina. A partir del éxito de Colossus, tanto Turing como Newman fueron conscientes de que la electrónica digital era el camino apropiado para la construcción física de una máquina universal programable. Hay que señalar que Colossus funcionó por primera vez a finales de 1943, mientras que ENIAC no fue completada hasta 1945. Tanto uno como otro eran computadores electrónicos de propósito específico, el primero para el desciframiento de mensajes y el segundo para el cálculo de trayectorias balísticas. Tanto uno como otro eran programables en cierta medida, si bien cambiar la programación exigía reconectar cables y modificar interruptores de forma manual. La razón por la que ENIAC figura en muchos libros como el primer computador electrónico de la historia es que la información sobre Colossus no se desclasificó parcialmente hasta los años 70, y en su totalidad hasta 2004. Colossus

Acabada la guerra, tanto Turing como Newman se las ingeniaron para iniciar la construcción de un computador real. El primero en el National Physical Laboratory (NPL) en Londres, y el segundo en la Universidad de Manchester. Es cierto que, en paralelo, en Estados Unidos se inició el diseño de la EDVAC por parte del equipo original de ENIAC (los ingenieros John Mauchly y John Eckert) al que se había incorporado von Neumann. Decidieron que había que cambiar el aspecto más débil de ENIAC, su programación manual, y sustituirlo por un programa almacenado en memoria. El informe First Draft on a Report on the EDVAC, publicado en junio de 1945, da cuenta de ese diseño. Causó gran malestar a Mauchly y Eckert, y finalmente condujo a la disolución del equipo, que el informe fuera distribuido con la única firma de von Neumann. Al parecer se trató de una decisión de Herman Goldstine, supervisor militar del equipo. Independientemente de este detalle, que condujo a un largo juicio en los tribunales sobre la autoría del concepto de computador electrónico, no cabe duda de que von Neumann era perfectamente conocedor del artículo de Turing, si bien este no aparecía citado en el informe. A la inversa, el informe de Turing, Proposed Electronic Calculator, de finales de 1945 y mucho mas detallado que el de la EDVAC, donde exponía el diseño de su computador ACE, sí citaba el informe firmado por von Neumann, diciendo que ambos “han de leerse conjuntamente”. No puede afirmarse que el diseño de EDVAC fuera la inspiración para el de Turing puesto que ambos diseños eran bastante divergentes en multitud de aspectos. El más importante, que la ACE resolvía por software muchas operaciones que la EDVAC delegaba al hardware. Turing tenía pues su propia idea de lo que debía ser una máquina universal programable. Por otra parte, está documentado que la idea de construir un computador real con programa almacenado fue tema de frecuentes discusiones entre Turing y Max Newman en sus pocos momentos de relajo durante la guerra. Lo único que podemos constatar es que el informe sobre la EDVAC puso por primera vez por escrito la idea de almacenar el programa en memoria en una máquina real y no simplemente conceptual.

Por su parte, Newman Manchester Baby fue realmente el primero en  completar la construcción de un computador electrónico con programa almacenado. Se trató del Manchester Baby, terminado en 1948, tres años antes que EDVAC, y que usaba como memoria un tubo de rayos catódicos. Por ironía del destino, tampoco Newman figura para la historia como el autor de esta máquina, atribuida a Freddy Williams y a Tom Kilburn, ingenieros electrónicos que dirigieron su construcción. Como se documenta en Colossus: The secrets of Bletchley Park's Codebreaking Computers (editado por Jack Copeland en 2006), ambos fueron contratados por Newman e instruidos por este y por Turing sobre el diseño de un computador con programa almacenado. De hecho, Williams había sido inicialmente contratado por el NPL, e instruido por Turing, para colaborar en la construcción de la ACE, aunque el contrato se canceló al poco tiempo. La contribución de Williams y Kilburn fue sobre todo de ingeniería y muy en particular aportaron la realización por primera vez de una memoria sobre un tubo de rayos catódicos. En cambio, la EDSAC, completada en Cambridge por Maurice Wilkes un año después, y citada a veces como el primer computador de programa almacenado, siguió las líneas de diseño del informe de la EDVAC y utilizó como ésta una memoria de líneas de retardo de mercurio.

Se hace necesario pues reescribir la historia y atribuir a cada uno sus propios méritos. El primer computador electrónico de propósito específico fue Colossus en 1943 y no ENIAC, aunque es de justicia precisar que los ingenieros de ENIAC no conocían siquiera la existencia de Colossus y podríamos hablar por tanto de una reinvención del concepto. No obstante, también está documentado que el uso de válvulas para realizar cómputos ya estaba presente en la máquina inconclusa ABC de John Atanasoff, de la cual Mauchly tuvo conocimiento en una visita realizada a la Universidad de Iowa hacia 1941, antes de involucrarse en la ENIAC. La idea teórica de una máquina universal programable con programa almacenado en memoria ha de ser atribuida indudablemente a Turing. Podemos concluir que la realización práctica de un computador electrónico con programa almacenado fue un objetivo común a varios equipos de investigación al acabar la guerra. Tanto von Neumann, como Max Newman, Turing y Wilkes tenían ese propósito. El informe sobre la EDVAC en 1945 aceleró sin duda los acontecimientos en el Reino Unido, que no quería quedarse atrás en esa carrera. En cuanto a los primeros en conseguirlo, sin duda fueron el equipo de Newman en Manchester en 1948, aunque se trató de un computador “de juguete” con una memoria de tan solo 2.048 bits. El primer computador con cierta capacidad de cómputo fue la EDSAC de Wilkes, en 1949. La EDVAC, concebida por von Neumann, Mauchly y Eckert no llegó a funcionar hasta 1951. La EDVAC ni siquiera fue la primera máquina con programa almacenado en Estados Unidos, ya que Mauchly y Eckert emprendieron su propio camino y completaron su máquina BINAC en 1949. Un prototipo de la ACE, aunque ya no con la participación de Turing, que abandonó el proyecto en 1947, se completó en 1950 en el NPL. Turing tuvo también alguna influencia en el diseño de la máquina sucesora del Manchester Baby, la Ferranti Mark I, completada en la Universidad de Manchester en 1951.

Ricardo Peña es catedrático de la Universidad Complutense de Madrid.

Hay 11 Comentarios

Excelente artículo, Ricardo. Gracias por todas esas apreciaciones y precisiones sobre los primeros computadores digitales.

Muy interesante.
Por si alguien no lo conoce, ya que se publicó hace poco y creo que no está traducido or recomiendo Turing's Cathedral: the origins of the digital universe del historiador de la técnica G Dyson

Me ha gustado mucho el artículo.

Si no fuera por ellos, ahora mismo no estaríamos ni leyendo esto ni pudiendo comentar aquí.

El NUEVO método para PERDER PESO. ¡¡Un éxito en USA!! http://sn.im/24o439v

Tengo entendido que en paper, Turing cita a Church.
Concuerdo con Keith, el futuro son los lenguajes funcionales derivados del cálculo lambda de Church.

A Turing se le ha vilipendiado desde el principio, incluso desde su propio país.

Church fue el director de tesis de Turing, pero con posterioridad a 1936 en que éste publicó su artículo "On computable numbers ..." que es la base de la computación imperativa actual, y por el que se pide el reconocimiento en base a que los computadores de hoy dia son procedurales, siguiendo la denominada "arquitectura Von Neumann", que según el autor del post debería denominarse arquitectura Turing, con lo que concuerdo.

@Gambi: AlanTuring fue alumno de Church.

@Keith: Creo que lo justo es dejar ese "Alonzo Church" y ese modelo basado en cálculo Lambda que citas para otro momento. Este articulo habla de reconocer los méritos que se negaron a un señor que influyó sobremanera a la historia pasada de la computación. Creo entender que hablas del presente o del futuro cercano de la computación.

Por qué no se le da a Alonzo Church el reconocimiento que merece? Sobre todo cuando el modelo de programación que se está imponiendo, y que parece ser el que se impondrá en el futuro cuando caduque la Ley de Moore, se parece más al cálculo lambda que a la máquina de Turing.

Publicar un comentario

Si tienes una cuenta en TypePad o TypeKey, por favor Inicia sesión.

Sobre los autores

Este blog es una obra colectiva en la que participarán científicos y expertos españoles y extranjeros cuya obra haya bebido de las aportaciones de Alan Turing. Aunque principalmente recogerá los avances científicos en la Informática, abarcará otras opiniones sobre la importancia de la misma en otros ámbitos: la Medicina, la Física, la Política, la Economía. El blog está coordinado por Pedro Meseguer y Juan José Moreno Navarro.

Archivo

julio 2013

Lun. Mar. Mie. Jue. Vie. Sáb. Dom.
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

El País

EDICIONES EL PAIS, S.L. - Miguel Yuste 40 – 28037 – Madrid [España] | Aviso Legal