Computadores Mecânicos feitos com LEGO

2:07 pm Robótica, Teoria da Computação

Costumo dizer que a palavra preferida de cientistas da computação é abstração: de sistemas complexos de software até o nível mais baixo no hardware, quase tudo que fazemos tem a ver com abstrair os detalhes do nível abaixo para realizar de forma simples tarefas no nível superior. Ao acessar à Internet com seu browser, por exemplo, você não precisa fazer a menor idéia de como a informação é transmitida por cabo, linha de telefone ou rede sem fio.  Abstraímos esses detalhes dizendo que estamos apenas conectados à Internet.

E, se fosse pra escolher a abstração preferida dos cientistas da computação, eu diria que é a Máquina de Turing (proposta pelo genial Alan Turing em 1936). Todo computador – do seu celular ou videogame até o maior supercomputador do mundo – pode ser visto como uma Máquina de Turing. Ela é um modelo matemático simplificado do que é um computador. Qualquer programa de computador pode ser reescrito para ser executado por uma máquina de Turing.  Provar que é impossível resolver um problema usando uma Máquina de Turing é provar que nenhum computador é capaz de resolver esse problema.

A Máquina de Turing é uma abstração, um conceito – não existe de forma concreta. Quando você constrói um computador, você está implementando parcialmente uma máquina de Turing (a Máquina de Turing ideal tem memória infinita). Ela segue regrinhas simples: os programas e os dados são escritos numa fita (imagine uma fita de papel ou uma fita magnética) e a máquina lê as instruções e os dados da fita, toma decisões simples, e escreve os resultados na fita. Seu computador lê do disco rígido ou da rede, e mostra informações na tela, mas no fim das contas funciona como se lesse ou escrevesse da fita (ou seja, a fita é uma abstração dos dispositivos de entrada, saída e armazenamento).

Recentemente fez sucesso (pelos tradicionais 15 minutos) um vídeo de uma Máquina de Turing feita de LEGO, mostrado abaixo.

Eu disse que todo computador é uma Máquina de Turing; isso significa que alguém construiu um computador de verdade, completamente mecânico, apenas com pecinhas de plástico ? Estamos acostumados a computadores eletrônicos; será possível um computador mecânico, movido a manivela ?

Infelizmente, não. A tal da Máquina de Turing de LEGO é só uma brincadeira, uma ilustração, é uma máquina de Turing de mentirinha. Quem controla todo o movimento da máquina é na verdade um pequeno microcomputador eletrônico, um módulo do LEGO Mindstorms. Ora, o microcontrolador dos Mindstorms é uma implementação eletrônica da Máquina de Turing, então nossa esperança de um computador não-eletrônico feito de LEGO foi por água abaixo!

Mas não desanimem ainda. Várias décadas antes do Alan Turing, Charles Babbage, um inventor do século XIX, propôs dois mecanismos interessantíssimos, a Máquina Diferencial (ou Máquina de Diferenças) e a Máquina Analítica. As duas eram completamente mecânicas, parecidas com um relógio extremamente complexo, e projetadas para serem movidas por um motor a vapor (ou qualquer outra coisa capaz de girar uma manivela).

A Máquina Diferencial era capaz de realizar cálculos matemáticos bastante complexos. Ela chegou a ser construída na época, mas Babbage nunca conseguiu terminá-la. Muitos anos depois, especialistas completaram uma Máquina Diferencial seguindo as plantas originais, e mostraram que ela realmente funcionava. Esse modelo completo pode ser visto no Museu de Ciências de Londres (que aliás é um passeio espetacular pra quem estiver visitando a Inglaterra – eu passei um dia inteiro lá).

Já a Máquina Analítica nunca saiu do papel – pelo menos não da forma imaginada por Babbage. A Máquina Analítica seria um computador programável completo, totalmente mecânico, nos moldes da Máquina Diferencial. Era, portanto, uma Máquina de Turing mecânica – algo espetacular e tão complexo que mesmo hoje em dia não é viável implementá-la, apesar de todos os conceitos importantes terem sido corretamente planejados por Babbage. A primeira implementação real de uma Máquina Turing – ou seja, o primeiro computador – só veio muitos anos depois, com o advento dos componentes eletrônicos e eletromecânicos.

E o LEGO ? Bom, a máquina de Turing em LEGO é de brincadeirinha, e uma Máquina Analítica mecânica nunca foi construída. Mas teve gente que construiu uma Máquina Diferencial de LEGO, um feito genuinamente incrível! Não é um computador de verdade, mas é o mais próximo que já se chegou disso com mecanismos de plástico:

Máquina Diferencial em LEGO

Máquina Diferencial em LEGO

Acharam bizarro ? Aguardem então meu próximo artigo, em que quero falar de computadores a água. E não estou falando de usar água para fornecer energia a computadores mecânicos ou eletrônicos, mas sim de usar água ao invés de elétrons, e canos ao invés de fios, num dispositivo sem partes móveis. Depois da Mecânica e da Eletrônica, chegou a vez Fluídica!

5 Respostas
  1. muriloq » Blog Archive » Computadores Mecânicos Feitos com LEGO :

    Date: fevereiro 13, 2009 @ 2:12 pm

    [...] Computadores Mecânicos Feitos com LEGO [...]

  2. Giseli :

    Date: fevereiro 13, 2009 @ 8:36 pm

    Computadores a água dariam uma ótima história steampunk :D

  3. Karine Drumond :

    Date: fevereiro 15, 2009 @ 9:23 pm

    “Costumo dizer que a palavra preferida de cientistas da computação é abstração: de sistemas complexos de software até o nível mais baixo no hardware, quase tudo que fazemos tem a ver com abstrair os detalhes do nível abaixo para realizar de forma simples tarefas no nível superior.”

    Abstrair também é a “arma” do bom designer: Abstrair para conseguir enxergar uma necessidade humana, antes mesmo da solução. :)

  4. João Maio :

    Date: março 16, 2009 @ 1:18 pm

    Fixeeeeeeeeeeeeeeeeeeeeeeeeeeee!

  5. dapliuesse :

    Date: abril 14, 2009 @ 3:23 pm

    Há ainda as máquinas eletro-mecânicas de Konrad Zuse:
    http://user.cs.tu-berlin.de/~zuse/Konrad_Zuse/