segunda-feira, 16 de agosto de 2021

AC, Antes dos Computadores 10 Cálculo

AC, Antes dos Computadores: Sobre a Tecnologia da Informação, da Escrita à Era do Dado Digital


Por Stephen Robertson


Capítulo anterior


[115]10 Cálculo


Voltemo-nos agora aos números.

Após a invenção do zero e da notação posicional pelos matemáticos hindus, e a sistematização das regras da aritmética pelos árabes, era somente uma questão de tempo antes que nós voltássemos nossa atenção ao cálculo por máquina.


Máquinas que calculam?


Em uma acepção, um tipo de cálculo mecanicamente auxiliado existira por muito mais tempo, na forma do ábaco. De fato, o ábaco envolve um tipo de versão da notação posicional do posterior sistema arábico – uma coluna ou linha do ábaco ainda está ali, mesmo se não tem contas nela, assim o zero é representado. E as regras arábicas estavam incorporadas no conhecimento de usuários treinados de ábacos muito antes que elas fossem codificadas.

O ábaco ajuda os seres humanos a calcular (e também a lembrar o resultado final de um cálculo) – ele não calcula por si mesmo. O sistema hindu-arábico (tanto a representação dos números quanto as regras de aritmética) permitiu o uso de caneta e papel com a mesma velocidade e precisão que o ábaco, com a vantagem adicional de retenção de um registro permanente do cálculo. Máquinas que calculam? Isso seria revolucionário, mas esse sistema também nos dá os fundamentos de uma tal revolução. Dado que cada coluna de um número deve ser tratada da mesma exata maneira que todas as outras, e as regras tenham sido codificadas, a mecanização está convidada.

Uma pessoa que primeiro fez sérias incursões nessa ideia foi Blaise Pascal. Na primeira metade do século XVII, como um adolescente precoce, Pascal desenvolveu uma máquina para ajudar os cálculos financeiros de seu pai. Os números eram marcados em uma série de rodas. A máquina podia ser usada para adicionar e, por um processo de fazer com que a subtração parecesse adição, [116]também subtrair. Contudo, não podia subtrair ou dividir. Uma máquina semelhante, a qual não sobreviveu, foi inventada por Wilhelm Schickard aproximadamente à época do nascimento de Pascal, e outro matemático famoso, Leibniz, inventou outra máquina semelhante pouco depois de Pascal.


Logaritmos e a régua de cálculo


As máquinas de Pascal e de Leibniz representam, na forma mecânica direta, as regras arábicas de aritmética, por meio das quais números são formados por dígitos discretos arranjados em colunas. Isso torna-as precursoras das calculadoras digitais eletrônicas do século XX.

Mas esse não é a única abordagem para auxílios mecânicos ao cálculo. Um método muito diferente toma o que poderia ser descrito como uma abordagem analógica para o cálculo (como antes, nós consideramos analógico e digital como princípios opostos). Isso estava acontecendo em paralelo ao trabalho de Schickard, Pascal e Leibniz. É claro que a época do cálculo mecânico tinha chegado, mesmo se os métodos ainda estivessem em disputa.

O princípio do logaritmo foi desenvolvido por Napier, aproximadamente no começo do século XVII. A característica dos logaritmos é que eles convertem multiplicação em adição. Quer dizer, a fim de multiplicar dois números, você toma os logaritmos deles (quer dizer, você pesquisa em uma tabela o logaritmo para cada número). Então você adiciona-os, e em seguida você toma o antilogaritmo do resultado (quer dizer, pesquisa reversa na tabela). Grandes esforços foram feitos para compilar acuradas tabelas de logaritmos através dos próximos dois ou três séculos.

Uma alternativa é ter os números representados em uma escala (como uma régua ou fita métrica – ver figura 16), mas espaçados de acordo com seus logaritmos em vez do usual espaçamento igual. Então dois números podem ser multiplicados ao se adicionarem seus comprimentos nessa escala. Inicialmente isso era feito ao ter uma única escala e usando divisores, mas subsequentemente a ideia de duas escalas, que poderiam ser deslizadas uma contra a outra, substituiu a de uma escala. Nascia a régua de cálculo – ver figura 16.


[117]Figura 16: Régua de cálculo. Diagrama: o autor.


Ao construir a multiplicação em uma régua de cálculo, você move a escala B de maneira que o 1 (em B) alinhe-se com um dos números que você quer multiplicar (em A). Então você procura o segundo número em B e lê o resultado a partir da posição correspondente em A. Assim um número é uma posição; você pode estabelecer isso mais ou menos precisamente (exatamente como você pode medir com uma régua mais ou menos [117]precisamente). Os dígitos que você poderia usar para escrever o número não estão envolvidos. Essa é razão porque nós poderíamos descrever isso como analógico; a posição é uma representação analógica do número, não uma digital.

