quinta-feira, 9 de agosto de 2012

Computadores analógicos e digitais

Um dos significados do termo “computar” é, simplesmente, calcular. Por isto não é de estranhar que os primeiros computadores tivessem como principal objetivo o cálculo de alguma coisa. Tanto assim que o computador mais antigo que se conhece, um primor de engenharia montado na Grécia há mais de dois mil anos, era uma máquina magnífica que tinha por objetivo calcular a posição relativa dos objetos celestes (Sol, Lua e os cinco planetas então conhecidos) e, entre outras coisas, prever eclipses.
[Aqui cabe um parênteses: fragmentos deste artefato, mostrado na Figura 1, um objeto de valor histórico inestimável conhecido como “Máquina de Anticítera”, foram encontrados em 1900 entre os destroços de um navio naufragado nas proximidades da Ilha de Anticítera, no Mediterrâneo, mas seu significado somente pôde ser compreendido recentemente quando seu interior foi explorado com a ajuda de ultrassom. Trata-se de uma maravilha tecnológica concebida e fabricada cem anos antes do nascimento de Cristo e cujo projeto de extraordinária complexidade impressiona a todos que dele tomam conhecimento. A quem desejar mais informações sugiro consultar o verbete da Wikipedia em inglês e o artigo de Charlie Sorel – e suas referências – publicado no Gadget Lab].
Figura 1: Um dos fragmentos da máquina de Anticítera (da Wikipedia)Figura 1: Um dos fragmentos da máquina de Anticítera (Foto: Reprodução/Wikipedia)
Também constituído por engrenagens era o “Difference Engine”, o computador concebido por Charles Babbage no Século XIX e que exigia uma tecnologia tão avançada para sua construção que apenas pôde ser montado experimentalmente mais de um século após o projeto (Detalhes sobre a máquina e a excêntrica personalidade de Babbage podem ser encontrados na série de colunas “Analytical Engine” que permanece disponível na seção “Escritos” do Sítio do Piropo no grupo “Coluna em Forum PCs” a partir da coluna “Analytical Engine I: Um velho ranzinza” publicada em 24/07/2006).
O objetivo da máquina de Babbage era calcular, ou seja, “computar”, as preciosas tabelas náuticas, essenciais para orientar a navegação naqueles tempos quando a Inglaterra era a grande potência marítima mundial. Estas tabelas eram calculadas à mão por uma enorme equipe especializada de “computadores” (funcionários cujo trabalho consistia em computar, ou calcular, os valores a serem tabulados) e eventuais erros podiam ser catastróficos para quem dependia delas em mar aberto. Conceber uma máquina que pudesse montar estas tabelas sem erros era algo tão importante que o projeto de Babbage foi financiado pelo governo inglês.
Tanto a Máquina de Anticítera quanto o Difference Engine eram computadores analógicos.
As máquinas modernas são digitais.
Computadores digitais armazenam dados exclusivamente sob a forma de números (o termo “digit”, “algarismo” em inglês, deriva do latim “digitus”, ou “dedo”, em virtude da forma mais simples e primitiva de exprimir números: exibindo os dedos das mãos). Nos computadores modernos estes números são expressos e armazenados internamente no sistema binário, ou sistema numérico posicional de base dois, por razões que ficarão claras adiante, mas teoricamente qualquer sistema numérico pode ser utilizado (alguns dos primeiros computadores digitais usavam o sistema decimal). Neste tipo de máquina os valores que exprimem as grandezas sofrem apenas variações “discretas”, ou seja, descontínuas, “saltando” de um valor inteiro para o seguinte (embora seja possível adotar técnicas que permitem trabalhar com valores fracionários intermediários).
Já os computadores analógicos representam dados utilizando grandezas capazes de variar continuamente. Bons exemplos são a posição relativa de engrenagens em mecanismos ou os valores de tensões em circuitos elétricos. Um caso típico: há uma extraordinária analogia (e “analogia” é a palavra chave, já que é devido a ela que estes computadores receberam sua designação) entre o comportamento de um líquido fluindo entre reservatórios de diferentes níveis d´água através de uma rede ramificada de tubulações e o comportamento de uma corrente elétrica fluindo entre pontos de um circuito elétrico com diferentes tensões, interligados por condutores elétricos ramificados. A diferença de nível entre os reservatórios (diferença de potencial hidráulico) é absolutamente análoga à diferença de tensão entre os dois pontos do circuito (diferença de potencial elétrico) e a dificuldade oferecida ao escoamento da vazão de água pelo atrito com as tubulações (resistência hidráulica) é igualmente análoga à resistência elétrica oferecida pelos condutores à passagem da corrente elétrica. Assim, conhecendo-se o “modelo matemático” (ou seja, o conjunto de equações que rege os fenômenos físicos), pode-se usar um artefato que simule o comportamento de qualquer sistema e efetuar nele experimentos que emulem o comportamento do sistema sem a necessidade de construi-lo. Por exemplo: o comportamento de um conjunto de represas interligadas pode ser simulado pelo de um circuito elétrico análogo. Ou, melhor ainda, pode-se criar um conjunto de equações (ou “modelo matemático”) que represente os diferentes estados do fenômeno e trabalhar diretamente na solução das equações alterando o valor de suas variáveis para simular o comportamento do sistema.
Esta é a base do funcionamento dos computadores analógicos. O “Difference Engine” de Babbage nada mais era que uma máquina de engrenagens usada para resolver equações polinomiais de grau “n” (como eu informei há algumas colunas, esta série é dirigida a leigos, portanto não cabem detalhes teóricos ou técnicos avançados, mas se alguém estiver interessado nestes detalhes e na teoria subjacente, pode consultar a coluna “Analytical Engine II: a máquina diferencial” onde encontrará uma quantidade razoável de informações).
Computadores analógicos funcionam. O problema é que quanto mais complexo o problema que se destinam a resolver, maior a precisão necessária na fabricação de seus componentes mecânicos. E, ainda assim, é inevitável que erros se acumulem, se propaguem e se ampliem devido a imprecisões micrométricas que se somam. Por esta razão Babbage jamais conseguiu fabricar sua máquina (a Figura 2, obtida da Wikipedia, mostra um detalhe do protótipo construído com base nos desenhos de Babbage e exibido no Museu de Ciências de Londres; a máquina somente foi montada em 1991, mais de um século depois de sua concepção, quando enfim a tecnologia mecânica permitiu fabricar engrenagens com a precisão necessária).
Figura 2: Detalhe das engrenagens do Difference EngineFigura 2: Detalhe das engrenagens do Difference Engine (Foto: Reprodução)
Pois bem: já nos anos trinta do século passado, por estas e outras razões, havia quem percebesse que computadores digitais poderiam ser muito mais eficientes e práticos que os analógicos. Dois desses pioneiros foram John Atanasoff e George Stibitz. O que lhes faltava era uma ferramenta teórica que lhes permitisse resolver as complexas equações lógicas que o projeto exigia.
Pois bem, é aí que entra Claude Shannon, uma figura extraordinária.

Nenhum comentário:

Postar um comentário