Motor analítico
La máquina analítica fue una computadora mecánica de uso general propuesta y diseñada por el matemático inglés y pionero de la informática Charles Babbage. Fue descrito por primera vez en 1837 como el sucesor del motor diferencial de Babbage, que era un diseño para una calculadora mecánica más simple.
El motor analítico incorporó una unidad lógica aritmética, flujo de control en forma de bifurcaciones y bucles condicionales y memoria integrada, lo que lo convierte en el primer diseño de una computadora de propósito general que podría describirse en términos modernos como Turing-completo. En otras palabras, la estructura del motor analítico era esencialmente la misma que ha dominado el diseño de computadoras en la era electrónica. El motor analítico es uno de los logros más exitosos de Charles Babbage.
Babbage nunca pudo completar la construcción de ninguna de sus máquinas debido a conflictos con su ingeniero jefe y una financiación inadecuada. No fue hasta 1941 que Konrad Zuse construyó la primera computadora de propósito general, Z3, más de un siglo después de que Babbage propusiera el motor analítico pionero en 1837.
Diseño
El primer intento de Babbage de crear un dispositivo informático mecánico, el motor diferencial, fue una máquina especial diseñada para tabular logaritmos y funciones trigonométricas mediante la evaluación de diferencias finitas para crear polinomios aproximados. La construcción de esta máquina nunca se completó; Babbage tuvo conflictos con su ingeniero jefe, Joseph Clement, y finalmente el gobierno británico retiró la financiación del proyecto.
Durante este proyecto, Babbage se dio cuenta de que era posible un diseño mucho más general, el motor analítico. El trabajo sobre el diseño de la Máquina Analítica comenzó alrededor de 1833.
La entrada, que consistía en programas ("fórmulas") y datos, debía proporcionarse a la máquina a través de tarjetas perforadas, un método que se usaba en ese momento para dirigir telares mecánicos como el telar Jacquard. Para la salida, la máquina tendría una impresora, un trazador de curvas y una campana. La máquina también podría perforar números en las tarjetas para leerlos más tarde. Empleaba aritmética ordinaria de punto fijo en base 10.
Debía haber un almacén (es decir, una memoria) capaz de contener 1.000 números de 40 dígitos decimales cada uno (aprox. 16,6 kB). Una unidad aritmética (el "molino") sería capaz de realizar las cuatro operaciones aritméticas, además de comparaciones y, opcionalmente, raíces cuadradas. Inicialmente (1838) se concibió como un motor diferencial curvado sobre sí mismo, en un diseño generalmente circular, con la tienda larga saliendo a un lado. Dibujos posteriores (1858) representan un diseño de cuadrícula regularizado. Al igual que la unidad central de procesamiento (CPU) en una computadora moderna, el molino se basaría en sus propios procedimientos internos, que se almacenarían en forma de clavijas insertadas en tambores giratorios llamados "barriles", para llevar a cabo algunas de las tareas. las instrucciones más complejas que puede especificar el programa del usuario.
El lenguaje de programación que emplearían los usuarios era similar a los lenguajes ensambladores modernos. Los bucles y las ramificaciones condicionales eran posibles, por lo que el lenguaje tal como se concibió habría sido Turing-completo, como lo definió más tarde Alan Turing. Se utilizaron tres tipos diferentes de tarjetas perforadas: una para operaciones aritméticas, otra para constantes numéricas y otra para operaciones de carga y almacenamiento, transfiriendo números de la tienda a la unidad aritmética o viceversa. Había tres lectores separados para los tres tipos de tarjetas. Babbage desarrolló unas dos docenas de programas para la máquina analítica entre 1837 y 1840, y un programa más tarde. Estos programas tratan polinomios, fórmulas iterativas, eliminación de Gauss y números de Bernoulli.
En 1842, el matemático italiano Luigi Federico Menabrea publicó una descripción de la máquina en francés, basada en conferencias que Babbage dio cuando visitó Turín en 1840. En 1843, la descripción fue traducida al inglés y Ada Lovelace la anotó extensamente, quien se había interesado en el motor ocho años antes. En reconocimiento a sus adiciones al artículo de Menabrea, que incluían una forma de calcular los números de Bernoulli usando la máquina (ampliamente considerado como el primer programa informático completo), se la ha descrito como la primera programadora informática.
Construcción
Al final de su vida, Babbage buscó formas de construir una versión simplificada de la máquina y ensambló una pequeña parte antes de su muerte en 1871.
En 1878, un comité de la Asociación Británica para el Avance de la Ciencia describió el motor analítico como "una maravilla del ingenio mecánico", pero recomendó no construirlo. El comité reconoció la utilidad y el valor de la máquina, pero no pudo estimar el costo de construirla y no estaba seguro de si la máquina funcionaría correctamente después de construirla.
De manera intermitente, desde 1880 hasta 1910, el hijo de Babbage, Henry Prevost Babbage, estaba construyendo una parte del molino y el aparato de impresión. En 1910, pudo calcular una lista (defectuosa) de múltiplos de pi. Esto constituía solo una pequeña parte de todo el motor; no era programable y no tenía almacenamiento. (Las imágenes populares de esta sección a veces se han etiquetado incorrectamente, lo que implica que se trataba de todo el molino o incluso de todo el motor). Henry Babbage's 'Analytical Engine Mill' está en exhibición en el Museo de Ciencias de Londres. Henry también propuso construir una versión de demostración del motor completo, con una capacidad de almacenamiento más pequeña: "quizás para una primera máquina diez (columnas) serían suficientes, con quince ruedas en cada una". Tal versión podría manipular 20 números de 25 dígitos cada uno, y lo que se le podría decir que haga con esos números aún podría ser impresionante. "Es sólo una cuestión de cartas y de tiempo", escribió Henry Babbage en 1888, "... y no hay ninguna razón por la que (veinte mil) cartas no deban usarse si es necesario, en un Motor analítico a los efectos del matemático".
En 1991, el Museo de Ciencias de Londres construyó una muestra completa y funcional de la máquina diferencial n.° 2 de Babbage, un diseño que incorporó refinamientos que Babbage descubrió durante el desarrollo de la máquina analítica. Esta máquina fue construida utilizando materiales y tolerancias de ingeniería que habrían estado disponibles para Babbage, refutando la sugerencia de que los diseños de Babbage no podrían haberse producido utilizando la tecnología de fabricación de su época.
En octubre de 2010, John Graham-Cumming inició un "Plan 28" campaña para recaudar fondos por "suscripción pública" para permitir un estudio histórico y académico serio de los planes de Babbage, con miras a construir y probar un diseño virtual completamente funcional que, a su vez, permitirá la construcción del motor analítico físico. Hasta mayo de 2016, no se había intentado la construcción real, ya que aún no se podía obtener una comprensión consistente de los dibujos de diseño originales de Babbage. En particular, no estaba claro si podía manejar las variables indexadas que se requerían para el programa Bernoulli de Lovelace. Para 2017, el "Plan 28" esfuerzo informó que una base de datos de búsqueda de todo el material catalogado estaba disponible, y se había completado una revisión inicial de los voluminosos Scribble Books de Babbage.
Muchos de los dibujos originales de Babbage se han digitalizado y están disponibles públicamente en línea.
Conjunto de instrucciones
No se sabe que Babbage haya escrito un conjunto explícito de instrucciones para el motor a la manera de un manual de procesador moderno. En cambio, mostró sus programas como listas de estados durante su ejecución, mostrando qué operador se ejecutó en cada paso con poca indicación de cómo se guiaría el flujo de control.
Allan G. Bromley asumió que la baraja de cartas podría leerse hacia adelante y hacia atrás como una función de bifurcación condicional después de probar las condiciones, lo que haría que el motor Turing fuera completo:
...las tarjetas pueden ser ordenadas para avanzar y revertir (y por lo tanto a bucle)...
La introducción por primera vez, en 1845, de operaciones de usuario para una variedad de funciones de servicio, incluyendo, lo más importante, un sistema eficaz para el control del usuario del bucle en los programas de usuario. No hay indicación de cómo se especifica la dirección de giro de la operación y las tarjetas variables. En ausencia de otras pruebas he tenido que adoptar la suposición mínima predeterminada de que tanto la operación como las tarjetas variables sólo se pueden volver atrás como es necesario para implementar los lazos utilizados en los programas de muestras de Babbage. No habría dificultad mecánica o microprogramadora para poner la dirección del movimiento bajo el control del usuario.
En su emulador del motor, Fourmilab dice:
El lector de tarjetas del motor no se limita a procesar simplemente las tarjetas en una cadena una tras otra de principio a fin. Puede, además, dirigido por las mismas tarjetas que lee y aconsejado por si la palanca de relevo de Mill está activada, ya sea adelantar la cadena de cartas hacia adelante, saltar las tarjetas de intervención o hacia atrás, causando que las tarjetas de lectura previa sean procesadas una vez más.
Este emulador proporciona un conjunto de instrucciones simbólicas escritas, aunque sus autores lo construyeron en lugar de basarse en los trabajos originales de Babbage. Por ejemplo, un programa factorial se escribiría como:
N0 6 N1 1 N2 1 × L1 L0 S1 – L0 L2 S0 L2 L0 ¿CB?11
donde el CB es la instrucción de bifurcación condicional o "tarjeta combinada" utilizado para hacer que el flujo de control salte, en este caso hacia atrás en 11 cartas.
Influencia
Influencia prevista
Babbage entendió que la existencia de una computadora automática despertaría interés en el campo ahora conocido como eficiencia algorítmica, escribiendo en sus Pasajes de la vida de un filósofo, "Tan pronto como un Motor Analítico existe, necesariamente guiará el rumbo futuro de la ciencia. Siempre que se busque algún resultado con su ayuda, surgirá la pregunta: ¿Mediante qué curso de cálculo puede la máquina llegar a estos resultados en el tiempo más corto?
Informática
Desde 1872, Henry continuó diligentemente con el trabajo de su padre y luego se jubiló intermitentemente en 1875.
Percy Ludgate escribió sobre el motor en 1914 y publicó su propio diseño para un motor analítico en 1909. Se redactó en detalle, pero nunca se construyó, y los dibujos nunca se encontraron. El motor de Ludgate sería mucho más pequeño (alrededor de 8 pies cúbicos (230 L), lo que corresponde a un cubo de 2 pies (61 cm) de lado) que el de Babbage, e hipotéticamente sería capaz de multiplicar dos 20 -Números de dígitos decimales en unos seis segundos.
En sus Ensayos sobre automática (1913) Leonardo Torres y Quevedo, inspirándose en Babbage, diseñó una teórica máquina de cálculo electromecánica que debía ser controlada por un programa de sólo lectura. El documento también contiene la idea de la aritmética de punto flotante.
El artículo Análisis instrumental de Vannevar Bush (1936) incluía varias referencias al trabajo de Babbage. En el mismo año, inició el proyecto Rapid Arithmetical Machine para investigar los problemas de construcción de una computadora digital electrónica.
A pesar de este trabajo preliminar, el trabajo de Babbage cayó en la oscuridad histórica, y el motor analítico era desconocido para los constructores de máquinas informáticas electromecánicas y electrónicas en las décadas de 1930 y 1940 cuando comenzaron su trabajo, lo que resultó en la necesidad de re- inventar muchas de las innovaciones arquitectónicas que Babbage había propuesto. Howard Aiken, quien construyó la calculadora electromecánica Harvard Mark I, rápidamente obsoleta, entre 1937 y 1945, elogió el trabajo de Babbage probablemente como una forma de mejorar su propia estatura, pero no sabía nada de la máquina analítica. arquitectura durante la construcción del Mark I, y consideró su visita a la parte construida del motor analítico "la mayor decepción de mi vida". El Mark I no mostró ninguna influencia del motor analítico y carecía de la característica arquitectónica más profética del motor analítico, la ramificación condicional. J. Presper Eckert y John W. Mauchly tampoco conocían los detalles del trabajo del motor analítico de Babbage antes de completar su diseño para la primera computadora electrónica de propósito general, la ENIAC.
Comparación con otras primeras computadoras
Si se hubiera construido el motor analítico, habría sido digital, programable y completo de Turing. Sin embargo, habría sido muy lento. Luigi Federico Menabrea informó en Sketch of the Analytical Engine: "Sr. Babbage cree que puede, con su motor, formar el producto de dos números, cada uno con veinte cifras, en tres minutos. En comparación, Harvard Mark I podría realizar la misma tarea en solo seis segundos. Una PC moderna puede hacer lo mismo en menos de una milmillonésima de segundo.
Nombre | Primera operación | Sistema Numeral | Mecanismo de computación | Programación | Turing complete | Memoria |
---|---|---|---|---|---|---|
Difference Engine | No construido hasta el decenio de 1990 (diseño 1820s) | Decimal | Mecánica | No programable; constantes numéricas iniciales de diferencias polinómicas establecidas físicamente | No | Estado físico de las ruedas en ejes |
Motor analítico | No construido (diseño 1830s) | Decimal | Mecánica | Programa controlado por tarjetas perforadas | Sí. | Estado físico de las ruedas en ejes |
Motor analítico de Ludgate | No construido (diseño 1909) | Decimal | Mecánica | Programa controlado por tarjetas perforadas | Sí. | Estado físico de las varas |
Máquina analítica de Torres y Quevedo | 1920 | Decimal | Electromecánica | No programable; configuración de entrada y salida especificada por cables de parche | No | Relés mecánicos |
Zuse Z1 (Alemania) | 1939 | Punto binario flotante | Mecánica | No programable; configuración de entrada de cifrado especificada por cables de parche | No | Estado físico de las varas |
Bombe (Polonia, Reino Unido, Estados Unidos) | 1939 (Polish), marzo de 1940 (British), mayo de 1943 (US) | Computaciones de caracteres | Electromecánica | No programable; configuración de entrada de cifrado especificada por cables de parche | No | Estado físico de los rotores |
Zuse Z2 (Alemania) | 1940 | Punto binario flotante | Electromecánica (memoria mecánica) | Controlado por el programa con un puñetazo de película de 35 mm | No | Estado físico de las varas |
Zuse Z3 (Alemania) | Mayo de 1941 | Punto binario flotante | Electromecánica | Controlado por el programa con un puñetazo de película de 35 mm | En principio | Relés mecánicos |
Atanasoff–Berry Computer (US) | 1942 | binario | Electrónica | No programable; entrada de coeficientes de sistema lineal usando tarjetas puntiagudas | No | Memoria del condensador regenerativo |
Colossus Mark 1 (UK) | Diciembre de 1943 | binario | Electrónica | Control de programas por cables de parche y interruptores | No | Válvulas termonicas (tubos vacíos) y tiratrones |
Harvard Mark I – IBM ASCC (US) | Mayo de 1944 | Decimal | Electromecánica | Controlado por el programa con cinta de papel perforada de 24 canales (pero sin rama condicional) | No | Relés mecánicos |
Zuse Z4 (Alemania) | Marzo de 1945 (o 1948) | Punto binario flotante | Electromecánica | Controlado por el programa con un puñetazo de película de 35 mm | En 1950 | Relés mecánicos |
ENIAC (US) | Julio de 1946 | Decimal | Electrónica | Control de programas por cables de parche y interruptores | Sí. | Tubo de tubo de vacío |
Manchester Baby (UK) | 1948 | binario | Electrónica | Programa binario entró en memoria por teclado (primera computadora digital de programa electrónico) | Sí. | Williams cathode ray tube |
EDSAC (UK) | 1949 | binario | Electrónica | Opcode de cinco bits y operando de longitud variable (primero ordenador de programa almacenado que ofrece servicios de computación a una amplia comunidad). | Sí. | Líneas de demora de mercurio |
En la cultura popular
- Los novelistas ciberpunk William Gibson y Bruce Sterling coautorizaron una novela de la historia alternativa titulada El motor de diferencia en la que la diferencia de Babbage y los motores analíticos se pusieron a disposición de la sociedad victoriana. La novela explora las consecuencias e implicaciones de la introducción temprana de la tecnología computacional.
- Moriarty by Modem, una breve historia de Jack Nimersheim, describe una historia alternativa donde el motor analítico de Babbage se completó y fue considerado altamente clasificado por el gobierno británico. Los personajes de Sherlock Holmes y Moriarty habían sido en realidad un conjunto de programas de prototipos escritos para el motor analítico. Esta breve historia sigue a Holmes ya que su programa se implementa en computadoras modernas y se ve obligado a competir contra su nemesis una vez más en las contrapartes modernas del motor analítico de Babbage.
- Un entorno similar es utilizado por Sydney Padua en el webcomic Las aventuras emocionantes de Lovelace y Babbage. Cuenta con una historia alternativa donde Ada Lovelace y Babbage han construido el motor analítico y utilizarlo para combatir el crimen a petición de la reina Victoria. El cómic se basa en una investigación exhaustiva sobre las biografías y la correspondencia entre Babbage y Lovelace, que luego se torna para el efecto humorístico.
- El proyecto de Arm de Orión en línea cuenta con el Machina Babbagenseii, ordenadores mecánicos inspirados en Babbage totalmente sensibles. Cada uno es el tamaño de un asteroide grande, sólo capaz de sobrevivir en condiciones de microgravedad, y procesa datos a 0,5% la velocidad de un cerebro humano.
Contenido relacionado
MVS
Oracle solaris
Puerto de gráficos acelerados