Dado que algum grau de aproximação seja aceitável, o princípio da régua de cálculo foi um método efetivo para multiplicação e divisão por três séculos ou aproximadamente, antes que as calculadoras baseadas em dígitos pudessem competir nesse domínio, e permaneceu em uso pela maior parte de outro século. Mas, na revolução da TI do final do século XX, quando princípios digitais alvoroçaram através de vastas regiões de empreendimento humano, a régua de cálculo perdeu seu status como o método principal de cálculo favorecido por cientistas e outros.

Contudo, eu adiantei-me. Primeiro, nós temos de ver como o triunfo digital começou.


O Comptômetro


Muitos inventores (ou pretensos inventores) de calculadoras mecânicas, a partir do meio do século XIX, tiveram em mente a ideia de um aparelho acionado por teclas. Quer dizer, alguém teclaria no número em alguma forma de teclado. Esse parece um princípio diferente do sistema de Pascal de ajustamento de discos. Contudo, ele compartilha com Shickard, Pascal e Leibniz uma visão digital de cálculo.

Essa ideia requereu algum tempo para se tornar uma realidade. Essencialmente, a dificuldade assenta-se precisamente naquelas regras de aritmética que os matemáticos árabes deram-nos, e que inspiraram a busca de calculadoras mecânicas em primeiro lugar. A regra particular que causa dificuldade no design de calculadoras operadas por teclas é a regra de transporte (carry rule): transportar de uma coluna para a próxima. Parte do problema é a natureza recursiva do transporte: um transporte para uma segunda [118]coluna poderia desencadear um transporte para uma terceira, e assim por diante. (Pascal teve, e resolveu, o mesmo problema com sua calculadora baseada em rodas.)

É interessante especular aqui, como na discussão sobre máquina de escrever, porque teclas foram consideradas tão importantes. É claro, nós temos a muito confortável história do teclado de instrumentos musicais e, posteriormente, enquanto a calculadora operada por teclas ainda estava tentando intensamente, nós temos o desenvolvimento exitoso da máquina semelhante ao Telex de Hughes e, posteriormente, da máquina de escrever. Parece que alguma coisa sobre o teclado como um método transparente de controlar um dispositivo mecânico realmente apelava aos inventores vitorianos – um tipo de ideal platônico de controle na ponta dos dedos que alguém pode ver refletido em muitas abordagens de design dos séculos XX e XXI.

De qualquer maneira, o problema mecânico foi eventualmente resolvido e, por volta de 1890, havia comptômetros operados por teclas inteiramente funcionais para operações aritméticas padrões – ‘inteiramente funcionais’ implica que eles poderiam ser usados para multiplicar e dividir assim como para adicionar ou subtrair. Em uma sequência relativamente curta, eles também se tornaram calculadoras que imprimem e então, no século XX, dispositivos elétricos e, eventualmente, eletrônicos.


Babbage


Uma visão diferente de cálculo mecânico é devida a Charles Babbage, o matemático e inventor do século XIX (ativo a partir dos anos de 1820 até sua morte em 1871). Seu nome está associado com duas máquinas que são vistas como as antepassadas dos computadores modernos, a Máquina Diferencial e a Máquina Analítica. Efetivamente, ele falhou em produzir uma versão funcional de uma ou outra máquina, embora formas da Máquina Diferencial fossem subsequentemente construídas. O design da muito mais ambiciosa Máquina Analítica antecipou os modernos computadores de muitas maneiras interessantes.

Essas máquinas, como comptômetros, podem ser descritas como digitais (a representação dos números usava dígitos em vez da forma binária comum hoje em dia). A Máquina Diferencial era uma calculadora em grande escala, mas ambicionando à automação da repetição de muitos cálculos semelhantes, em vez de apenas um único cálculo por vez. Dessa maneira pode ser vista como antecipando a ideia de programação de uma máquina para fazer muitos cálculos. A Máquina Analítica teria sido programável para se ocupar de tipos muito diferentes de tarefas, por implicação indo muito além do que era visto como cálculo aritmético.

[119]O propósito ostensivo para desenvolver essas máquinas foi um estranho retrocesso. Babbage não imaginou-as, ou, pelo menos, não as vendeu para seus apoiadores, como servindo a propósitos gerais de cálculo. Preferencialmente, elas seriam usadas especificamente para calcular as tabelas – tabelas de algoritmos e semelhantes – que seriam publicadas e distribuídas, na maneira já estabelecida, para permitir às pessoas fazerem os seus próprios, não mecanizados, cálculos e computações. Uma razão principal para o trabalho foi o fato conhecido de que as tabelas existentes continham muitos erros, principalmente devido ao envolvimento de pessoas realizando tediosas tarefas repetitivas em todas as fases de sua construção.


Entrada (Input) e saída (output)


Esse objetivo, geração de tabelas impressas, levou Babbage a pensar sobre outras questões além do cálculo, em particular, os estágios de entrada e saída. Para saída, ele buscou automatizar parte do processo de impressão: em particular, ter a máquina construindo as placas para impressão, dessa maneira evitando erros de formatação. (Placas para impressão, enquanto opostas ao tipos móvel, têm uma longa história, brevemente discutida no capítulo 4.) Isso antecipou, em mais de um século, o efeito revolucionário do computador na indústria de impressão.

