martes, 25 de junio de 2013

LA HUELLA EUROPEA EN EL DESARROLLO DE LAS PRIMERAS MÁQUINAS DE CALCULAR Y COMPUTADORES

http://blogs.elpais.com/turing/2013/04/la-huella-europea-en-el-desarrollo-de-las-primeras-maquinas-de-calcular-y-computadores.html

De Blaise Pascal a Maurice Wilkes

ALBERTO PRIETO ESPINOSA

     En la conmemoración del centenario del nacimiento de Alan Turing, muy merecidamente se han destacado las dotes de este extraordinario personaje. Me mueve a escribir estas líneas pensar que muchas personas erróneamente crean que la contribución europea al desarrollo de las primeras máquinas de calcular y computadores se circunscribe al loable trabajo de Turing; cuando ha habido otros pioneros, algunos coetáneos a él, que también destacaron por su inteligencia e imaginación en este campo. Voy a referirme básicamente a aspectos de ingeniería, a máquinas en sí, no a aspectos teóricos.

     La historia reconoce que las primeras máquinas de calcular, basadas fundamentalmente en ruedas dentadas y engranajes, fueron desarrolladas en Europa, destacando las siguientes contribuciones:
  • Blaise Pascal (1624) ideó y construyó la primera calculadora mecánica para sumar y restar (Pascalina). La desarrolló para ayudar a su padre que era recaudador de impuestos de la alta Normandia, nombrado por el cardenal Richelieu.
  • Gottfried W. Leibnitz (Leipzig) en 1671 concluyó una máquina
    que, Aritmómetromediante el uso de cilindros escalonados, incluía por primera vez el producto y la división.
  • Charles Xavier Thomas de Colmar (Francia) patentó 
    el 18 de noviembre de 1820 el Aritmómetro, que fue la primera calculadora de sobremesa capaz de realizar las cuatro operaciones básicas de forma sencilla y sin errores con resultados de hasta 12 cifras.
      Mención aparte merece Charles Babbage que ideó en 1837 su Máquina Analítica, e introdujo conceptos fundamentales como:
  • Máquina AnalíticaLa definición de una estructura funcional para las máquinas de calcular: almacén (lo que hoy denominamos “memoria”), taller (en la actualidad “unidad aritmético-lógica”), y unidades de entrada y salida.
  • La noción de programabilidad de la máquina, por medio del
    encadenamiento automático de secuencias por medios
    mecánicos.
