Motor analítico
A Máquina Analítica foi uma proposta de computador mecânico de uso geral projetado pelo matemático inglês e pioneiro da computação Charles Babbage. Foi descrito pela primeira vez em 1837 como o sucessor do mecanismo de diferença de Babbage, que era um projeto para uma calculadora mecânica mais simples.
O Analytical Engine incorporou uma unidade lógica aritmética, fluxo de controle na forma de ramificações e loops condicionais e memória integrada, tornando-o o primeiro projeto para um computador de uso geral que poderia ser descrito em termos modernos como Turing-completo. Em outras palavras, a estrutura do Analytical Engine era essencialmente a mesma que dominou o design de computadores na era eletrônica. A Máquina Analítica é uma das realizações de maior sucesso de Charles Babbage.
Babbage nunca conseguiu concluir a construção de nenhuma de suas máquinas devido a conflitos com seu engenheiro-chefe e financiamento inadequado. Não foi até 1941 que Konrad Zuse construiu o primeiro computador de propósito geral, Z3, mais de um século depois de Babbage ter proposto o pioneiro Analytical Engine em 1837.
Design
A primeira tentativa de Babbage em um dispositivo mecânico de computação, o Difference Engine, era uma máquina de propósito especial projetada para tabular logaritmos e funções trigonométricas avaliando diferenças finitas para criar polinômios aproximados. A construção desta máquina nunca foi concluída; Babbage teve conflitos com seu engenheiro-chefe, Joseph Clement, e, por fim, o governo britânico retirou o financiamento do projeto.
Durante este projeto, Babbage percebeu que um projeto muito mais geral, o Analytical Engine, era possível. O trabalho no projeto da Máquina Analítica começou por volta de 1833.
A entrada, composta por programas ("fórmulas") e dados, deveria ser fornecida à máquina por meio de cartões perfurados, método utilizado na época para direcionar teares mecânicos como o tear Jacquard. Para saída, a máquina teria uma impressora, um traçador de curvas e uma campainha. A máquina também seria capaz de perfurar números em cartões para serem lidos posteriormente. Empregava aritmética comum de ponto fixo de base 10.
Deveria haver um armazenamento (ou seja, uma memória) capaz de armazenar 1.000 números de 40 dígitos decimais cada (cerca de 16,6 kB). Uma unidade aritmética (o "moinho") seria capaz de realizar todas as quatro operações aritméticas, além de comparações e, opcionalmente, raízes quadradas. Inicialmente (1838) foi concebido como um motor de diferença curvado sobre si mesmo, em um layout geralmente circular, com o longo depósito saindo para um lado. Desenhos posteriores (1858) representam um layout de grade regularizado. Como a unidade central de processamento (CPU) em um computador moderno, a fábrica contaria com seus próprios procedimentos internos, armazenados na forma de pinos inseridos em tambores rotativos chamados "barris", para realizar algumas das as instruções mais complexas que o programa do usuário pode especificar.
A linguagem de programação a ser empregada pelos usuários era semelhante às linguagens de montagem modernas. Loops e ramificações condicionais eram possíveis e, portanto, a linguagem concebida teria sido Turing-completa, conforme definido posteriormente por Alan Turing. Foram utilizados três tipos diferentes de cartões perfurados: um para operações aritméticas, outro para constantes numéricas e outro para operações de carregar e armazenar, transferindo números da loja para a unidade aritmética ou vice-versa. Havia três leitores separados para os três tipos de cartões. Babbage desenvolveu cerca de duas dúzias de programas para a Máquina Analítica entre 1837 e 1840, e um programa depois. Esses programas tratam polinômios, fórmulas iterativas, eliminação gaussiana e números de Bernoulli.
Em 1842, o matemático italiano Luigi Federico Menabrea publicou uma descrição do motor em francês, com base nas palestras que Babbage deu quando visitou Turim em 1840. Em 1843, a descrição foi traduzida para o inglês e extensamente anotada por Ada Lovelace, que havia se interessado pelo motor oito anos antes. Em reconhecimento às suas adições ao artigo de Menabrea, que incluía uma maneira de calcular os números de Bernoulli usando a máquina (amplamente considerado o primeiro programa de computador completo), ela foi descrita como a primeira programadora de computador.
Construção
No final de sua vida, Babbage procurou maneiras de construir uma versão simplificada da máquina e montou uma pequena parte dela antes de sua morte em 1871.
Em 1878, um comitê da Associação Britânica para o Avanço da Ciência descreveu a Máquina Analítica como "uma maravilha da engenhosidade mecânica", mas recomendou que não a construísse. O comitê reconheceu a utilidade e o valor da máquina, mas não conseguiu estimar o custo de sua construção e não tinha certeza se a máquina funcionaria corretamente após a construção.
Intermitentemente, de 1880 a 1910, o filho de Babbage, Henry Prevost Babbage, estava construindo uma parte da fábrica e o aparato de impressão. Em 1910, foi capaz de calcular uma lista (defeituosa) de múltiplos de pi. Isso constituía apenas uma pequena parte de todo o motor; não era programável e não tinha armazenamento. (As imagens populares desta seção às vezes foram rotuladas incorretamente, sugerindo que era o moinho inteiro ou mesmo o motor inteiro.) Henry Babbage's "Analytical Engine Mill" está em exibição no Museu da Ciência em Londres. Henry também propôs a construção de uma versão de demonstração do motor completo, com uma capacidade de armazenamento menor: "talvez para uma primeira máquina dez (colunas) bastassem, com quinze rodas em cada". Essa versão poderia manipular 20 números de 25 dígitos cada, e o que poderia ser dito para fazer com esses números ainda poderia ser impressionante. "É apenas uma questão de cartas e tempo", escreveu Henry Babbage em 1888, "... e não há razão para que (vinte mil) cartas não sejam usadas, se necessário, em uma Mecanismo Analítico para os propósitos do matemático".
Em 1991, o London Science Museum construiu um espécime completo e funcional da Máquina Diferencial nº 2 de Babbage, um projeto que incorporou refinamentos que Babbage descobriu durante o desenvolvimento da Máquina Analítica. Esta máquina foi construída usando materiais e tolerâncias de engenharia que estariam disponíveis para Babbage, reprimindo a sugestão de que os projetos de Babbage não poderiam ter sido produzidos usando a tecnologia de fabricação de sua época.
Em outubro de 2010, John Graham-Cumming iniciou um "Plano 28" campanha para arrecadar fundos por "assinatura pública" para permitir um estudo histórico e acadêmico sério dos planos de Babbage, com o objetivo de construir e testar um design virtual totalmente funcional que, por sua vez, permitirá a construção do mecanismo analítico físico. Em maio de 2016, a construção real não havia sido tentada, uma vez que nenhum entendimento consistente poderia ser obtido dos desenhos originais de Babbage. Em particular, não estava claro se ele poderia lidar com as variáveis indexadas necessárias para o programa Bernoulli de Lovelace. Em 2017, o "Plano 28" esforço relatou que um banco de dados pesquisável de todo o material catalogado estava disponível, e uma revisão inicial dos volumosos Scribbling Books de Babbage havia sido concluída.
Muitos dos desenhos originais de Babbage foram digitalizados e estão publicamente disponíveis online.
Conjunto de instruções
Babbage não é conhecido por ter escrito um conjunto explícito de instruções para o mecanismo na forma de um manual de processador moderno. Em vez disso, ele mostrou seus programas como listas de estados durante sua execução, mostrando qual operador foi executado em cada etapa com pouca indicação de como o fluxo de controle seria guiado.
Allan G. Bromley assumiu que o baralho de cartas pode ser lido nas direções para frente e para trás como uma função da ramificação condicional após testar as condições, o que tornaria o motor Turing-completo:
... as cartas podem ser ordenadas para avançar e reverter (e, portanto, loop)...
A introdução pela primeira vez, em 1845, de operações de usuário para uma variedade de funções de serviço, incluindo, o mais importante, um sistema eficaz para o controle do usuário de loop em programas de usuário. Não há indicação de como é especificada a direção de giro da operação e dos cartões variáveis. Na ausência de outras evidências eu tive que adotar a suposição padrão mínima de que tanto a operação e os cartões variáveis só podem ser retrocedidos como é necessário para implementar os loops usados nos programas de amostra de Babbage. Não haveria dificuldade mecânica ou microprogramação em colocar a direção do movimento sob o controle do usuário.
Em seu emulador do motor, Fourmilab diz:
O leitor de cartão do motor não é constrangido a processar simplesmente as cartas em uma cadeia um após o outro do início ao fim. Ele pode, além disso, direcionado pelas próprias cartas que lê e aconselhado por se a alavanca de execução do Mill é ativada, ou avançar a cadeia de cartão para a frente, pulando as cartas de intervenação, ou para trás, fazendo com que os cartões de leitura anteriormente sejam processados mais uma vez.
Este emulador fornece um conjunto de instruções simbólicas escritas, embora tenha sido construído por seus autores e não com base nos trabalhos originais de Babbage. Por exemplo, um programa fatorial seria escrito como:
N0 6 N° 1 N2 1 × L1 L0 S1 – L0 L2 S0 L2 L0 CB?11
onde o CB é a instrução de ramificação condicional ou "cartão de combinação" usado para fazer o fluxo de controle pular, neste caso para trás em 11 cartas.
Influência
Influência prevista
Babbage entendeu que a existência de um computador automático despertaria o interesse no campo agora conhecido como eficiência algorítmica, escrevendo em suas Passagens da vida de um filósofo, "Assim que um A Máquina Analítica existe, ela necessariamente guiará os rumos futuros da ciência. Sempre que qualquer resultado for buscado por sua ajuda, a questão surgirá: por qual curso de cálculo esses resultados podem ser alcançados pela máquina no menor tempo?"
Ciência da computação
A partir de 1872, Henry continuou diligentemente com o trabalho de seu pai e depois se aposentou intermitentemente em 1875.
Percy Ludgate escreveu sobre o motor em 1914 e publicou seu próprio projeto para um motor analítico em 1909. Ele foi desenhado em detalhes, mas nunca construído, e os desenhos nunca foram encontrados. O motor de Ludgate seria muito menor (cerca de 8 pés cúbicos (230 L), o que corresponde a um cubo de comprimento lateral de 2 pés (61 cm)) do que o de Babbage e, hipoteticamente, seria capaz de multiplicar dois 20 -números de dígitos decimais em cerca de seis segundos.
Em seus Essays on Automatics (1913), Leonardo Torres y Quevedo, inspirado por Babbage, projetou uma máquina de calcular eletromecânica teórica que deveria ser controlada por um programa somente leitura. O artigo também contém a ideia de aritmética de ponto flutuante.
O artigo Análise instrumental de Vannevar Bush (1936) incluiu várias referências ao trabalho de Babbage. No mesmo ano iniciou o projeto Rapid Arithmetical Machine para investigar os problemas de construção de um computador eletrônico digital.
Apesar desse trabalho de base, o trabalho de Babbage caiu na obscuridade histórica, e a Máquina Analítica era desconhecida dos construtores de máquinas eletromecânicas e eletrônicas de computação nas décadas de 1930 e 1940, quando começaram seu trabalho, resultando na necessidade de re- inventar muitas das inovações arquitetônicas propostas por Babbage. Howard Aiken, que construiu a calculadora eletromecânica rapidamente obsoleta, a Harvard Mark I, entre 1937 e 1945, elogiou o trabalho de Babbage provavelmente como uma forma de aumentar sua própria estatura, mas não sabia nada sobre a Máquina Analítica. arquitetura durante a construção do Mark I, e considerou sua visita à parte construída do Analytical Engine "a maior decepção da minha vida". O Mark I não mostrou nenhuma influência do Mecanismo Analítico e carecia do recurso arquitetônico mais presciente do Mecanismo Analítico, ramificação condicional. Da mesma forma, J. Presper Eckert e John W. Mauchly não estavam cientes dos detalhes do trabalho da Máquina Analítica de Babbage antes da conclusão de seu projeto para o primeiro computador eletrônico de uso geral, o ENIAC.
Comparação com outros computadores antigos
Se o Analytical Engine tivesse sido construído, ele seria digital, programável e completo em Turing. No entanto, teria sido muito lento. Luigi Federico Menabrea relatou em Sketch of the Analytical Engine: "Sr. Babbage acredita que pode, com sua máquina, formar o produto de dois números, cada um contendo vinte algarismos, em três minutos. Em comparação, o Harvard Mark I poderia realizar a mesma tarefa em apenas seis segundos. Um PC moderno pode fazer a mesma coisa em menos de um bilionésimo de segundo.
Nome | Primeira operação | Sistema numérico | Mecanismo de computação | Programação | Turing completo | Memória |
---|---|---|---|---|---|---|
Motor de diferença | Não construído até os anos 90 (design 1820s) | Decimal | Mecânica | Não programável; constantes numéricas iniciais de diferenças polinomiais definidas fisicamente | Não. | Estado físico de rodas em eixos |
Motor Analítico | Não construído (design 1830s) | Decimal | Mecânica | Programa controlado por cartões perfurados | Sim. | Estado físico de rodas em eixos |
Motor Analítico da Ludgate | Não construído (design 1909) | Decimal | Mecânica | Programa controlado por cartões perfurados | Sim. | Estado físico de hastes |
Máquina Analítica de Torres y Quevedo | 1920 | Decimal | Eletromecânica | Não programável; configurações de entrada e saída especificadas por cabos de patch | Não. | Relés mecânicos |
Zuse Z1 (Alemanha) | 1939 | Ponto flutuante binário | Mecânica | Não programável; configurações de entrada de cifra especificadas por cabos de patch | Não. | Estado físico de hastes |
Bombe. (Poland, Reino Unido, EUA) | 1939 (Polish), Março de 1940 (British), Maio de 1943 (US) | Computações de caracteres | Eletromecânica | Não programável; configurações de entrada de cifra especificadas por cabos de patch | Não. | Estado físico de rotores |
Zuse Z2 (Alemanha) | 1940 | Ponto flutuante binário | Eletromecânico (memória mecânica) | Programa controlado por estoque de filme perfurado 35 mm | Não. | Estado físico de hastes |
Zuse Z3 (Alemanha) | Maio de 1941 | Ponto flutuante binário | Eletromecânica | Programa controlado por estoque de filme perfurado 35 mm | Em princípio | Relés mecânicos |
Atanasoff–Berry Computer (EUA) | 1942 | Binário | Eletrônica | Não programável; entrada de coeficientes de sistema linear usando cartões perfurados | Não. | Memória de capacitor regenerativo |
Colossus Mark 1 (UK) | Dezembro de 1943 | Binário | Eletrônica | Programa-controlado por cabos de patch e interruptores | Não. | Válvulas termiônicas (tubos de vácuo) e tiretrons |
Harvard Mark I – IBM ASCC (EUA) | Maio de 1944 | Decimal | Eletromecânica | Controle do programa por fita de papel perfurada de 24 canais (mas sem ramo condicional) | Não. | Relés mecânicos |
Zuse Z4 (Alemanha) | Março de 1945 (ou 1948) | Ponto flutuante binário | Eletromecânica | Programa controlado por estoque de filme perfurado 35 mm | Em 1950 | Relés mecânicos |
ENIAC (EUA) | Julho de 1946 | Decimal | Eletrônica | Programa-controlado por cabos de patch e interruptores | Sim. | Tubo de vácuo triode flip-flops |
Manchester Baby (UK) | 1948 | Binário | Eletrônica | Programa binário entrou em memória pelo teclado (primeiro computador digital de programa eletrônico armazenado) | Sim. | Williams cathode tubo de raio |
EDSAC (UK) | 1949 | Binário | Eletrônica | Opcode de cinco bits e operando de comprimento variável (primeiro computador de programa armazenado oferecendo serviços de computação para uma ampla comunidade). | Sim. | Linhas de atraso de Mercúrio |
Na cultura popular
- Os romancistas ciberpunk William Gibson e Bruce Sterling coautoram um romance de steampunk da história alternativa intitulado O motor de diferença em que a diferença de Babbage e motores analíticos se tornaram disponíveis para a sociedade vitoriana. O romance explora as consequências e implicações da introdução precoce da tecnologia computacional.
- Moriarty por Modem, uma curta história de Jack Nimersheim, descreve uma história alternativa onde o Motor Analítico de Babbage foi realmente concluído e foi considerado altamente classificado pelo governo britânico. Os personagens de Sherlock Holmes e Moriarty foram, na realidade, um conjunto de programas protótipos escritos para o Motor Analítico. Esta história curta segue Holmes como seu programa é implementado em computadores modernos e ele é forçado a competir contra seu nemesis mais uma vez nas contrapartes modernas do Motor Analítico de Babbage.
- Uma configuração semelhante é usada por Sydney Padua no webcomic As aventuras perturbadoras de Lovelace e Babbage. Possui uma história alternativa onde Ada Lovelace e Babbage construíram o Motor Analítico e usá-lo para combater o crime a pedido da rainha Vitória. O quadrinho é baseado na pesquisa completa sobre as biografias e correspondência entre Babbage e Lovelace, que é então torcido para o efeito humorístico.
- O projeto on-line do braço de Orion apresenta o Maquinas de lavarcomputadores mecânicos totalmente inspirados em Babbage. Cada um é o tamanho de um grande asteróide, apenas capaz de sobreviver em condições de microgravidade, e processa dados em 0,5% a velocidade de um cérebro humano.
Contenido relacionado
Domnall mac Ailpín
Ahmed al-Nami
Império Kanem-Bornu