Ele também tratou da questão da entrada (input) – tanto de números como (no caso da Máquina Analítica) de instruções para a máquina quanto ao que fazer. A noção de entrada por teclado, tão importante para os inventores de comptômetros, não foi de interesse para ele. Em vez disso, ele propôs fazer uso da invenção dos cartões perfurados de Jacquard, a qual nós encontramos em um capítulo anterior. Jacquard exitosamente usou cartões perfurados para controla teares; Babbage esbelecê-los-ia na tarefa de controlar a Máquina Analítica. Eventualmente, a ideia do cartão perfurado seria assumida completamente para outro propósito ao final do século XIX. Mas afinal, nos anos de 1950, eles seriam usados da mesma maneira que a imaginada por Babbage.


Computabilidade


Babbage e sua colaboradora Ada Lovelace começaram a desenvolver algumas noções gerais do que poderia ser ‘computável’, em outras palavras, de que tipos de tarefa poderiam ser suscetíveis de ser delegadas a uma máquina. O cálculo aritmético [120]claramente estava nessa categoria, tendo sido reduzido a conjuntos de passos dirigidos por regras (“algoritmo”) pelos matemáticos da Casa da Sabedoria no século X em Bagdá. Mas Babbage e Lovelace acreditavam que as possibilidades iam muito além do cálculo.

Embora uma Máquina Diferencial funcional eventualmente fosse construída, as ideias de Babbage principalmente morreram com ele. Os inventores do século XX que trouxeram o computador moderno à existência eram ignorantes do trabalho de Babbage.

Não obstante, a noção de computabilidade, o que em princípio poderia ser computável, seria assumida por matemáticos do século XX tais como Kurt Gödel, Alonzo Church e Alan Turing. Nos anos de 1930, Alan Turing descreveu (como uma abstração matemática) uma máquina de computação de propósito geral – e subsequentemente fez grandes contribuições ao esforço de quebra de código na Segunda Guerra Mundial, o qual, como nós veremos no capítulo 12, levou ao desenvolvimento dos computadores atuais.

Mas alguma coisa a mais ocorreu nos anos de 1890, o que levou as máquinas a uma forma bastante diferente de trabalho de uma maneira muito prática. Esse é o tema do próximo capítulo.


Sobre números e máquinas


Dependendo da sua idade, você (ou provavelmente seus filhos) bem podem ter aprendido na escola sobre números binários e aritmética binária. Usando basicamente o mesmo sistema de notação posicional que o legado a nós pelos árabes, mas somente com dois dígitos, 0 e 1, nós podemos representar quaisquer números e realizar quaisquer operações aritméticas. Nesse esquema, o dígito mais à direita representa as unidades, mas o próximo à esquerda representa os dois em vez dos dez, e o próximo após esse os quatro (22 = 4) em vez dos cem.

Você provavelmente também sabe que computadores operam com bits (bit é uma abreviação de dígito binário (binary digit)), e você bem pode associar os dígitos da aritmética binária com os bits no computador. Dessa maneira, dentro dos computadores, os números estão em binário, por que isso é o que os computadores conhecem e com o que trabalham, certo?

Bem, não, não exatamente. Efetivamente, é inteiramente possível guardar todos os números e fazer toda a aritmética dentro de uma máquina no tradicional sistema arábico decimal. O sistema é chamado de BCD (binary coded decimal – decimal codificado como binário); ele envolve uma representação [121]direta de cada um dos dígitos decimais, e das regras para operações aritméticas sobre eles que seriam familiares a criança de escola primária. Além disso, reter a convencional estrutura decimal tem algumas vantagens sobre a conversão para binário puro – para começar, é difícil aproximar um número de acordo com as regras usualmente aplicadas a números decimais, se você está operando em uma representação puramente binária. As máquinas de Babbage deviam ter funcionado com alguma coisa semelhante a BCD; calculadoras eletrônicas modernas usualmente funcionado em BCD.

De fato, há mais de um puro sistema binário. Há uma forma de representação, levemente diferente daquela descrita acima, embora usando essencialmente a mesma aritmética, chamada de complemento de dois (two’s complement). Isso tem algumas vantagens, incluindo simplificação para se lidar com números negativos, e é frequentemente usada em computadores. Dessa maneira nós temos pelo menos três formas diferentes de representação e duas formas diferentes de aritmética. Também há maneiras diferentes de representar números facionários, números muito grandes ou muito pequenos, e números que requerem grande precisão.

Como uma regra, as máquinas podem converter números de uma representação para outra, internamente, e de volta novamente. Dessa maneira, nós não vemos todas essas várias representações ou métodos – nós apenas vemos os resultados no sistema decimal usual.


Próximo capítulo


ORIGINAL:

Robertson, Stephen, B C, Before Computers: On Information Technology from Writing to the Age of Digital Data. Cambridge, UK: Open Book Publishers, 2020. p.115-121. Disponível em: <https://doi.org/10.11647/OBP.0225>


TRADUÇÃO:

EderNB do Blog Mathesis

Licença: CC BY 4.0

Nenhum comentário:

Postar um comentário