En 1833, una adolescente Ada Lovelace conoció en una fiesta a un matemático británico llamado Charles Babbage, profesor de la Universidad de Cambridge. El sentimiento de admiración fue mutuo: ella dominaba los números pese a su corta edad y él era un apasionado del cálculo. Babbage le habló entonces de una máquina diferencial que había construido para resolver operaciones polinómicas y la invitó a acudir a su laboratorio para verla.
Aquel primer invento de Babbage era una enorme calculadora que en realidad constituía solo una séptima parte del esquema original, que nunca llegó construir. Diez años después, Lovelace publicó la traducción de un artículo que describía una máquina analítica diseñada por el académico, predecesora de los ordenadores actuales. La científica añadió algunas notas, entre las que figura la primera secuencia de operaciones destinada a resolver problemas matemáticos. En otras palabras, el primer algoritmo.
Mientras que Lovelance consiguió elucidar que el invento tenía capacidad para ir más allá de los cálculos numéricos, convirtiéndose en la primera programadora de la historia, Babbage no supo verlo. El matemático había diseñado la máquina analítica con intención de mejorar su idea inicial: trazó los planos de un ordenador primigenio, pero solo construyó una unidad experimental que quedó incompleta tras su fallecimiento, en 1871.
Hoy, un equipo de científicos trata de hacer realidad la concepción del británico a través del proyecto Plan 28, bautizado en honor al último boceto de la máquina analítica. Lanzaron la iniciativa en 2012, junto con un ‘crowfunding’ para recaudar fondos al que, de momento, no han dedicado muchos esfuerzos. “Nos hemos concentrado en comprender los diseños”, explica a HojaDeRouter.com Doron Swade, el ingeniero especializado en historia de la informática que lidera el grupo.
“Una vez conozcamos los detalles podremos determinar los recursos que necesitamos, qué más profesionales se unirán al equipo y el tiempo que nos llevará”, señala Swade. El experto también dirigió la construcción de la máquina diferencial número dos de Babbage, actualmente alojada en el Museo de Ciencias de LondresMuseo de Ciencias de Londres, a partir de los esquemas originales del matemático. Un objetivo que tardó 17 años en conseguir.
Uno de los mayores retos que encontraron −aparte de los obstáculos financieros y los choques de intereses que tuvieron que solventar− fue evitar las mejoras injustificadas. No debían exceder la precisión que el propio Babbage habría alcanzado en el siglo XIX, para asegurarse de que, independientemente de que el ingenio mecánico funcionara o no, supusiera una representación real de lo que podría haber sido en aquella época.
“Con la máquina diferencial número dos completa, la analítica es la pieza principal que falta en la prehistoria de la informática y, por tanto, nuestro trabajo no ha acabado”, afirma el ingeniero. “Construirla es una aproximación experimental para resolver las dudas a través de la práctica”.
Traducciendo el idioma de Babbage
Si el plan anterior transcurrió sobre baches y desniveles, este ha arrancado sobre terreno agreste. Hay unos 300 dibujos y alrededor de 2.200 anotaciones en los que Babbage describe los elementos y mecanismos que integran el complejo aparato que funciona a vapor. El principal problema es que el matemático inventó la simbología de sus cuadernos porque no existía ningún lenguaje previo que le sirviera.
“No ha habido nada similar hasta los 70, casi 150 años después, cuando el diseño de circuitos integrados se hizo más complejo”, indica el ingeniero británico. Como respuesta a este problema, se desarrollaron los primeros lenguajes de descripción de ‘hardware’ (HDL por sus siglas en inglés). Babbage creó una notación mecánica propia para solucionar exactamente la misma cuestión. Por eso, Swade y su equipo investigan si sus signos constituyen un HDL victoriano.
La simbología del matemático sigue un esquema similar a los HDL modernos, que se utilizan para definir la estructura y operaciones de los circuitos electrónicos. Estos permiten al creador del ‘hardware’ modelar y simular los componentes antes de fabricarlos, y a partir de la formulación es posible inferir las funciones lógicas necesarias para la ejecución del programa.
En el caso de la máquina diferencial no hizo falta descifrar enrevesadas instrucciones, ya que los científicos pudieron deducir su estructura y funcionamiento a partir de los dibujos. El invento resuelve las ecuaciones mediante el método de las diferencias finitas, utilizando solo sumas aritméticas –una ventaja, ya que las divisiones y multiplicaciones son más difíciles de implementar mecánicamente−.
Los artilugios de Babbage solo aceptan valores comprendidos entre el 0 y el 9 y cada dígito de un número está definido por la posición de una de las ruedas dentadas. Su primer diseño describía un aparato que permitía representar 16 cifras, compuesto por unos 25.000 elementos, repartidos entre la calculadora y un instrumento que imprimía los resultados en tablas. El segundo, que ideó mucho después, podía indicar 31 dígitos con solo un tercio de los componentes.
La máquina analítica (de la que también hay varias versiones) sigue los mismos preceptos básicos pero no es una calculadora, sino un ordenador programable mediante tarjetas perforadas. Incorpora una memoria para almacenar valores y resultados intermedios y un procesador para realizar multiplicaciones y divisiones, desarrollar iteraciones, bucles y otras operaciones complejas.
Pero por mucho que alguien estudiara las piezas de uno de sus primos modernos, no lograría averiguar cómo se ejecuta un programa. Y eso es precisamente lo que les ocurre a los integrantes del Plan 28: tienen los dibujos de los componentes y su disposición, pero no conocen su función lógica.
De vuelta a la casilla de salida
“Hemos sido incapaces de aplicar ingeniería inversa para deducir el objetivo de algunos mecanismos”, admite el responsable de la iniciativa. Una conclusión a la que han llegado gracias al proyecto Nociones y Notaciones, una investigación paralela en la que ha participado Swade, cuyo objetivo es transformar la notación de Babbage en un lenguaje que permita simular el funcionamiento de la máquina diferencial (para sacar conclusiones que aplicar a la construcción de la analítica).
Los responsables del estudio han definido un código de caracteres ASCII que han denominado FORTRAC 15. El nombre surge de los tres elementos que caracterizan la notación de Babbage: las formas (diagramas adimensionales que indican la forma de los elementos y sus interacciones), los trenes (señalan las relaciones de causa y efecto dentro de un mecanismo) y los ciclos (el tiempo y la fase de las partes articuladas).
“Lo hemos utilizado para capturar las notaciones de Babbage de sus diagramas”, nos explica Adrian Johnstone, investigador de la Universidad de Londres y líder del proyecto. Y prosigue con un símil: “Puede entenderse como la notación que el matemático habría usado si hubiera trabajado en una época más moderna”.
También han fabricado algunos componentes, a partir de elementos impresos en 3D, acero cortado con láser y piezas como ruedas y engranajes. “Nos sirven para explorar otras partes de la estructura mecánica”, indica Johnstone.
Además, se han fijado en la máquina diferencial que alberga el Museo de Ciencias londinense para comparar y resolver sus dudas. Sin embargo, “todavía quedan preguntas sin responder”, porque la simbología de la máquina diferencial no coincide del todo con la que Babbage aplicó para describir la analítica.
Así que Swade y sus colegas tienen un largo camino por delante: “Vamos a comenzar a estudiar las páginas de los manuscritos de la máquina analítica”, explica el británico. En los documentos constan las tres fases que el inventor empleaba en el diseño -a veces desordenadas-, las actualizaciones de cada versión y sus escasas explicaciones.
Por otra parte, un grupo de investigadores estadounidenses van a ayudarles en la tarea, construyendo una base de datos con todo el archivo del matemático, compuesto por más de 7.000 hojas. Paralelamente, Swade rastreará los 20 volúmenes que constituyen los borradores de Babbage en busca de alusiones a la notación mecánica que utilizaba.
Según sus estimaciones, “en unos tres años habremos obtenido una versión de la máquina técnicamente viable que podremos construir”. Pero antes deben desarrollar los modelos informáticos de todos los mecanismos y fabricar partes impresas en 3D para probar los ensamblajes.
No es de extrañar que estos arqueólogos de la informática necesiten a partir de ahora reunir fuerzas y financiación para sacar adelante su cruzada. Swade cree que el interés del proyecto radica en la cantidad de dudas que permitiría resolver la materialización del ordenador primigenio de Babbage. ¿Podría haber sido construido en la época del matemático? De ser posible, ¿habría funcionado? ¿Fue la era informática victoriana un sueño factible que nunca se hizo realidad? Habrá que esperar al menos una década para saber las respuestas.
------------------------------------
Todas las imágenes de este artículo, excepto el diagrama y el algoritmo de Lovelace, son propiedad de Doron Swade