RICARDO PEÑA
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
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.
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
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.
Publicado por: JAP | 17/09/2012 20:24:33
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
Publicado por: iñaki | 11/09/2012 14:14:59
Me ha gustado mucho el artículo.
Publicado por: cerrajeros la linea de la concepcion | 11/09/2012 13:40:26
Si no fuera por ellos, ahora mismo no estaríamos ni leyendo esto ni pudiendo comentar aquí.
Publicado por: cerrajeros algeciras | 11/09/2012 12:49:38
El NUEVO método para PERDER PESO. ¡¡Un éxito en USA!! http://sn.im/24o439v
Publicado por: perder peso | 09/09/2012 7:21:29
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.
Publicado por: Fernando | 07/09/2012 18:21:38
A Turing se le ha vilipendiado desde el principio, incluso desde su propio país.
Publicado por: Sergio | 07/09/2012 14:40:22
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.
Publicado por: Alf | 07/09/2012 13:28:29
@Gambi: AlanTuring fue alumno de Church.
Publicado por: Keith | 06/09/2012 15:52:16
@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.
Publicado por: Gambi | 06/09/2012 13:13:56
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.
Publicado por: Keith | 06/09/2012 9:13:41