Hace unos 175 años, Charles Babbage concibió una máquina de propósito general, que podía ser programada por el usuario para ejecutar un repertorio de instrucciones en el orden deseado. El diseño de la denominada “Máquina Analítica”, de naturaleza mecánica, incluye la mayoría de las partes lógicas de un ordenador actual. Capaz de almacenar 1000 números de 50 dígitos cada uno, nunca pudo ser construida por Babbage, dado que en esa época la tecnología disponible no estaba a la altura del proyecto.
Charles Babbage nació en Gran Bretaña el 26 de diciembre de 1791. Matemático de profesión, dedicó casi toda su vida al desarrollo de un mecanismo capaz de elaborar de forma automática las tablas de números -similares a las tablas de logaritmos– que se utilizaban en aquella época como instrumentos para facilitar los cálculos. Babbage sabía que las tablas disponibles contenían errores, generalmente debido a lo aburrido que resultaba efectuar manualmente los cientos de miles de cálculos necesarios para elaborarlas. Una máquina, aunque su diseño y construcción presentase una dificultad muy elevada, en cambio, estaría exenta de estos problemas. Lejos de desanimarse ante el desafío que tal empresa representaba, Babbage se basó en los trabajos anteriores de Blaise Pascal y Gottfried Leibniz, quienes habían construido máquinas calculadoras años atrás para diseñar sus dispositivos.
El primer gran proyecto de Charles Babbage fue un “ordenador mecánico” llamado “Máquina Diferencial”. Si bien la máquina nunca fue construida -principalmente por motivos económicos- su diseño era capaz de construir tablas de logaritmos y de funciones trigonométricas mediante un método que utilizaba polinomios. Sin embargo, y a pesar de las ventajas que presentaba, la Máquina Diferencial no podía utilizarse para hacer cálculos diferentes a los mencionados. Babbage se dio cuenta que -para ser verdaderamente útil- su máquina debía ser capaz de modificar su funcionamiento de forma que el operador pudiese utilizarla para elaborar la tabla que le hiciese falta. En otras palabras, la máquina debía ser “programable”.
Babbage comenzó a dar forma a una máquina de propósito general, a la que llamaría “Máquina Analítica”. Recordemos que esto ocurría en las primeras décadas del siglo XIX, y que la electrónica aún era desconocida, por lo que la máquina que diseñase debía ser de naturaleza mecánica. Durante años Babbage trabajó en el diseño de la Máquina Analítica, haciendo cálculos y dibujando planos. El modelo final necesitaba para funcionar la potencia de un motor a vapor, y media unos diez metros de ancho por treinta de largo. A pesar de ser completamente mecánica, podía ser programada en un lenguaje similar al “ensamblador” que utilizan los ordenadores modernos.
Para ello, Babbage había previsto una unidad capaz de leer tarjetas perforadas (que ya se utilizaban en telares y otros equipos similares) y una destinada a perforar tarjetas con los resultados. Para tener una idea de la capacidad de esta máquina hay que mencionar que era capaz de retener en su “memoria” 1000 números de 50 dígitos cada uno, y que disponía de una “unidad aritmética” capaz de realizar las operaciones aritméticas comunes. Además de perforar tarjetas, la Máquina Analítica estaba dotada de una impresora y una campana que anunciaba que el artefacto había terminado su trabajo.
Solamente el diseño de esta impresora basta para considerar a Charles Babbage un genio. Un siglo y medio después de que fuese diseñada, el Museo de Ciencias de Londres utilizó los planos de Babbage para construir un modelo funcional de la misma, que posee más de 8000 piezas y pesa unas 2.5 toneladas. A pesar de ser simplemente uno de los periféricos de la Máquina Analítica, el artefacto permite modificar parámetros como el espaciado entre líneas, la tipografía (una de las dos disponibles) y el número de columnas de las tablas impresas.
Pero lo que hace de la Máquina Analítica algo completamente diferente a todas las máquinas diseñadas hasta ese momento es -por supuesto- su capacidad para alterar el funcionamiento interno en base a los dictados de un programa. Este “lenguaje de programación” permitía realizar bucles (como el While-End o For-Next modernos) y tomar decisiones (al estilo del If-Then). Babbage había previsto el uso de tres clases diferentes de tarjetas perforadas: una para las operaciones aritméticas, una para la introducción de las constantes numéricas y otra para operaciones que utilizaren la memoria de datos. La Máquina Analítica disponía de tres lectores diferentes, uno por cada tipo de tarjeta.
Pero tal como ocurrió con la Máquina Diferencial, Babbage nunca pudo ver construido su genial invento. Si bien los planos eran correctos, lo cierto es que los problemas derivados de las aleaciones y la precisión con la que se construían los engranajes, sumados a los magros fondos obtenidos del gobierno para llevar adelante la construcción, impidieron su realización práctica. Henry P. Babbage, hijo de Charles, construyó en 1910 una parte de la Máquina Analítica, que si bien carecía de memoria y no era reprogramable, fue capaz de calcular una lista con los múltiplos de PI. La lista contenía algunos errores, pero demostraba de forma práctica que los diseños eran correctos. Hoy se considera -con justicia- a Charles Babbage como uno de los padres de la informática.