Brunsviga     En 1982 la empresa alemana GNC (Grimme, Natalis & Co.) diseña la calculadora mecánica de sobremesa “dupla” Brunsviga, siendo de las más utilizadas en el mundo desde 1885 hasta la década de los 1950. En 1955 la empresa ocupaba a más de mil personas y hasta 1957 se fabricaron más de 500.000 de esas máquinas en varios modelos. 

 El Ajedrecista     Dentro de los sistemas mecánicos de cálculo que se concibieron en aquella época conviene hacer referencia a la contribución del español Leonardo Torres Quevedo (1852-1936). En la línea de Babbage trabajó en la construcción de máquinas automáticas de cálculo analógico, siendo celebre su estudio sobre “máquinas algebraicas” que presentó en las academias de ciencias española (1893) y francesa (1900). En la Feria Mundial de Paris de 1914 presentó una máquina (El Ajedrecista) que jugaba automáticamente un final de rey y torre contra el rey de un oponente humano.  Siempre ganaba, pero no en un número mínimo de movimientos. El 6 de noviembre de 1915 en la revista Scientific American se citaba a este trabajo como "Torres and His Remarkable Automatic Device“.

     Sin lugar a dudas dos de los europeos que más contribuyeron en el desarrollo de los primeros computadores fueron el alemán Konrad Zuse (1910-1995) y el inglés Maurice Wilkes (1913-2010). Zuse trabajó en la  Ford Motor Company y en la Henschel Aircraft Factory ubicadas en Berlin-Schönefeld. Su trabajo requería realizar muchos operaciones matemáticas a mano, lo que le llevó a proyectar sistemas automáticos de cálculo. Así, en  mayo de 1941 concluyó el Z3 que es considerado como el primer computador controlado por programa en funcionamiento. Este computador estaba proyectado para realizar cálculos aeronáuticos y no era de uso general, y utilizaba en su construcción relés de telefonía. Otro hecho notable es que era entre Konrad Zuse4 y 5 veces más rápido que el computador Mark I, concluido 3 años más tarde por  Howard T. Aiken en la Universidad de Harvard  con la colaboración de IBM. De 1943 a 1945 definió un lenguaje de programación de alto nivel que denominó Plankalkül  (“Plan de Cálculo”). Posteriormente construyó el Z4 que se convirtió en 1950 en el primer computador comercializado del mundo (un año antes que el UNIVAC I en Estados Unidos).

     Desde un  punto de vista conceptual, la contribución de Sir Maurice Wilkes (Universidad de Cambridge) a la   arquitectura de computadores fue fundamental. En el verano de 1946  Wilkes asiste a un curso de verano sobre computadores electrónicos  impartido por Mauchly y Eckert en la Moore School (Filadelfia). Estos investigadores acababan de concluir el ENIAC, que puede considerarse como el primer computador electrónico del mundo. Durante esta estancia cae en sus manos el documento First Draft of a Report on the EDVAC donde John von Neuman proponía la idea de introducir los programas en una memoria como si fuesen datos y junto a estos (programa almacenable en memoria). Literalmente en una noche “devora” este documento (no había por entonces fotocopiadoras) que tenía que devolver con premura.

      A su vuelta a Cambridge concibe el EDSAC que construye en tres años y, se adelanta al EDVAC, ya que ejecuta su primer programa el 6 de mayo de 1949. El EDSAC es considerado el primer computador operativo de programa almacenado. Algunas aplicaciones del EDSAC fueron:
  • 1950, resolución de ecuaciones diferenciales que modelan la frecuencia de generación de genes (primer uso del computador para resolver un problema en el campo de la biología)
  • EDSAC1951, obtención de un número primo de 79 dígitos.
  • 1952, desarrollo del primer videojuego del mundo: el tres en raya (OXO). La salida gráfica se obtiene en una pantalla de un osciloscopio (CRT).
  • 1960, recopilación de una serie de evidencias numéricas sobre las soluciones de las ecuaciones elípticas.
     En 1951 Wilkes publica con David J. Wheeler y Stanley Gill el primer libro del mundo sobre programación de computadores “The preparation of programs for an electronic digital computer”. Personalmente opino que la contribución más notable a la arquitectura de computadores de Wilkes, que tuvo también lugar en 1951, fue el concepto de unidad de control microprogramada. Supuso una alternativa para el diseño de los computadores, y que para poner de manifiesto su ingenio paso a describir a continuación.

     Una unidad de control tradicional o “cableada” (“hard-wired”) de un computador está constituida por componentes electrónicos interconectados (mediante cables o conductores) que generan las señales eléctricas de control para monitorizar el funcionamiento de los distintos elementos del sistema. Obviamente, un modelo de computador distinto a otro requiere de una unidad de control distinta con diferentes circuitos e interconexiones. La ejecución de una instrucción lleva consigo la generación por la unidad de control de una serie precisa y ordenada en el tiempo de señales de control binarias. Pues bien, la genial idea de Wilkes consiste en sustituir la unidad de control cableada por una memoria especializada (de control) que tenga almacenados los valores de las señales de control. El conjunto de valores de las señales de control correspondientes a la ejecución de una instrucción se denomina “microprograma”, diciéndose por ello que  estas unidades de control son microprogramadas.

      Una unidad de control microprogramada es como si hubiese un computador de control dentro del  computador. Podemos pasar de un computador a otro sin más que cambiar los microprogramas almacenados en su memoria de control. Las ventajas que se obtienen son: facilidad de diseñar e implementar nuevos procesadores, posibilidad de que con una misma estructura hardware  se puedan emular distintas arquitecturas, facilidad de migración dentro de una serie de computadores, y computación reconfigurable. Hablando con rigor, cuando decimos que una persona debe de “cambiar el chip” deberíamos decir “debe de cambiar los microprogramas”, lo cual sería  mucho más sencillo de realizar.

     El concepto de unidad de control microprogramada, ha sido ampliamente adoptado por la industria desde sus orígenes hasta la actualidad. Una gran parte de los procesadores de uso general actuales lo utilizan, así como sistemas más especializados como es el caso del co-procesador Reality de la Nintendo 64 o las unidades vectoriales VU0 and VU1 de la Sony PlayStation 2.

Maurice Wilkes      Me gustaría no concluir estas líneas sin relacionar la vida de Maurice Wilkes con la de Alan Turing. Los dos fueron coetáneos, es más, estudiaron un grado en matemáticas en la misma clase en la Universidad de Cambridge obteniendo exactamente las mismas calificaciones. Como confesó el propio Wilkes, posteriormente sus encuentros fueron ocasionales, eran plenamente cordiales aunque encontraba a Alan reservado en sus maneras, existiendo cierta rivalidad entre ellos. Turing fue un pionero de la computación teórica describiendo un computador sobre el papel, mientras que Wilkes construyó el primer computador operativo de programa almacenado del mundo y desarrolló conceptos de arquitectura y métodos de programación que aún hoy día se siguen utilizando. Otro contraste notable entre ellos: mientras Alan Turing vivió sólo 42 años (1954), Wilkes murió con 97 (2010). Curiosamente Maurice recibió el premio Alan Turing (considerado el Nobel de la Informática), en su segunda edición (1967).

     En mi modesta opinión, el desarrollo de los computadores se ha producido, en gran medida, por la conjunción de: 1) la inventiva europea, 2) los medios y recursos de los Estados Unidos y 3) el poder de “asimilación y reproducción” asiático.

La Academia de Ciencias Matemáticas, Físico-Químicas y Naturales de Granada, en el centenario del nacimiento de Alan Turig organiza el ciclo de conferencias De Alan Turing a nuevos retos científicos europeos en procesamiento de la información, en la ciudad de Granada durante el mes de mayo. Más información puede encontrarse aquí.

Alberto Prieto Espinosa es catedrático de la Universidad de Granada.

No hay comentarios:

Publicar un comentario