Você está na página 1de 204

HISTRIA DA COMPUTAO: O CAMINHO DO PENSAMENTO E DA TECNOLOGIA

Pontifcia Universidade Catlica do Rio Grande do Sul


Chanceler: Dom Dadeus Grings Reitor: Joaquim Clotet Vice-Reitor: Evilzio Teixeira Conselho Editorial: Ana Maria Tramunt Ibaos Antnio Hohlfeldt Dalcdio M. Cludio Delcia Enricone Draiton Gonzaga de Souza Elvo Clemente Jaderson Costa da Costa Jernimo Carlos Santos Braga Jorge Campos da Costa Jorge Luis Nicolas Audy (Presidente) Juremir Machado da Silva Lauro Kopper Filho Lcia Maria Martins Giraffa Luiz Antonio de Assis Brasil Maria Helena Menna Barreto Abraho Marlia Gerhardt de Oliveira Ney Laert Vilar Calazans Ricardo Timm de Souza Urbano Zilles EDIPUCRS: Jernimo Carlos Santos Braga Diretor Jorge Campos da Costa Editor-chefe

Cluzio Fonseca Filho

HISTRIA DA COMPUTAO: O CAMINHO DO PENSAMENTO E DA TECNOLOGIA

PORTO ALEGRE 2007

EDIPUCRS, 2007 Capa: Vincius de Almeida Xavier Diagramao: Carolina Bueno Giacobo e Gabriela Viale Pereira Reviso: do autor

F676h Fonseca Filho, Cluzio Histria da computao [recurso eletrnico] : O Caminho do Pensamento e da Tecnologia / Cluzio Fonseca Filho. Porto Alegre : EDIPUCRS, 2007. 205 p. Sistema requerido: Adobe Acrobat Reader Modo de acesso: World Wide Web: <http://www.pucrs.br/orgaos/edipucrs/> ISBN 978-85-7430-691-9 (on-line) 1. Informtica. 2. Informtica Histria. 3. Computao Teoria. CDD 004

Ficha catalogrfica elaborada pelo Setor de Processamento Tcnico da BCPUCRS

EDIPUCRS Av. Ipiranga, 6681 - Prdio 33 Caixa Postal 1429 90619-900 Porto Alegre, RS - BRASIL Fone/Fax: (51) 3320-3523 E-mail: edipucrs@pucrs.br http://www.pucrs.br/edipucrs/

Prefcio
Esta obra se prope a um objetivo bastante ousado: recontar a histria da computao a partir de um panorama de idias e modelos. Vence este desafio com galhardia. Neste sentido, a escolha do nome foi feliz e adequada, dado que realmente busca um ponto de vista original, fugindo de um simples relato de fatos em ordem cronolgica. Bebeu na fonte de autoridades reconhecidas como o medievalista Jacques Le Goff, um dos criadores da nova historiografia, ou de historiadores da cincia do peso de Karl Popper, Thomas Khun e Imre Lakatos. To boa companhia certamente inspirou o autor na concepo de um todo abrangente, atualizado e inter-relacionado. Deixa claro, por exemplo, que aquelas geringonas desengonadas e enormes do ps-guerra e o mais moderno e colorido equipamento atual, apresentam ainda muita coisa em comum: rigorosamente seguem o mesmo princpio de funcionamento. verdade que os computadores continuam a ganhar poder e velocidade de forma espantosa, numa evoluo sem precedentes na tecnologia. Seguem possuindo os componentes estabelecidos por Von Neumann h meio sculo, como tambm a sua idia de programa armazenado, que executado separadamente do hardware, converteu-o em uma mquina de propsito geral. No entanto, o processamento paralelo, a engenharia de software e a evoluo das comunicaes que culminaram na Internet, elevaram a tecnologia a patamares jamais sonhados pelos fundadores. Por outro lado, para desenvolver as postulaes que fundamentaram tamanho avano, os criadores primevos apoiaram-se em resultados abstratos e outros nem tanto de pensadores do porte de Gdel, Hilbert e Turing, para citar alguns, devidamente creditados no decurso da obra. Antes mesmo de se construir a primeira mquina baseada em rels, a estrada para sua concepo estava aplainada pela contribuio destes visionrios, que propuseram solues tericas bem frente de seu tempo e cuja realizao parecia, ento, impraticvel. Esta a melhor contribuio do livro: demonstrar que a computao nasceu do desejo de se compreender a capacidade que tem o homem em resolver problemas de forma sistemtica. Assim, a tentativa de reproduzir mecanicamente estes procedimentos, muitos deles exaustivamente repetitivos, lanou as bases para estabelecer a computao como a conhecemos hoje. A evoluo dos conceitos em informtica sempre esteve intrinsecamente ligada da matemtica. Nas universidades, a computao nasceu dentro dos Departamentos de Matemtica. Isto justifica o resumo da histria da matemtica, brilhantemente apresentado segundo uma evoluo de conceitos. Evitando quebrar o ritmo e sem truncar a narrativa, dse ao luxo de fornecer fatos curiosos e pouco conhecidos como, s para exemplificar, a dificuldade para a aceitao dos algarismos indo-arbicos por parte dos mercadores europeus, pois alguns smbolos sendo parecidos, facilitaria a falsificao. Todo o texto est tratado de forma leve e agradvel, sem se afastar do necessrio rigor. A leitura flui como em um romance. No cansa com detalhes desnecessrios. Muito ao contrrio, chegamos ao final desejando mais. Os anexos so oportunos, permitindo um aprofundamento de tpicos ligados fundamentao, inadequados se includos no corpo principal. Vale lembrar que o primeiro deles uma cronologia comparada, um grande esforo

de compilao, que permite contextualizar os avanos da matemtica e da computao a par de outras reas tecnolgicas. Na histria mais recente da computao, no se prende somente evoluo do hardware, que foi fundamental para o desenvolvimento da disciplina, mas incapaz de justificar tamanha difuso. Mostra o crescimento das linguagens de computao do Assembler Java a distino entre os paradigmas de programao imperativas e declarativas, os aprimoramentos na arquitetura, os avanos do sistema operacional; enfim, a cristalizao da Computao como Cincia. No esquece de abordar tpicos destacados como Inteligncia Artificial, Ciberntica e o delicado equilbrio entre o homem e a tecnologia. Enfim, trata-se de uma obra surpreendentemente abrangente, dado seu tamanho compacto. Leitura fcil e gil, despertar interesse no s de especialistas da rea como tambm de pessoas afastadas do mundo dos computadores. No entanto, vislumbramos ganho maior para este texto no ensino de Computao, pois como afirma com propriedade na concluso, Cada conceito tem o seu lugar, a sua importncia e a sua histria que necessrio ser ensinado. Esta perspectiva sem dvida enriquecer a viso dos estudantes, embasando mais fortemente a essncia do assunto, dando subsdos para se tornarem profissionais melhores. Roberto Lins de Carvalho

Do autor
Fascinante! Ainda recordo esta palavra, dita por quem depois orientaria a minha dissertao de mestrado, origem deste livro: somente iria para a frente na futura tese se estivesse fascinado pelo assunto. E devo dizer que foi exatamente isso que aconteceu. Excetuando-se alguns crculos mais tericos, normalmente considerado pela maioria das pessoas, inclusive dentro da prpria Computao, que os dispositivos computacionais, que hoje fazem parte do nosso cotidiano, surgiram, por volta da dcada de 1940. O sculo XX teve a glria de materializar tantos artefatos, em tantas reas, que esquecemos que na verdade so resultado, fruto, do labor de muitos que nos precederam. A Computao no escapa a essa lei. Nomes como Turing, Hilbert, Church, Frege e tantos outros at chegar a Aristteles e aos babilnios de 4.000 a.C. misturam-se com lgica matemtica, sistemas axiomticos, formalismo e lgebra. Ao se estudar um pouco, percebe-se que toda essa tecnologia fruto de um devir de sculos, uma auto-estrada de quase 2000 anos, paciente e laboriosamente pavimentada por figuras que so desconhecidas por muitos de ns, profissionais de informtica, ou s superficialmente conhecidas. Procurar resgatar este lado humano e terico da computao, contribuir de alguma forma para que outras pessoas da rea ou de fora dela possam apreciar desde outro ngulo os alicerces deste imponente edifcio formado pela tecnologia dos computadores, entusiasmar aqueles que esto entrando na rea de informtica, so os objetivos principais deste livro. No pensei nada de novo, nem tive pretenses de originalidade. Afinal a histria j foi feita! Tudo que escrevi j estava registrado. Apenas percebi que faltavam, e ainda faltam, trabalhos em portugus que tratem dos conceitos e idias que fundamentaram a Computao. Logicamente no esgotei nenhum tema, somente procurei traar uma linha coerente da evoluo destes conceitos, aprofundando um pouco mais em um caso ou outro, procurando deixar uma boa bibliografia, embora haja muitos livros que possam ser acrescentados. Espero que este trabalho sirva como ponto de partida para outros, pois h muita coisa a ser feita para iluminar e tornar mais acessveis determinados conceitos. Gostaria de deixar constantes alguns agradecimentos. Em primeiro lugar ao prof. Dr. Aluzio Arcela, do Departamento de Computao da UnB, orientador da minha dissertao de mestrado e quem sugeriu e acompanhou aqueles meus primeiros estudos, base desta obra. Ao prof. Dr. Nelson Gonalves Gomes, do Departamento de Filosofia da UnB, que tanta pacincia teve para esclarecer alguns conceitos lgico-matemticos e fornecer indicaes preciosas de bibliografia. E um especial agradecimento ao prof. Dr. Roberto Lins de Carvalho (PUC-RJ) pelo incentivo que deu e entusiasmo que transmitiu ao tomar conhecimento do que estava fazendo, sem o que possivelmente no teria me atrevido a escrever coisa alguma. E aos amigos e colegas que me apoiaram e ajudaram na reviso desse trabalho, e que acabaram por lhe dar uma forma mais amigvel. Cluzio Fonseca Filho

ndice
1 1.1 2 2.1 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 4 INTRODUO ORDENAO DOS ASSUNTOS UMA REFLEXO SOBRE A HISTRIA A HISTRIA E SUAS INTERPRETAES A HISTRIA DA CINCIA ENFOQUE HISTRICO ADOTADO MOTIVAES PARA SE ESTUDAR A HISTRIA DA COMPUTAO NECESSIDADE DE DISCERNIR FUNDAMENTOS INCENTIVO EDUCAO PARA A QUALIDADE DO SOFTWARE TORNAR CLAROS E LIGAR OS FATOS ACOMPANHAR NOVAS TENDNCIAS REVALORIZAR O FATOR HUMANO EVOLUO DOS CONCEITOS 13 14 16 17 19 21 23 23 24 26 27 27 29 29 29 35 36 39 40 42 45 49 49 53 54 56 58 61 62 64 68 68 71 73 74 75 76 77 77

4.1 PRIMRDIOS 4.1.1 A EVOLUO DO CONCEITO DE NMERO E DA ESCRITA NUMRICA 4.1.2 DESENVOLVIMENTOS INICIAIS DA CINCIA DO CLCULO 4.1.3 A LGICA DE ARISTTELES 4.1.4 A CONTRIBUIO DOS MEGRICOS E ESTICOS 4.1.5 EUCLIDES E O MTODO AXIOMTICO 4.1.6 DIOPHANTUS, AL-KHARAZMI E O DESENVOLVIMENTO DA LGEBRA 4.1.7 A AUTOMATIZAO DO RACIOCNIO 4.2 A MECANIZAO DO CLCULO 4.2.1 LEIBNIZ, O PRECURSOR DA LGICA MATEMTICA MODERNA 4.2.2 O PROBLEMA DA NOTAO 4.3 A LGICA MATEMTICA NO SCULO XIX 4.3.1 BOOLE E OS FUNDAMENTOS DA LGICA MATEMTICA E DA COMPUTAO 4.3.2 A IMPORTNCIA DE FREGE E PEANO 4.4 O DESENVOLVIMENTO DA LGICA MATEMTICA 4.5 A CRISE DOS FUNDAMENTOS E AS TENTATIVAS DE SUPERAO 4.5.1 A FIGURA DE DAVID HILBERT 4.6 KURT GDEL: MUITO ALM DA LGICA 4.6.1 UM POUCO DE HISTRIA 4.6.2 VERDADE E DEMONSTRABILIDADE 4.6.3 OUTRAS CONQUISTAS 4.7 ALAN MATHISON TURING: O BERO DA COMPUTAO 4.7.1 A MQUINA DE TURING 4.7.2 O PROBLEMA DA PARADA E O PROBLEMA DA DECISO 4.7.3 OUTRAS PARTICIPAES 4.7.3.1 Decifrando cdigos de guerra

4.7.3.2 O computador ACE e inteligncia artificial 4.7.3.3 Programao de computadores 4.7.4 O TRISTE FIM 4.8 A TESE DE CHURCH-TURING E OUTROS RESULTADOS TERICOS 5 PR-HISTRIA TECNOLGICA DISPOSITIVOS MAIS ANTIGOS LOGARITMOS E OS PRIMEIROS DISPOSITIVOS MECNICOS DE CLCULO CHARLES BABBAGE E SUAS MQUINAS A MQUINA DE JACQUARD, INSPIRAO DE BABBAGE UMA LADY COMO PRIMEIRA PROGRAMADORA OUTRAS MQUINAS DIFERENCIAIS E MQUINAS ANALTICAS A LTIMA CONTRIBUIO DO SCULO XIX: HERMAN HOLLERITH COMPUTADORES ANALGICOS PRIMEIRAS EVOLUES: SCULO XV MICHELSON E SEU ANALISADOR HARMNICO; I GUERRA MUNDIAL COMPUTADORES ANALGICOS ELETROMECNICOS CIRCUITOS ELTRICOS E FORMALISMO LGICO: CLAUDE ELWOOD SHANNON

78 79 80 80 85 85 85 86 89 90 91 92 93 95 96 97 98 101 101 101 102 103 103 104 105 105 109 109 111 111 112 113 115 116 116 117 119 122 123 123 123 127 130 131 134 137

5.1 5.2 5.3 5.3.1 5.3.2 5.4 5.5 5.6 5.6.1 5.6.2 5.6.3 5.7 6

AS PRIMEIRAS MQUINAS OS PRIMEIROS COMPUTADORES ELETROMECNICOS KONRAD ZUSE AS MQUINAS DA BELL E AS MQUINAS DE HARVARD A PARTICIPAO DA IBM O INCIO DA ERA DA COMPUTAO ELETRNICA ESTADOS UNIDOS: ENIAC, EDVAC E EDSAC A CONTRIBUIO INGLESA: O COLOSSUS OUTRAS CONTRIBUIES AS PRIMEIRAS LINGUAGENS ALGUNS ASPECTOS TERICOS DESENVOLVIMENTOS ANTERIORES A 1940 AS PRIMEIRAS TENTATIVAS KONRAD ZUSE E SEU PLANCALCULUS O DIAGRAMA DE FLUXOS A CONTRIBUIO DE HASKELL INTERPRETADORES ALGBRICOS E LINGUAGENS INTERMEDIRIAS OS PRIMEIROS COMPILADORES A FIGURA DE VON NEUMANN O CONCEITO DE PROGRAMA ARMAZENADO A ARQUITETURA DE VON NEUMANN

6.1 6.1.1 6.1.2 6.1.3 6.2 6.2.1 6.2.2 6.2.3 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.4 6.5 6.6 6.6.1 6.6.2 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7

A REVOLUO DO HARDWARE E DO SOFTWARE DA SEGUNDA GERAO DE GRANDES COMPUTADORES AOS DIAS DE HOJE O DESENVOLVIMENTO DAS LINGUAGENS ARQUITETURAS DE COMPUTADORES E SISTEMAS OPERACIONAIS UMA NOVA MENTALIDADE A COMPUTAO COMO CINCIA A INTELIGNCIA ARTIFICIAL UMA NOVA DISCIPLINA: A CIBERNTICA

8 8.1 8.2 9

A DISSEMINAO DA CULTURA INFORMTICA O DOMNIO E O CONTROLE DAS INFORMAES O EQUILBRIO ENTRE O TOQUE HUMANO E A TECNOLOGIA CONCLUSO

139 139 140 145

10

REFERNCIAS BIBLIOGRFICAS

147

ANEXO CRONOLOGIA (AT O ANO 2007)

154

ANEXO O MTODO AXIOMTICO E AS CINCIAS DEDUTIVAS

174

ANEXO DEDUO E INDUO NA MATEMTICA

175

ANEXO - A ARITMTICA DE PEANO

179

ANEXO - O MTODO DAS DIFERENAS

180

ANEXO - A CONCEPO FORMALISTA DA MATEMTICA

182

ANEXO - O PROBLEMA DA DECISO NA MATEMTICA

186

ANEXO - O TEOREMA DA INCOMPLETUDE DE GDEL

187

ANEXO - MQUINAS DE TURING

191

ANEXO - ASTROLBIO

195

ANEXO - TURING E A MQUINA ENIGMA

199

NDICE DE FIGURAS

204

1 Introduo
A cincia normalmente cumulativa, isto , constroem-se instrumentos mais poderosos, efetuam-se medidas mais exatas, precisam-se melhor e ampliam-se os conceitos das teorias, e assim por diante. Embora os paradigmas possam mudar, as pesquisas normalmente evoluem com base em resultados do passado, que se constituem em fundamentos de um desenvolvimento posterior. O cientista estar mais seguro em suas pesquisas e mais preparado para novos desafios se souber como seu assunto especfico evoluiu historicamente, quais as dificuldades maiores, as solues encontradas e os problemas pendentes. Nas cincias mais tradicionais Filosofia, Matemtica, Fsica, Biologia, etc. existem sempre estudos de histria junto a muitos outros dedicados a pensadores, inventores e conquistadores de primeira, segunda ou terceira grandeza, alm de inmeras monografias. No caso da Computao, necessrio que apaream trabalhos para servir de base e referncia aos estudantes, novos pesquisadores e aqueles interessados pelos aspectos tericos que esto por detrs dessa tecnologia que domina o cotidiano neste fim e incio de milnios. A Histria da Computao est marcada por interrupes repentinas, por mudanas inesperadas e imprevistas, tornando-se difcil a viso da evoluo dos computadores mediante uma mera enumerao linear de invenes-nomes-datas. O desejo de conhecer as vinculaes que o trabalho de determinados homens estabeleceram no tempo vem acompanhado do impulso de compreender o peso desses atos no conjunto da Histria da Computao. Buscar uma compreenso dos fatos atravs dos acontecimentos que o precederam um dos principais objetivos que estar presente neste estudo da Histria da Computao. A computao um corpo de conhecimentos formado por uma infra-estrutura conceitual e um edifcio tecnolgico onde se materializam o hardware e o software. A primeira fundamenta a segunda e a precedeu. A teoria da computao tem seu desenvolvimento prprio e independente, em boa parte, da tecnologia. Essa teoria baseia-se na definio e construo de mquinas abstratas, e no estudo do poder dessas mquinas na soluo de problemas. A nfase deste livro estar nessa dimenso terica, procurando mostrar como os homens, atravs dos tempos, buscaram elaborar mtodos efetivos para a soluo de diversos tipos de problemas. A preocupao constante de minimizar o esforo repetitivo e tedioso produziu o desenvolvimento de mquinas que passaram a substituir os homens em determinadas tarefas. Entre essas est o computador, que se expandiu e preencheu rapidamente os espaos modernos pelos quais circulam as pessoas. A partir do aparecimento da noo de nmero natural, passando pela notao aritmtica e pela notao mais vinculada ao clculo algbrico, mostra-se como apareceram regras fixas que permitiram computar com rapidez e preciso, poupando, como dizia Leibniz, o esprito e a imaginao. Descartes acreditava no emprego sistemtico do clculo algbrico como um mtodo poderoso e universal para resolver todos os problemas. Esta crena juntou-se de outros e surgem as primeiras idias sobre mquinas universais, capazes de resolver todos os problemas. Esta era uma crena de mentes poderosas que deixaram obras respeitveis na Matemtica e nas cincias em geral [CO98].

13

Tambm inteno do presente estudo procurar compreender e estabelecer as diretrizes para uma disciplina de Histria da Computao, mediante a seleo das idias, teorias e conceitos que ajudaram os homens em sua busca da automatizao dos processos aritmticos e que conduziram tecnologia dos computadores. No Brasil ainda no existem livros que tratem do assunto Histria da Computao, observando-se uma lacuna cultural que pases do primeiro mundo preocupam-se em preencher * j faz alguns anos. Pretende-se que este trabalho seja uma contribuio nesse sentido e um ponto de partida para novos estudos de Histria, pois so muitos os campos que podero ser abertos.

1.1 Ordenao dos assuntos


O desenvolvimento deste livro estar apoiado na seguinte seqncia de captulos: Uma reflexo sobre a Histria Motivaes para se estudar a Histria da Computao Evoluo dos conceitos Pr-Histria tecnolgica As primeiras mquinas A revoluo do hardware e do software A disseminao da cultura informtica e o controle das informaes Concluso Primeiramente ser tratado o tema da Histria: constatar sua existncia e necessidade, aspectos da evoluo da cincia histrica e tocar particularmente o tema da Histria da Cincia, que se relaciona com o presente trabalho. Logo a seguir vir uma breve explanao de motivos que incentivam a aprofundar no estudo do tema especfico da Histria da Computao. Em Evoluo dos conceitos ser mostrado o desenvolvimento dos conceitos tericos que formaram a base para o surgimento da Computao. O caminho a ser usado ser o da Histria da Matemtica, desde os seus primrdios por volta do ano 4.200 a.C. poca provvel de um calendrio solar egpcio [Boy74] , passando pelas contribuies das culturas babilnica, hindu, chinesa, rabe e grega, pelo baco, pela primeira mquina de calcular, at Boole, Hilbert, Turing e von Neumann, entre outros, nos anos 30, 40 e 50 do sculo XX. A partir da, a Computao constri a sua prpria histria, embora os laos com a matemtica continuem sempre muito estreitos. Por Pr-Histria tecnolgica entende-se a enumerao de alguns dispositivos analgicos primitivos, as primeiras tentativas de se construir um dispositivo de clculo com Leibniz, Pascal, Babbage, Hollerith, etc., o surgimento dos dispositivos analgicos modernos planmetros, analisadores harmnicos, etc. e os primeiros 'computadores' eletromecnicos por volta dos anos de 1930 e 1940. Em As primeiras mquinas ver-se- a construo dos primeiros dispositivos computacionais e os primeiros passos que so dados nesse campo essencial da Computao
*

Nestes ltimos dez anos vrios livros j foram publicados em outros idiomas.

14

que so as Linguagens de Programao. J estava formada a infra-estrutura conceitual necessria e a tecnologia j possibilitava o desenvolvimento de dispositivos mais poderosos e precisos para a execuo de clculos. Sob o ttulo de A revoluo do hardware e do software abordar-se- o desenvolvimento posterior da Computao, os avanos da Inteligncia Artificial, das Linguagens de Programao e Arquitetura de Computadores. Segue-se tambm uma anlise da Computao como uma Cincia, da Teoria da Computao, das bases matemticas para Anlise de Algoritmos, e do surgimento do tema da Complexidade Computacional. No captulo A disseminao da cultura informtica e a proliferao das informaes dois assuntos sero colocados. O primeiro tratar do impacto social do desenvolvimento da Computao e da necessidade de uma anlise mais cuidadosa dos dados que os computadores tornaram disponveis ao homem. O segundo far algumas consideraes sobre alguns limites do uso dos computadores.

15

2 Uma reflexo sobre a Histria


Uma curiosidade de explicar e compreender o mundo o estmulo que leva os homens a estudarem o seu passado. Arnold Toynbee Da curiosidade do homem por si mesmo nasce a histria. A. Brunner

Na lngua latina a palavra histria expressa dois conceitos distintos: plenitude de suceder e o conhecimento que se possui desse suceder. Sua origem procede de certa raiz grega que significa inquirir, com inclinao curiosidade [Fer85]. Plenitude de suceder, conhecimento desse suceder, recuperao dos valores antigos..., palavras que significam algo mais que uma mera enumerao de nomes, lugares, datas, nmeros, etc. Consiste antes de tudo em um debruar-se sobre o passado e formularlhe perguntas para se apropriar do seu legado (da tradio, de traducere, entregar). Ningum produz por si mesmo os conhecimentos de que necessita para sobreviver em meio sociedade na qual nasce; a grande maioria chega como algo adquirido, que se recebe pela interao com o meio ambiente. Desde o instante em que o homem se d conta do mundo e de si mesmo, percebe-se rodeado de instituies e tradies que vive e atualiza de um modo natural, sem se dar conta de que foi forjado nesse entorno, com atitudes e pontos de vista to arraigados em seu modo de ser, em sua psicologia, que nada lhe parece estranho ou desconhecido. Somente quando o homem sai do seu entorno vital e entra em contato com novas superfcies de valores, tradies, costumes, que comea a compar-los com os seus e a se perguntar reflexivamente sobre tais coisas, pelas verdades de umas e outras. A histria parte dessa necessidade humana de refletir: o desejo de explicar a origem e a verdade das prprias instituies, quem ou qual acontecimento as estabeleceu. Para responder sobre sua existncia atual e conhecer a si mesmo o homem tem de mergulhar no seu passado, perguntando s geraes anteriores por que fizeram essas instituies e no outras, por que surgiram esses precisos costumes e atitudes, por que ele tem essa herana cultural, e assim por diante. Por possuir uma herana que cada homem um historiador em potencial. Assim como em cada homem h uma evoluo biolgica necessria, h tambm a manuteno de uma identidade ao longo das vrias etapas desse desenvolvimento biolgico, que nos distinguem e nos tornam nicos, sendo fator de compreenso do modo pessoal de ser. Com a histria buscamos essa nossa identidade para compreender o momento presente. E isto pode e deve ocorrer sob pontos de vista especficos: sociais, psicolgicos, filosficos e tecnolgicos. Paul M. Veyne fala ainda da histria como compreenso, contrapondo o uso deste termo ao uso do termo explicao. Em seu sentido mais forte explicar significa atribuir um fato a seu princpio ou uma teoria a outra mais geral como fazem as cincias ou a filosofia. Nesse caso, a histria seria uma difcil conquista porque a cincia s conhece leis, sistemas hipotticodedutivos, e no mundo da histria reinam, lado a lado, a liberdade e o acaso, causas e fins, etc. Para Veyne a histria apresenta um carter acientfico no sentido de que difcil buscar princpios universais que tornem os acontecimentos inteligveis, ou achar mecanismos de 16

causa e efeito para se poder deduzir, prever. (...) a Revoluo Francesa se explica pela subida de uma burguesia capitalista: isto significa, simplesmente, (...) que a narrao da revoluo mostra como essa classe ou seus representantes tomaram as rdeas do estado: a explicao da revoluo o resumo desta e nada mais. Quando solicitamos uma explicao para a Revoluo Francesa, no desejamos uma teoria da revoluo em geral, da qual se deduziria a de 1789, nem um esclarecimento do conceito de revoluo, mas uma anlise dos antecedentes responsveis pela exploso desse conflito (...). Busca-se portanto uma compreenso dos fatos atravs dos acontecimentos que o precederam* [Vey82]. Toda verdadeira investigao edifica-se estabelecendo-se com a mxima exatido possvel o j sabido, para depois poder perguntar com exatido, de maneira que se possam encontrar respostas. S partindo da informao adquirida podem ser feitas perguntas capazes de ter resposta, e no perguntas deslocadas, no vazio, que nunca podero ser respondidas. necessrio caminhar passo a passo, um aps o outro: em toda busca que se queira chegar a algo preciso estabelecer com preciso o problema, planejar possveis linhas de ataque conceitual e valorar as aparentes solues. Tal enfoque ser um dos que estaro presentes neste estudo crtico da Histria da Computao atravs de uma viso conceitual. Pode-se aplicar a essa histria a mesma afirmao que faz Thomas Khun sobre a Histria da Cincia: est marcada por interrupes repentinas, por inesperadas e imprevistas mudanas, exigindo modelos de conhecimento que supom alteraes inesperadas no processo do seu desenvolvimento ([RA91], vol III). Em funo desse fato torna-se difcil a viso da evoluo dos computadores mediante uma mera enumerao linear de invenes-nomes-datas , forando-nos a tentar compreender as foras e tendncias que, no passado, prepararam o presente. O desejo de conhecer as vinculaes que os atos de determinados homens estabeleceram no tempo vai acompanhado do impulso de compreender o significado de tais atos no conjunto da Histria da Computao.

2.1 A Histria e suas interpretaes


Desde o seu nascimento nas civilizaes ocidentais, tradicionalmente situado na antigidade grega (Herdoto, sculo V a.C. considerado por alguns como o pai da histria), a cincia histrica se define em relao a uma realidade que no construda nem observada, como na matemtica ou nas cincias da natureza, mas sobre a qual se indaga, se testemunha. Este aspecto da histria-relato, da histria-testemunho, jamais deixou de estar presente no desenvolvimento da cincia histrica.

Se a histria ou no cincia uma questo muito disputada entre vrios autores e tema ainda polmico. No tratado Histria e Memria do medievalista francs Jacques Le Goff [Gof94], captulo Histria, item 1, desenvolve-se uma panormica geral dessas correntes e tendncias existentes entre historiadores e tericos da histria. Obviamente no se quer tirar aqui a importncia da datao. Como diz Le Goff, o historiador deve respeitar o tempo que, de diversas formas, condio da histria e que deve fazer corresponder os seus quadros de explicao cronolgica durao do vivido. Datar , e sempre ser, uma das tarefas fundamentais do historiador, mas deve-se fazer acompanhar de outra manipulao necessria da durao a periodizao para que a datao se torne historicamente pensvel [Gof94]. No se dispensar este trabalho de ter uma cronologia, a partir da qual se possa situar no tempo os homens e os fatos mais representativos de uma determinada corrente de idias ou descobertas. No anexo I h uma tabela da evoluo conceitual e tecnolgica por data.

17

A partir do momento em que se comearam a reunir documentos escritos, a historiografia comea a ultrapassar os limites do prprio sculo abrangido pelos historiadores, superando tambm as limitaes impostas pela transmisso oral do passado. Com a construo de bibliotecas e a criao de arquivos iniciou-se o desenvolvimento de mtodos de crtica. Sobretudo depois do final do sculo XVII, estabeleceram-se os fundamentos para uma metodologia aplicada histria, sob uma radical exigncia de submeter todas as investigaes razo crtica [Fer85]. A segunda metade do sculo XIX imps o paradigma de uma histria que a partir da chamar-se- paradigma tradicional ou paradigma rankeano, derivado do nome do historiador Leopold von Ranke (1795-1886). Ranke propunha apresentar os fatos tais como o foram na realidade e os historiadores europeus criaram os grandes esquemas polticos e institucionais. Caractersticas desse paradigma, conforme Peter Burke, historiador de Cambridge [Bur92b]: a histria diz respeito essencialmente poltica; essencialmente uma narrativa de acontecimentos; viso de cima no sentido de estar concentrada nos feitos dos grandes homens; baseada em documentos; deveria perguntar mais pelas motivaes individuais do que pelos movimentos coletivos, tendncias e acontecimentos; a histria objetiva, entendendo-se por isso a considerao do suceder como algo externo ao historiador, suscetvel de ser conhecido como objeto que se pe diante do microscpio, almejando uma neutralidade. Ainda no sculo XIX algumas vozes soaram discordantes desse paradigma histrico. Entre outras coisas devido ao seu carter reducionista, onde situaes histricas complexas so vistas como mero jogo de poder entre grandes homens (ou pases), e tambm em funo daquilo que se poderia chamar a tirania do fato ou do documento, importantes sem dvida, mas que no deve levar a abdicar de outros tipos de evidncias. Como relata Peter Burke, Michelet e Burckhardt, que escreveram suas histrias sobre o Renascimento mais ou menos na mesma poca, 1865 e 1860 respectivamente, tinham uma viso mais ampla do que os seguidores de Ranke. Burckhardt interpretava a histria como um corpo onde interagem trs foras Estado, Religio e Cultura enquanto Michelet defendia o que hoje poderamos descrever como uma histria da perspectiva das classes subalternas(...) [Bur92a]. Outros opositores da histria poltica foram os historiadores da evoluo das sociedades sob o ponto de vista econmico e os fundadores da nova disciplina da sociologia, que comearam a surgir na Frana. Dois fatos, no entanto, ocorridos nas quatro primeiras dcadas do sculo XX acabariam por sacudir e arruinar a confiana nos princpios rankeanos, O primeiro foi a rpida difuso do marxismo, que renuncia neutralidade, afirmando que o materialismo dialtico a nica filosofia cientfica vlida para a interpretao da histria; o segundo, a grande crise do ano de 1929, que revelou at que ponto os fatores econmicos e sociais podem exercer uma ao decisiva.

18

desse perodo o nascimento da revista francesa Annales, considerada uma das mais importantes propulsoras da chamada Nova Histria. Nova Histria um termo que data de 1912, quando o estudioso americano James Harvey Robinson publicou um livro com esse ttulo. Segundo Robinson, histria inclui todo trao e vestgio de tudo o que o homem fez ou pensou desde seu primeiro aparecimento sobre a terra. Em relao ao mtodo, a nova histria vai servir-se de todas aquelas descobertas que so feitas sobre a humanidade, pelos antroplogos, economistas, psiclogos e socilogos [Bur92b]. Surgiu a idia de uma histria total, com a qual quiseram os autores da Escola dos Annales advertir que, frente unilateralidade e reducionismo do materialismo dialtico, a compreenso do passado exige que todos os dados polticos e institucionais, ideolgicos, econmicos, sociais, da mentalidade humana, etc. fossem fundidos e integrados para conseguir uma explicao correta. Uma tarefa rdua, na prtica quase impossvel, mas que marca um ideal, uma direo, uma meta que preciso atingir. Surgiram ainda outros enfoques como, por exemplo, a histria do ponto de vista quantitativo, durante certo tempo em moda na Europa e Estados Unidos, que procura utilizar fontes quantitativas, mtodos de contagem e at modelos matemticos na sua pesquisa histrica, ou as histrias que abrangem um determinado campo da vida humana como a histria da arte ou a histria das cincias [GN88]. O panorama atual, de acordo com os historiadores, o de uma histria fragmentada, detectando-se alguns sinais de busca de uma sntese. Ainda se est a uma longa distncia da histria total. Na verdade, difcil acreditar que esse objetivo possa ser facilmente alcanado ou at que ser alcanado , mas alguns passos j foram e esto sendo dados em sua direo. Paralelamente a todos esses esforos, surgiram tambm os tericos da histria, que se esforaram ao longo dos sculos para introduzir grandes princpios que pudessem fornecer linhas gerais de compreenso para a evoluo histrica. A filosofia da histria o estudo da realidade latente, ou melhor, do pano de fundo dos fatos histricos. Qual a natureza, por exemplo, das crises de crescimento e decadncia de uma civilizao, quais foram as causas? Sendo a histria no a simples crnica que apresenta os fatos de um modo minucioso, mas sim sua investigao, que se esfora por compreender os eventos, captar relaes, selecionar fatos, como fazer isso, qual a estrutura essencial da realidade histrica? A filosofia da histria termo temido por muitos autores porque poderia supor apriorismos, preconceitos, idealismos responder basicamente a duas questes fundamentais: o que so os fatos histricos historiologia morfolgica; para qual fim se dirigem historiologia teleolgica.

2.2 A Histria da Cincia


O nascimento e o desenvolvimento da cincia experimental, a partir do sculo XVII, estiveram freqentemente acompanhados de polmicas filosficas: sobre o alcance do raciocnio cientfico, seus limites, o que a verdade na cincia, etc. Diferentes posturas filosficas da poca moderna tentaram solucionar tais polmicas, mas foi no sculo XX que 19

realmente se chegou a constituir uma filosofia da cincia como disciplina autnoma. Do Crculo de Viena em 1929, passando por Karl Popper, Thomas Khun, Imre Lakatos, Paul Feyerabend, Wolfang Stegmller, entre outros, protagonizou-se um intenso debate em torno do valor do conhecimento *. Para este trabalho, o que interessa que toda essa movimentao em torno da racionalidade da cincia tambm teve seu reflexo na teoria da histria, pelas novas epistemologias cientficas que foram surgindo. Os debates trouxeram para o primeiro plano a questo da funo da historiografia da cincia e alguns problemas tericos relativos a essa historiografia. A importncia de uma histria da cincia que v alm da histria episdica ou dos resultados obtidos ficou ressaltada. Em ([RA91], volume III) resume-se quais seriam as funes da Histria da Cincia: sendo a cincia fator de histria, no se pode entender o desenvolvimento dessa histria, especialmente da poca moderna e da poca contempornea, se no conhecermos a Histria da Cincia e da Tecnologia; alm de ser fator de histria, a cincia tambm fator de cultura: assim, estar vedada a compreenso do desenvolvimento da cultura mais ampla se no se compreende a Histria da Cincia e seu entrelaamento e condicionamento recproco com a Histria da Filosofia, as concepes morais, polticas e outras; o conhecimento da Histria da Cincia necessrio para o trabalho do cientista, porque o pleno entendimento do contedo de uma teoria pode ser obtido mediante o confronto dessa teoria com outras, e essas outras teorias devem ser buscadas onde quer que estejam disponveis, tanto no presente como no passado; a Histria da Cincia se revela como mais um ingrediente para a didtica das cincias, tanto no que se refere motivao do aprendizado, como no que se refere educao no antidogmatismo, isto , no reconhecimento do erro como uma fonte cientfica de aperfeioamento da teoria; a Histria da Cincia possibilita uma maior conscincia das normas metodolgicas necessrias ao trabalho de pesquisa. Os problemas do como realizar essas funes so complexos, bastando lembrar as diferentes escolas de histria. De qualquer maneira, a disciplina da histria que revitalizada, despertando a capacidade do homem de assumir o seu passado e a partir dele dar respostas criadoras aos novos problemas que aparecem. muito significativo que entre os sintomas da decadncia de uma cultura ou de uma cincia esteja precisamente isto: o repdio ao passado que as valorizava.

Para aprofundar no assunto, em [Art94] h uma sntese das discusses e evoluo das polmicas.

20

2.3 Enfoque histrico adotado


A histria no exclusivamente caos ou acaso: existe no comportamento humano um certo grau de ordem e padro observveis de uma regularidade parcialmente previsvel. The Social Sciences in Historical Study (vrios autores)

Uma das intenes do presente estudo procurar compreender e estabelecer as diretrizes para uma disciplina da Histria da Cincia, a Histria da Computao, atravs da seleo das idias, teorias e paradigmas que ajudaram os homens em sua busca da automatizao dos processos aritmticos e que conduziram tecnologia dos computadores. Interessa portanto o enfoque teleolgico, citado anteriormente (A histria e suas interpretaes). A historiologia teleolgica aplica-se na interpretao, de trs para frente, da conexo concreta do curso histrico. Trata-se de compreender duas coisas: a primeira, que na srie confusa dos fatos histricos podem-se descobrir linhas, faces, traos, em suma, uma 'fisionomia', conforme diz Ortega y Gasset; a segunda, tentar mostrar um sentido para a histria, desde a perspectiva do seu fim. Conforme outro historiador, Toynbee * [Toy87], o ponto de partida da interpretao histrica, como o de qualquer tarefa intelectual, o pressuposto de que a realidade tem algum significado que nos acessvel pelo processo mental da explicao. Considera-se que a realidade, ainda que no totalmente, tem um sentido, isto , que h um acmulo de ordem nas relaes entre os milhares de fenmenos observados na realidade e dissecados pela nossa inteligncia. Todo raciocnio pressupe a existncia de conexes na natureza, ... e seu nico objetivo determinar que elementos essas conexes renem [H30]. Na abordagem teleolgica, a histria no o fato meramente enumerado, mas organizado, selecionado, relacionado. Como diz Kenneth O. May, de modo semelhante fsica, ns no pensamos que o mero registro de uma observao por um fsico Fsica. Isso se torna Fsica quando interpretado, organizado, relacionado com outras partes da Fsica. Do mesmo modo, o conhecimento cronolgico torna-se histria somente quando ele selecionado, analisado, acompanhado da sua compreenso dentro de um contexto mais amplo. Significa que a histria dos computadores deveria ser compreendida no do ponto de vista 'histrico', mas em relao ao computador propriamente. Deveria dar a perspectiva, atravs das idias, sobre o que o futuro desenvolvimento deveria ser, ao que as futuras linhas de desenvolvimento devem chegar, e assim por diante [May80]. O conhecimento histrico, por sua prpria natureza, inseparvel do historiador, pois este que, da documentao coletada, destaca o singular, elevando o fato condio de histrico. Procurou-se, ento, registrar neste livro, tecendo um fio de histria, os fatos conceituais, com a mnima periodizao e dataes possveis. Por fatos conceituais entendam-se aqui as idias e conceitos relevantes que fundamentaram a incansvel busca pela mecanizao do raciocnio. Entre estes estaro: lgebra, Sistema Axiomtico, Lgica Matemtica, Sistema Axiomtico Formal, Computabilidade, Mquina de Turing, Tese de Church, Inteligncia Artificial, e outros mais.
*

Se bem que em outro contexto, pois tinha uma outra linha de pensamento historiogrfico, mas que serve tambm para o enfoque adotado no trabalho.

21

uma histria que se vai tornando incrivelmente complexa, conforme vai avanando no tempo. Os trabalhos isolados dos precursores da Fsica e da Matemtica, e mais recentemente da prpria Cincia da Computao, justamente por causa de seu isolamento, so relativamente fceis de discernir. Mas a partir de 1950, com a proliferao das pesquisas nas universidades, nos grandes laboratrios, nas indstrias privadas ou estatais , observouse um desenvolvimento acelerado da informtica. A Cincia da Computao avanou em extenso e profundidade, tornando-se difcil at a tarefa de enumerao dos fatos. Surge a tentao de particularizar mais ainda. Pode-se falar por exemplo de uma histria dos microcomputadores, tomando o ano de 1947 quando trs cientistas do Laboratrio da Bell Telefonia, W. Shockley, W. Brattain e J. Bardeen, desenvolveram sua nova inveno sobre o que seria um prottipo do transistor e de como, a partir da, ano aps ano, hardware e software progrediram e criaram novos conceitos, estruturas, em ritmo vertiginoso. E assim tambm no desenvolvimento das Linguagens de Programao, dos Compiladores, da Teoria da Computao, da Computao Grfica, da Inteligncia Artificial, da Robtica, e outras reas. Comea a tornar-se difcil separar o que significativo dentro do enfoque crtico adotado. Surge o problema da delimitao das fronteiras, pois as vrias especialidades se misturam muitas vezes *, apesar de ter um corpo central definido. Para se atender finalidade de uma Histria da Computao de carter conceitual, este trabalho estar limitado prioritariamente ao campo das idias, acenando para outros campos quando necessrio se sua repercusso atingir a linha de evoluo seguida. De qualquer modo, embora enfatizando o aspecto do pensamento o que se tinha em mente quando algo foi feito ou definido, e o que este algo fundamentar mais tarde , ser necessrio o estabelecimento de alguns marcos temporais. Os acontecimentos da histria produzem-se em determinados lugares e tempos. Esta pontualizao possibilitar ir unificando esse suceder histrico especfico de que se est tratando, em um processo nico que mostre claramente a mudana, o desenvolvimento e o progresso. No se dispensar absolutamente o uso das datas assim como dos fatos tecnolgicos que possam ser considerados verdadeiras mudanas de paradigma . No se deve estranhar o recurso Histria da Matemtica. Alis preciso dizer que, no incio, pelo menos nos crculos acadmicos, a Computao apareceu como algo dentro dos Departamentos de Matemtica, e ainda hoje, em muitas Universidades, a Cincia da Computao aparece como um Departamento de um Instituto de Matemtica. Dentre os diversos tpicos cientficos sujeitos investigao, a Matemtica o que melhor combina um carter abstrato com um uso universal em outros campos do conhecimento. Sua relao com a Computao muito estreita, quase que inseparvel. As primeiras mquinas construdas foram resultado de buscas por parte dos membros dessa comunidade do conhecimento.

Pense-se na Robtica por exemplo, onde esto includas a Inteligncia Artificial, as Linguagens de Programao, a Computao Grfica, etc. No anexo I encontra-se uma tabela cronolgica dos acontecimentos conceituais e tecnolgicos, que dar uma viso mais geral da evoluo da Histria da Computao.

22

3 Motivaes para se estudar a Histria da Computao


Uma vez apontada a importncia e necessidade do estudo da histria em geral e, mais especificamente, da histria da cincia e da tecnologia, fica fcil perceber que o estudo da Histria da Computao um interessante relevo dentro da vasta paisagem do conhecimento cientfico. Basta lembrar que o impacto dessa tecnologia na nossa sociedade imenso e nossa dependncia dela cada vez maior. Seguem abaixo outros fatores motivadores para esse estudo.

3.1 Necessidade de discernir fundamentos


Comparada com outras reas, a Cincia da Computao muito recente. Mas, nestes poucos anos (pode-se apontar a Segunda Guerra Mundial como um marco inicial, quando efetivamente se construram os primeiros computadores digitais) o avano da Computao foi exponencial, abrindo-se em um grande leque de tecnologias, conceitos, idias, transformando-se em uma figura quase irreconhecvel. Atualmente falar de estado da arte na Computao tornou-se sem sentido: sob que tica, perspectiva, campo ou rea? Apesar da sua recente irrupo na histria contempornea, a partir dos anos 40 do sculo XX, ela j se tornou complexa, ampla, geradora de novos enfoques, tornando-se um verdadeiro desafio a quem queira entend-la e traar sua evoluo. Ao mesmo tempo, cada nova gerao de informatas depara-se com um duplo problema: a impossibilidade de ter uma viso global sobre todo o conhecimento precedente e, mais acentuadamente ainda, a histria do desenvolvimento das vrias especialidades. No esto individualizados os eventos, por vezes complexos, que antecederam o saber atual e tambm no se possui um quadro que os rena, para se ter uma idia geral, coerente e significativa. A evoluo tecnolgica se nos apresenta abrupta, atravs de saltos descontnuos, e todo o trabalho que antecede cada etapa aparece coberto por uma camada impenetrvel de obsolescncia, algo para a paleontologia ou para os museus, como se nada pudesse ser aprendido do passado. O resultado um empobrecimento do panorama atual da realidade da informtica. No se estabelecem conexes entre os vrios campos da Cincia da Computao, caindo-se facilmente no utilitarismo. As camadas mais profundas dos conceitos no so atingidas, o conhecimento torna-se bidimensional, curto, sem profundidade. Junto a isso, cedendo talvez a um imediatismo ou deixando-se levar por uma mentalidade excessivamente pragmtica de busca de resultados, h uma forte tentao de se estabelecerem ementas para o estudo da Cincia da Computao preocupando-se mais com determinados produtos linguagens, bancos de dados, sistemas, aplicativos, etc. e pouco se insiste na fundamentao terica. Os matemticos aprendem aritmtica e teoria dos nmeros, pr-requisitos sem os quais no se evolui no seu campo do saber; os engenheiros, clculo diferencial, fsica; os fsicos trabalham arduamente na matemtica, e assim por diante. Quais os fundamentos correspondentes na Computao? Conhece-se a lgebra Lgica de George Boole, um matemtico que buscando relacionar o processo humano de raciocnio e a Lgica Matemtica, 23

desenvolveu uma ferramenta para os futuros projetistas de computadores? Sabe-se que a revoluo da Computao comeou efetivamente quando um jovem de 24 anos, chamado Alan Mathison Turing, teve a idia de um dispositivo terico para buscar a resposta a um desafio do famoso matemtico David Hilbert um dos primeiros a falar sobre computabilidade , e que em um journal de matemtica comentou aos seus colegas que era possvel computar na teoria dos nmeros, por meio de uma mquina que teria armazenadas as regras de um sistema formal? Que as pesquisas de Turing esto relacionadas com o trabalho de Gdel cujo Teorema que leva o seu nome considerado um dos mais famosos resultados do sculo XX, dentro da matemtica? Pode-se citar ainda a Tese de Turing-Church que possibilitou aos cientistas passarem de uma idia vaga e intuitiva de procedimento efetivo para uma noo matemtica bem definida e precisa do que seja um algoritmo. E antes de todos esses, o esforo de dezenas de pensadores de diferentes culturas, para encontrar melhores formas de usar smbolos, que viabilizou o desenvolvimento da Cincia Matemtica e Lgica, e que acabaram fundamentando toda a Computao.

3.2 Incentivo educao para a qualidade do software


A investigao histrica sob o prisma citado das idias e conceitos fundamentais que formaram a base do desenvolvimento da Computao poder contribuir para uma questo que assume importncia decisiva e crucial: a qualidade do software. preciso aqui tecer um comentrio relacionado ao tema da qualidade. A expresso crise do software [Nau69] apareceu no final da dcada de sessenta na indstria tecnolgica da informao. Referia-se aos altos custos na manuteno de sistemas computacionais, aos custos relativos a novos projetos que falhavam ou que consumiam mais recursos que os previstos, etc., realidades presentes no dia a dia de muitos centros de processamento de dados. Ao lado disso, havia, e ainda h, uma disseminao anrquica da cultura informtica, impregnando cada dia mais a vida social e trazendo, como conseqncia, uma dependncia cada vez maior da sociedade em relao ao computador. Torna-se fundamental, portanto, diminuir as incertezas presentes no processo de elaborao dos sistemas de computao. A resposta a esses desafios j h alguns anos vem sendo formulada no sentido de se estabelecer uma execuo disciplinada das vrias fases do desenvolvimento de um sistema computacional. A Engenharia de Software surgiu tentando melhorar esta situao, propondo abordagens padronizadas para esse desenvolvimento. Algumas dessas propostas vo em direo ao uso de mtodos formais * nos processos de elaborao do sistema, basicamente atravs da produo de uma especificao formal em funo das manifestaes do problema do mundo real que estiver sendo tratado e atravs da transformao dessa especificao formal em um conjunto de programas executveis. H tambm pesquisas dentro da Computao que caminham em direo ao desenvolvimento de mtodos numricos, em direo lgica algbrica. George Boole, em sua obra que deu incio a uma nova arrancada no desenvolvimento da Lgica Matemtica e da
*

Um mtodo se diz formal quando o conjunto dos procedimentos e tcnicas utilizadas so formais, isto , tm um sentido matemtico preciso, sobre o qual se pode raciocinar logicamente, obtendo-se completeza, consistncia, preciso, corretude, conciso, legibilidade e reutilizao das definies abstratas.

24

Computao, como se ver, j dizia: A lgica simblica ou lgica matemtica nasce com a vocao de ferramenta para inferncia mecanizada atravs de uma linguagem simblica[Boo84]. Busca-se por essa vertente a criao de uma metalinguagem lgicomatemtica para o desenvolvimento de sistemas, de tal maneira que se possa constituir no instrumento que transfere a preciso da matemtica aos sistemas. A figura abaixo, conforme [Coe95], serve como ilustrao dessa idia.

Mundo

Real

Metalinguagem

Sistemas

Matemtica Cincia da Computao lgebra Filosofia Lgica

Figura 1: O desenvolvimento de sistemas atravs de especificaes formais

Tcnicas provenientes da rea da lgica matemtica vm sendo aplicadas a diversos aspectos do processo de programao de computadores *. No sem dificuldades que evoluem as investigaes sobre o papel do raciocnio formal matemtico no desenvolvimento do software. Mas preciso ressaltar a sua importncia pois atravs da especificao formal e verificao obtm-se uma excelente guia para o desenvolvimento de programas corretos e passveis de manuteno. Talvez no se possa pedir que todo programa seja formalmente especificado e verificado, mas de se desejar que todo programador que almeje profissionalismo esteja ao menos familiarizado com essas tcnicas e seus fundamentos matemticos [BBF82]. Concluindo-se o comentrio sobre os problemas relativos qualidade do software, pode-se dizer que a soluo para o problema do desenvolvimento de software passa por um
*

Entre os aspectos estudados encontram-se: (i) verificao (prova de corretude): a prova de que um dado programa produz os resultados esperados; (ii) terminao: a prova de que um dado programa terminar eventualmente a sua execuo; (iii) derivao (desenvolvimento): construo de um programa que satisfaz a um conjunto de especificaes dadas; (iv) transformao: modificao sistemtica de um programa dado para obter um programa equivalente, como estratgia para a derivao de novos programas por analogia a solues conhecidas ou como mtodo de otimizao da eficincia de programas [Luc82].

25

treinamento formal mais intenso na formao dos futuros cientistas da computao. Desde os primeiros anos da universidade necessrio que se estudem os princpios matemticos, e em alguns casos at fsicos (como se poder falar em Computao Grfica se no se sabe quais so as propriedades de um sistema de cores), que formam o substrato da Computao: o que computvel (metamatemtica, computabilidade), a complexidade que exige a execuo de um clculo (anlise de algoritmos, teoria da complexidade), fundamentos de algumas abstraes (teoria dos autmatos, teoria das linguagens formais, teoria de rede, semntica denotacional, algbrica, etc.), fundamentos dos raciocnios que se fazem em programao (sistemas de provas, lgica de Hoare), etc. Ou seja, seria interessante notar que na Cincia da Computao h um forte componente terico. um corpo de conhecimentos, sistematizado, fundamentado em idias e modelos bsicos que formam a base das tcnicas de engenharia e eletrnica usadas na construo de computadores, tanto no referente ao hardware como ao software. Como no falar de induo matemtica quando se deseja seriamente explicar a programao de computadores? Ou falar de uma linguagem de programao sem introduzir a teoria dos autmatos? Com o desenvolvimento de conceitos matemticos adequados ser possvel estabelecer um conjunto de procedimentos que assegure aos sistemas a serem desenvolvidos uma manuteno gerencivel, previsvel e natural, como ocorre na engenharia. O estudo da Histria da Computao, no j sob o enfoque de datas e nomes importantes tambm e necessrios, para no se cair na pura especulao , mas sob o aspecto das idias, de seus fundamentos e suas conseqncias, pode ser uma slida base, um ponto de partida, para sensibilizar e entusiasmar o aluno sobre a importncia dos fundamentos tericos, para ajud-lo a ver o que um determinado conceito tem como pressupostos.

3.3 Tornar claros e ligar os fatos


Entre os objetivos da cincia histrica pode-se aceitar como axiomtico o de procurar dar um significado aos acontecimentos. a busca de se dar sentido histria. Este trabalho, feito dentro de uma perspectiva teleolgica da histria, procurar estabelecer uma conexo causal entre eventos, para se comear a entender o sentido do passado, dispondo-o numa espcie de sistema organizado, para torn-lo acessvel compreenso. Sob outro enfoque, pode-se ver a Histria da Cincia da Computao como um olhar para trs com o fim de descobrir paralelismos e analogias com a tecnologia moderna, com o fim de proporcionar uma base para o desenvolvimento de padres atravs dos quais julguemos a viabilidade e potencial para uma atividade futura ou atual [Lee96]. Quer dizer, analisar o passado e reconhecer tendncias que nos permitam prever algum dado futuro. Dizia John Backus, criador do FORTRAN e da Programao Funcional: Na cincia e em todo trabalho de criao ns falhamos repetidas vezes. Normalmente para cada idia bem sucedida h dzias de outras que no funcionaram (1994, discurso ao receber o prmio Charles Stark Draper). A histria cataloga e registra tais falhas, que ento se tornam uma fonte especial de aprendizado, ensinando tanto quanto as atividades bem sucedidas. Mais ainda, do-nos o caminho, por vezes tortuoso, por onde transcorreram as idias, as motivaes, as inovaes. Ou seja, interessante e instrutivo o estudo da histria de qualquer assunto, no somente pela ajuda que nos d para a compreenso de como as idias nasceram 26

e a participao do elemento humano nisso mas tambm porque nos ajuda a apreciar a qualidade de progresso que houve.

3.4 Acompanhar novas tendncias


sintomtico notar que pela primeira vez incluiu-se no curriculum para Cincia da Computao, desenvolvido pela ACM (Association for Computing Machinery) e IEEE (Institute of Electrical and Electronics Engineers) Computer Society Joint Task Force, em 1991, mdulos relativos histria em 4 reas: Inteligncia Artificial, Sistemas Operacionais, Linguagens de Programao e Temas Sociais, ticos e Profissionais. Mais recentemente ainda, na 6a IFIP (International Federation for Information Processing), evento realizado dentro da Conferncia Mundial dos Computadores na Educao, transcorrida em Birmingham, Inglaterra, de 20 a 24 de julho de 1995, estimulou-se no s a preservao das peas de computadores, o registro de memrias dos pioneiros e a anlise do impacto exterior das inovaes nos computadores, mas tambm o desenvolvimento de mdulos educacionais na Histria da Computao [Lee95]. Significativo tambm a introduo, nos cursos de Cincia da Computao, da disciplina Histria da Computao, principalmente a partir da dcada de 1990, em algumas universidades. Pode-se citar a Universidade de Stanford e o Instituto Charles Babbage, da Universidade de Minnesota dedicado a promover o estudo da Histria da Computao, EUA, o arquivo Nacional para a Histria da Computao da Universidade de Manchester, Inglaterra, Universidade de Waterloo (Canad) e similar em Bordeaux, Frana, Universidade de Wales Swansea, Austrlia, etc. Tambm aumentaram o nmeros de museus e instituies governamentais ou particulares que prestam esse servio de preservao da histria da tecnologia informtica, como por exemplo o museu de Boston, os museus de instituies militares americanas e organizaes do porte do IEEE. Esta ltima promoveu em 1996 o lanamento de pelo menos quatro livros sobre o assunto Histria da Computao, tendo construdo um site na Internet, narrando os eventos dessa histria desde o sculo XVII. Na Internet proliferaram os museus de imagens e cronologias sobre assuntos especficos como Microcomputadores, Computao Paralela, Linguagens de Programao, etc.

3.5 Revalorizar o fator humano


Finalmente h o grande tributo que se deve fazer a esses homens que, ao longo da histria da cincia Matemtica, Lgica, Fsica, e mais recentemente da Computao, no se deixaram levar pelo brilho atraente daquilo que chama a ateno e das demandas mais imediatas. Motivados pela pura busca do saber formaram o arcabouo, a infra-estrutura que 27

possibilitou a revoluo da informtica. Os bits e todas as partes de um computador (incluindo o software) so na verdade o resultado de um processo, de uma evoluo tecnolgica de vrios sculos, partilhada por inmeros personagens, cada um acrescentando sua pequena ou grande contribuio. Qualquer que seja, porm, o destino da informtica, ela j tem o seu lugar na Histria, constituindo-se num dos fatores preponderantes que moldam o conturbado mundo no fim do sculo XX. Sem a compreenso do seu papel social, no ser possvel entender o processo histrico em marcha, nem a direo do futuro. Desse modo, a pesquisa da Histria da Computao tem um significado fundamental no presente [Mot96].

28

4 Evoluo dos conceitos


Considerando as idias e os conceitos como uma das linhas que conduziro ao grande desenvolvimento tecnolgico da Computao a partir da dcada de 40 do sculo XX, este captulo faz referncia a alguns aspectos da evoluo da Matemtica, e mais especificamente de alguns dos seus ramos, no caso a lgebra e a Lgica Simblica ou Matemtica, de onde nos vieram o rigor e o mtodo axiomtico, at chegar s noes de computabilidade e procedimento, com Turing e Church.

4.1 Primrdios
4.1.1 A evoluo do conceito de nmero e da escrita numrica *

Talvez o passo mais fundamental dado nestes primeiros tempos tenha sido a compreenso do conceito de nmero, isto , ver o nmero no como um meio de se contar, mas como uma idia abstrata. O senso numrico foi o ponto de partida. Trata-se da sensao instintiva que o homem tem das quantidades, atributo participado tambm pelos animais irracionais (a gata mia quando um dos filhotes no est no ninho; determinados pssaros abandonam o ninho quando um dos seus ovos foi mudado de lugar); na vida primitiva bastava esse senso numrico. Mas com o comeo da criao dos animais domsticos era necessrio saber algo mais, pois se a quantidade no fosse melhor conhecida, muitas cabeas se perderiam. Inventou-se a contagem atravs do estabelecimento de uma relao entre duas ou vrias quantidades, na qual cada elemento de uma corresponde a um elemento de outra e nenhum elemento deixa de ter o seu correspondente (por exemplo, pedrinhas de um monte com ovelhas de um rebanho). No entanto essa relao biunvoca se d somente no mbito mental (ovelhas e pedra esto na natureza e no se do conta um do outro). No est registrado de que forma ocorreu o reconhecimento, pelos nossos antepassados mais primitivos, de que quatro pssaros caados eram distintos de dois, assim como o passo nada elementar de associar o nmero quatro, relativo a quatro pssaros, e o nmero quatro, associado a quatro pedras. Essa correspondncia um pensamento que uma espcie de linguagem. Nessa linguagem esto envolvidas a quantidade, a correspondncia biunvoca (o nmero) e a sua expresso (os elementos usados para contagem: pedras, dedos, seqncias de toques no corpo, e outras formas mais primitivas de expressar um numeral). A viso do nmero como uma qualidade de um determinado objeto um obstculo ao desenvolvimento de uma verdadeira compreenso do que seja um nmero. Somente quando, de acordo com um dos exemplos dados, o nmero quatro foi dissociado dos pssaros ou das pedras, tornando-se uma entidade independente de qualquer objeto uma abstrao, como diriam os filsofos , que se pde dar o primeiro passo em direo a um sistema de notao, e da aritmtica. Conforme Bertrand Russell, foram necessrios muitos

Este item est baseado em [Dan54], [Wil97] e [New56], principalmente no segundo

29

anos para se descobrir que um par de faises e um par de dias eram ambos instncias do nmero dois [Dan54]. E assim como se criaram smbolos escritos para expressar idias, tambm criou-se a escrita numrica. Os numerais escritos surgem nas civilizaes antigas (egpcia, babilnica e chinesa) e se baseiam na repetio de smbolos. No caso dos egpcios, ao se completar o dcimo elemento, tomava-se um outro smbolo para representar o nmero.

Figura 2: Sistema numrico clssico de adio egpcio baseado em hierglifos [Wil97]

Foram criadas vrias escritas numricas: os gregos e os romanos usavam letras do alfabeto. Os algarismos romanos foram to difundidos que existem at hoje, pelo menos para certas funes especiais como marcar horas em relgios e numerar captulos em livros, especialmente livros formais como a Bblia. Este amplo processo de criao conclui-se com a escrita numrica criada pelos hindus, h vrios sculos. O advento do que ns chamamos de sistema numrico hindu-arbico, com seu rgido esquema de valores e posies, juntamente com o zero (que era usado para representar um espao em branco), foi uma das grandes invenes da humanidade, e possibilitou o desenvolvimento dos mtodos matemticos e aritmticos, que a partir disso evoluram muito mais do que qualquer coisa que se conhecia at ento*. O uso do zero no era incomum em certos sistemas numricos posicionais primitivos. Os babilnios usaram um carter parecido com o zero para representar uma coluna vazia no meio do nmero por volta do ano 200 a.C., mas isso no era muito comum no sistema deles. Se um nmero, por exemplo 1024, precisasse de um zero para separar o dgito 1 do dgito 2, eles usavam o smbolo do zero do mesmo modo que se faz hoje. No entanto, se eles tivessem que representar um nmero como o 1000, parece que eram incapazes de conceber o fato de que o smbolo zero pudesse ser usado para simplesmente cobrir os espaos restantes, e eles representavam apenas o nmero 1, deixando ao leitor a tarefa de descobrir se aquilo significava 1000, e no 10, 100 ou at mesmo 1.
* Olhando-se para trs na Histria, parece que a inveno de um sistema numrico de posies rgidas, e ainda de um smbolo para designar o zero, deveria ter sido um extenso bvia de alguns dos primeiros sistemas numricos de posies. Essa idia falsa: basta pensar que escapou percepo de grandes autores da Antigidade, como Arquimedes ou Apollonius de Pergam, mesmo quando eles percebiam as limitaes de seus sistemas.

30

Exatamente onde e quando os homens comearam a utilizar o atual sistema numrico posicional, e os 10 dgitos em que eles eram baseados, continua a ser um fato obscuro. Certamente veio at a Europa pelos rabes, e bem certo de que eles o obtiveram do povo do subcontinente indiano. Onde e quando os indianos obtiveram esse sistema no conhecido. Pode ter sido uma inveno indgena, ou ter vindo do leste da Indochina, ou um desenvolvimento do uso babilnico do smbolo da coluna vazia. Na ndia antiga, bem como em muitas sociedades, a arte da aritmtica foi desenvolvida em um maior grau do que o necessrio para o comrcio, por causa da sua importncia para a religio local. Todas as trs primeiras religies indianas (Janasmo, Budismo e Hindusmo) consideravam a aritmtica importante, como mostra o fato de ser exigida entre os estudos fundamentais a serem feitos pelos candidatos ao sacerdcio. O uso mais antigo que se tem notcia da matemtica indiana est em trabalhos escritos em forma de verso, onde complicados expedientes literrios eram utilizados para representar nmeros, de modo a se preservar a rima e a mtrica dos poemas. At mesmo documentos que usam numerais para denotar nmeros nem sempre so guias seguros para informar quando tal prtica comeou a aparecer. Parece que, em alguma poca no sculo XI, foi feita uma tentativa para se racionalizar o sistema de propriedade da terra em partes da ndia, o que levou muitas pessoas a produzirem documentos forjados para pedir seus vrios lotes. Das 17 inscries conhecidas usando numerais antes do sculo X, todas, exceo de duas, mostraram ser falsificaes. A mais antiga e indubitvel ocorrncia do zero na inscrio escrita na ndia foi em 876 d.C., com os nmeros 50 e 270 sendo representados em uma verso local dos dgitos indianos. A histria do nosso sistema numrico fica muito mais clara a partir do sculo IX d.C. No sculo VII, quando a dinastia dos Califas comeou em Bagd, o aprendizado das culturas adjacentes foi absorvido em uma nova e expansiva cultura rabe. Quando os rabes conquistavam um pas, eles costumavam adquirir seu modo de escrita, particularmente a notao dos numerais do povo conquistado e procurar traos de conhecimento na literatura que sobreviveu guerra. Graas aos trabalhos do matemtico al-Kharazmi (mais a frente se falar da importncia deste homem originrio da Prsia), o uso dos numerais hindus rapidamente se expandiu por todo o imprio rabe. A eventual expanso desses numerais pela Europa mais facilmente explicada a partir dos contatos gerados entre rabes e europeus pelo comrcio e pelas guerras. provvel que os comerciantes italianos conhecessem o sistema de contas de seus parceiros comerciais, e que os soldados e sacerdotes que retornaram das cruzadas tambm tivessem uma ampla oportunidade de ter contato com o sistema de notao e aritmtica rabes. O mais antigo manuscrito europeu contendo numerais hindu-arbicos de que se tem notcia foi escrito no claustro Albeda, na Espanha em 976 d.C. Os novos numerais tambm foram encontrados em outro manuscrito espanhol de 992 d.C., em um manuscrito do sculo X encontrado em St. Gall, e em um documento do Vaticano de 1077 d.C. Entretanto seu uso no foi muito difundido durante esse perodo inicial, e provvel que pouqussimas pessoas tenham entendido o sistema antes da metade do sculo XIII.

31

Figura 3: Mais antigo manuscrito europeu com numerais indoarbicos, cfr. [Ifr89]

A primeira grande tentativa de introduzir essa nova forma de notao foi feita por Leonardo de Pisa (1175 a 1250), mais conhecido pelo nome de Fibonacci (que veio de filius Bonaccio, o filho de Bonaccio), um dos melhores matemticos europeus da Idade Mdia. Durante o tempo de Fibonacci, Pisa era uma das grandes cidades comerciais da Itlia, e por isso entrou em contato com toda a rea do Mediterrneo. O pai de Fibonacci era o chefe de uma das casas de comrcio ultramarino, em Bugia, na costa da frica Norte. Bugia era um importante centro para mercadores e estudantes da poca e Fibonacci foi mandado, quando tinha 12 anos, para se juntar a seu pai, tendo uma chance de ouro para observar os mtodos rabes. Certamente obteve parte de sua educao enquanto estava em Bugia, e a lenda diz que ele aprendeu rabe e aritmtica por um mercador local. Visitou depois o Egito, Sria, Grcia e Frana, onde se esforou para se informar sobre os sistema aritmticos locais. Ele achou todos esses sistemas numricos to inferiores aos que os rabes utilizavam que, quando voltou a Pisa, escreveu um livro para explicar o sistema rabe de numerais e clculo. Esse livro, nomeado de Liber Abaci (O Livro do baco) foi publicado pela primeira vez em 1202, e revisto e ampliado em 1228. Era um tomo muito grande para a poca, constitudo de 459 pginas divididas em 15 captulos. Os captulos 1 a 7 introduziam a notao rabe e as operaes fundamentais com nmeros inteiros; os captulos 8 a 11 tratavam de vrias aplicaes, enquanto os restantes eram dedicados aos mtodos de clculo envolvendo sries, 32

propores, razes quadradas e cbicas, e uma pequena abordagem sobre geometria e lgebra. Foi em um desses ltimos captulos em que ele introduziu o famoso problema do coelho e as sries de nmeros que agora levam seu nome. O Liber Abaci no foi to influente quanto deveria ser porque era muito grande, e portanto difcil de copiar em uma poca em que no havia imprensa. Tambm continha material avanado que s poderia ser entendido por estudiosos, tendo sido conhecido apenas por poucas pessoas, nenhuma das quais parecia ter muita influncia nos mtodos de clculo usado nas transaes dirias. Mas embora os esforos de Fibonacci tivessem pouco sucesso, a idia dos numerais hindu-arbicos foi gradualmente se expandindo na Europa. As principais fontes de informao foram as vrias tradues, algumas parciais, do trabalho de al-Kharazmi. O fato de ser a lngua rabe totalmente diferente de qualquer lngua europia foi uma grande barreira para a disseminao das idias cientficas rabes. Para aprender o rabe, era geralmente necessrio viajar a um pas de lngua rabe, e isso era uma tarefa difcil, j que alguns rabes no eram simpticos aos visitantes cristos (e vice-versa). Esse problema foi parcialmente resolvido em 1085, quando Alphonso VI de Leon recapturou Toledo dos mouros e uma grande populao de lngua rabe veio esfera da influncia europia. A maioria das primeiras tradues, ou pelo menos as pessoas que ajudaram os tradutores, vieram dessa populao. Os dois principais trabalhos que espalharam o conhecimento aritmtico hindu-rabe pela Europa foram o Carmen de Algorismo (o Poema do Algorismo) de Alexander De Villa Dei por volta de 1220 e o Algorismus Vulgaris (Algorismos Comuns), de John de Halifax, mais conhecido como Sacrobosco, por volta de 1250 d.C. Esses dois livros foram baseados, pelo menos em parte, nos trabalhos de al-Kharazmi ou de um de seus sucessores. Foram elaborados para uso em universidades europias e no pretendiam ser explicaes completas do sistema; preferiram dar simplesmente o bsico que o professor pudesse explicar, linha a linha, para seus alunos. O Carmen de Algorismo era particularmente difcil de ser seguido, especialmente na discusso do clculo de razes, porque foi escrito em versos hexasslabos. Apesar disso ele ficou muito popular, sendo copiado muitas vezes no latim original e sendo at traduzido em ingls, francs e irlands. Parte dessa popularidade se deveu ao fato de que Alexander de Villa Dei (? a 1240), que era nativo da Normandia e escrevia e ensinava em Paris, j era famoso por uma gramtica de latim, tambm em versos, que era muito utilizada nas escolas da poca. Tambm o fato de possuir somente 284 linhas o fazia facilmente copivel pelos escribas, e assim, enquanto se produzia uma cpia do Liber Abaci, centenas de cpias do Carmen podiam ser feitas e distribudas. O mesmo acontecia com o Algorismus Vulgaris, que tinha somente 4.000 linhas. Sacrobosco, que tambm ensinava em Paris durante a primeira metade do sculo XIII, era conhecido por seu trabalho em astronomia, e isso sem dvida contribuiu para o sucesso do Algorismus Vulgaris, que continuou a ser usado como um texto universitrio em aritmtica at mesmo depois da inveno da imprensa. Edies impressas so conhecidas a partir do fim dos sculos XV e XVI. Uma dos primeiros tradutores do trabalho de Al-Kharazmi foi Adelard de Bath que, por volta do ano 1120, produziu um texto em latim cujas primeiras palavras eram Dixit Algorismi (assim disse o algorismo), e que resultou nessa nova cincia que ficou conhecida como algorismo. Esse termo, e as vrias corruptelas originadas por autores 33

diferentes, finalmente se espalhou atravs de todas linguagens europias at o ponto de o processo de fazer aritmtica com os numerais hindu-arbicos ser chamado algarismo, e isso nos deu o termo algoritmo que to familiar aos estudantes de Cincia da Computao. A conexo do Algorismi com al-Kharazmi perdeu-se e muitos autores inventaram at outras pessoas, como um que citava o Rei Algor, a quem a origem desses mtodos poderia ser atribuda... A troca dos numerais adicionais romanos para o sistema posicional dos hindurabes foi lenta, durou alguns sculos. No era fcil para os europeus entenderem o uso do zero que, enquanto representando o nada em si, podia magicamente fazer outros dgitos crescerem dramaticamente em valor. A palavra hindu para o sinal do zero era sunya que, muito apropriadamente, queria dizer vazio ou desocupado. Quando o sistema foi adotado pelos rabes, eles usaram sua prpria palavra para desocupado, que geralmente escrita como sifr no nosso alfabeto. Essa palavra rabe foi simplesmente escrita no alfabeto latino ou como zephirum, de onde veio a nossa palavra zero, ou como cipher, de onde derivou o antigo verbo ingls to cipher, que significava fazer aritmtica. Parte do mistrio com que o novo sistema era considerado pode ser observado pelo fato de que a mesma palavra para a raiz elevou termos que eram envolvidos em mgica e escrita secreta, como calcular ou decifrar um texto em cdigo. Esse ar de mistrio foi realado pela atitude de algumas pessoas que, depois que conheciam o algarismo, acharam que isso era um conhecimento para ser mantido entre um grupo secreto, e no para ser explicado para pessoas comuns. Essa atitude ilustrada em vrias figuras do fim da Idade Mdia, uma das quais mostra duas pessoas fazendo aritmtica, uma usando os mtodos antigos do baco enquanto o outro, escondendo seu trabalho do primeiro, estava usando o novo algarismo. Por volta de 1375 o uso dos numerais hindu-arbicos firmou-se na Europa. Eles comearam a aparecer em muitos documentos diferentes, embora ainda existisse uma grande resistncia para a adoo dos novos nmeros. Em 1229, a cidade de Florena proclamou uma lei que proibia o uso dos numerais hindu-arbicos, pois eram fceis de serem alterados ou forjados (por exemplo, transformar um 0 em um 6 ou 9 deveria ser bastante fcil). Os mercadores desenvolveram vrios truques para prevenir esse tipo de coisa com os numerais romanos; por exemplo, XII era escrito como Xij, ento um i extra no poderia ser adicionado ao fim sem gerar suspeitas e, fazendo o primeiro caracter maisculo, eles evitavam que qualquer um colocasse caracteres esquerda do nmero. Passaria apenas pouco tempo para que se desenvolvessem dispositivos semelhantes para os novos numerais, mas ainda por volta de 1594 os mercantes da Anturpia eram alertados para que no os usassem em contratos ou em ordens de pagamento bancrias. Os italianos rapidamente viram a utilidade do novo sistema para propsitos mercantis e influenciaram toda a Europa para a adoo do sistema de valor posicional. Algarismos j eram bem difundidos por volta de 1400, mas os mercadores mais conservadores continuaram utilizando os numerais romanos at por volta de 1550, e muitos monastrios e faculdades os usaram at o meio do sculo XVII. At mesmo por volta de 1681 encontram-se evidncias de que o novo sistema ainda no tinha sido completamente compreendido. Um livro publicado naquele ano teve seus captulos numerados como: 1, 2, 3, 4, 5, 6, 7, 8, 9, X, X1, X2, X3, X4 XXX, XXX1, 302, 303 XXXX, 401, 402, 34

Essa permanncia dos mtodos antigos de notao foi causado no por falta de conhecimento sobre o novo, mas pelo medo de que, sem um entendimento completo do sistema, alguma coisa poderia dar errado. Esse tipo de medo visto de vez em quando at hoje, mas dois exemplos do sculo XVII podem ajudar a ilustrar o fenmeno. Willian Oughtred, que se encontrar mais a frente neste livro ao se falar da rgua de clculo, preferia calcular ab + ac a calcular a(b+c) por causa do medo de que algum tipo de erro poderia acontecer em um sistema abreviado. Muitas formas diferentes de numerais foram usadas na Europa, alguma das quais no seriam reconhecidas da maneira que elas so agora. As verses manuscritas dos antigos trabalhos so particularmente difceis de se ler porque o autor e o copista usaram as formas de numerais com que eles eram mais familiarizados. Livros produzidos em regies prximas, ou separados por poucos anos, usaram caracteres diferentes para pelo menos alguns dos numerais. Foi a inveno da imprensa que os padronizou na forma em que ns os conhecemos agora, embora at hoje as formas do 5 e do 7 variem ligeiramente entre europeus e americanos. interessante notar que, apesar do fato de que os europeus obtiveram o sistema dos rabes, as duas culturas utilizam formas de numerais notavelmente diferentes hoje. O turista europeu tem constantemente problemas com o fato de que o crculo usado nos pases rabes como smbolo para o dgito cinco e algo parecido com um ponto usado para o smbolo do zero. 4.1.2 Desenvolvimentos iniciais da cincia do clculo

Pode-se dizer que os primeiros passos em direo aos computadores digitais foram dados nas antigas civilizaes da China, do Egito e da Babilnia, h mais de quatro milnios, com os sistemas de medidas de distncias, previso do curso das estrelas e tabelas gravadas em tbuas de barro usadas para ajudar clculos algbricos. Durante a civilizao grega algumas destas pr-cincias tomaram forma atravs dos sistemas axiomticos *. Enquanto isso, geralmente aceito que a lgebra desenvolveu-se em cada civilizao passando por sucessivas etapas, denominadas retrica, sincopada e simblica . Um museu em Oxford possui um cetro egpcio de mais de 5.000 anos, sobre o qual aparecem registros de 120.000 prisioneiros e 1.422.000 cabras capturadas [Boy74]. Apesar do exagero dos nmeros, fica claro que os egpcios procuravam ser precisos no contar e no medir, bastando lembrar o alto grau de preciso das pirmides. Medir as terras para fixar os limites das propriedades era uma tarefa importante nas civilizaes antigas, especialmente no Egito. Ali, as enchentes anuais do Nilo, inundando as reas frteis, derrubavam os marcos fixados no ano anterior, obrigando os proprietrios de terras a refazer os limites de suas rea de cultivo. Em algumas ocasies, a questo era refazer os limites com base em informaes parciais; conhecida a forma do terreno, tratava-se por exemplo de reconstruir os lados
*

Em um sistema axiomtico parte-se de premissas aceitas como verdadeiras e de regras ditas vlidas, que iro conduzir a sentenas verdadeiras. As concluses podem ser alcanadas manipulando-se smbolos de acordo com conjuntos de regras. A Geometria de Euclides um clssico exemplo de um procedimento tornado possvel por um sistema axiomtico. A lgebra retrica caracterizada pela completa ausncia de qualquer smbolo, exceto, naturalmente, que as prprias palavras esto sendo usadas no seu sentido simblico. Nos dias de hoje esta lgebra retrica usada em sentenas do tipo a soma independente da ordem dos termos, que em smbolos seria designada por a+b = b+a [Dan54]. A sincopada a notao intermediria que antecedeu a simblica, caracterizada pelo uso de abreviaes que foram sendo contradas at se tornarem um smbolo [idem].

35

restantes se um deles se havia preservado. Em outras ocasies, destrudas por completo as fronteiras, tratava-se de refaz-las, de modo a remarcar o desejado nmero de propriedades, conservando as reas relativas que possuam no passado. Os egpcios tornaram-se hbeis delimitadores de terra e devem ter descoberto e utilizado inmeros princpios teis, relativos s caractersticas de linhas, ngulos e figuras como por exemplo, o de que a soma de trs ngulos de um tringulo igual a dois ngulos retos, e o de que a rea de um paralelogramo igual do retngulo que possua a mesma base e a mesma altura. Provavelmente os egpcios obtiveram esses princpios por intermdio de raciocnios indutivos, fruto da observao e experimentao: mediam muitos tringulos e ngulos retos, reas de muitos paralelogramos e retngulos, e parece que tais conhecimentos limitaram-se a habilitar os egpcios a resolver problemas de traados de limites, de comparao de reas, de projetos arquitetnicos e de engenharia de construes. No Egito antigo e na Babilnia existiam calculadores profissionais chamados escribas pelos egpcios e logsticos pelos gregos. As primeiras tentativas de inveno de dispositivos mecnicos para ajudar a fazer clculos datam dessas pocas, como, por exemplo, o baco e o mecanismo Antikythera, sobre os quais se falar mais detidamente no captulo da Pr-Histria Tecnolgica. Os gregos assimilaram os princpios empricos dos egpcios e deram, a esse delimitado conhecimento, o nome de Geometria, isto , medida da terra. Mas diferentemente daqueles, estudaram a Geometria mais sob seu aspecto terico, desejando compreender o assunto por ele mesmo, independentemente de sua utilidade. Procuraram encontrar demonstraes dedutivas rigorosas das leis acerca do espao e mostraram um crescente interesse pelos princpios geomtricos. Pitgoras considerava que, em sua forma pura, a geometria se aproximava bastante da religio e para ele era o arch, o princpio de tudo, buscado to intensamente pelos filsofos cosmolgicos[Bar67]. Com a obra Elementos, de Euclides, renem-se e so apresentados de modo sistemtico as principais descobertas geomtricas de seus precursores, sendo considerado, at o sculo XIX, no somente o livrotexto da Geometria, mas o modelo daquilo que o pensamento cientfico deveria ser. Resumindo, deve-se ver nestes tempos as tentativas de conceituao do nmero, o estabelecimento das bases numricas, o estudo da lgebra e da geometria e a busca de uma sistematizao do raciocnio, que tanto atraram os antigos. Tempos de evoluo lenta e, em termos de produo efetiva de conhecimento matemtico, bem abaixo da quantidade e qualidade produzida quase que exponencialmente a partir do sculo XV d.C., mas no menos importantes. De fato, para se compreender a Histria da Matemtica na Europa necessrio conhecer sua histria na Mesopotmia e no Egito, na Grcia antiga e na civilizao islmica dos sculos IX a XV. 4.1.3 A Lgica de Aristteles

Aristteles (384 a.C. - 322 a.C.) um filsofo atual: a questo aristotlica, isto , o que Aristteles realmente escreveu , o que se deve a ele ou antes, a seus discpulos, algo complexo, onde no h acordo definitivo, e provavelmente segundo alguns nunca haver, sendo uma questo sobre a qual se continua escrevendo. Aristteles passou quase vinte anos na Academia platnica e educou Alexandre Magno (se Plato estivesse vivo teria visto a 36

realizao de seu maior sonho, o de que os governantes filosofassem). Preocupava-o, como a todos os gregos, a vida poltica, a cidade, porm o que mais o interessava era o saber. E foi sbio em quase todos os domnios: cincias naturais, lgica, fsica, potica, astronomia, tica, poltica, retrica, psicologia, entre outras. Mestre de lgica para centenas de geraes, aplicouse, sobretudo, em assentar as bases da cincia que buscamos, a filosofia primeira, o que depois chamou-se Metafsica. Interessa neste estudo sobretudo a lgica aristotlica e o seu mtodo axiomtico. A Lgica foi considerada na tradio clssica e medieval como instrumento indispensvel ao pensamento cientfico. Atualmente parte importante na metodologia dedutiva das cincias, alm de constituir-se como um saber prprio, com ligao a relevantes problemas tericos. Da Lgica Cientfica nasceu a Lgica Matemtica e, dentro desta, vrias filosofias da lgica que interpretam os clculos simblicos e sua sistematizao axiomtica. Para a Histria da Computao interessa abordar em particular a questo do pensamento dedutivo e matemtico, seus limites, o problema da relativa mecanizao do pensamento quantitativo e o problema da Inteligncia Artificial. Da discusso e busca da soluo desses problemas, que entram tambm no campo filosfico, formou-se a base conceitual, teoria da computabilidade, necessria para o advento do computadores. O incio da cincia da Lgica encontra-se na antiga Grcia [Kne68] [Boc66]. As polmicas geradas pela teoria de Parmnides e os famosos argumentos de Zeno *, que negavam a realidade do movimento fazendo um uso indevido do princpio da nocontradio, contriburam para a distino dos conceitos, para se ver a necessidade de argumentar com clareza, mediante demonstraes rigorosas, e assim responder s objees dos adversrios. Mais tarde, as sutilezas dos sofistas, que reduziam todo o saber arte de convencer pelas palavras, levaram Scrates a defender o valor dos conceitos e tentar defini-los com preciso. Assim a Lgica como cincia vai se formando pouco a pouco, principalmente com Scrates e Plato. Mas Plato pensava que qualquer contedo da mente existia tal qual na realidade e Aristteles reage ao seu mestre, dizendo que as idias existem somente na mente humana, mas correspondendo a realidades. Com Aristteles que se d o verdadeiro nascimento da Lgica como cincia das idias e dos processos da mente. At hoje no existe forma alguma concebvel de lgica, por muito distinta que seja da lgica formal, que no tenha algum tipo de conexo com a obra aristotlica [Sch31]. Ele foi o primeiro lgico formal da histria, tendo desenvolvido ao menos duas formas distintas de lgica formal, elaborando algumas de suas partes de maneira praticamente completa e deixando esboados outros tipos de lgicas que somente na poca atual foram novamente tratadas .
Parmnides (540 a 470 a.C.) negava a existncia do movimento (devir) e afirmava a existncia de um nico ser (pantesmo), tendo enunciado o princpio da no contradio: algo no pode ser e no ser ao mesmo tempo, sob o mesmo aspecto e no mesmo sujeito. Seu discpulo Zeno (490 a 430 a.C.) foi o fundador da dialtica e radicalizou a negao do movimento. Este envolveria um paradoxo: para mudar completamente preciso antes mudar parcialmente, e assim infinitamente, o que levaria a concluir que o movimento no existe (paradoxos de Aquiles e a tartaruga e os pontos de percurso de uma flecha) Alm do mais interessa o estudo das obras do Filsofo pois tem um especial valor pedaggico, ao apresentar de maneira unitria a maior parte dos problemas lgicos, contemplados com o vigor caracterstico que acompanha uma cincia emergente, e mais acessvel ao principiante que muitas apresentaes modernas de lgica formal.

37

Aristteles escreveu uma srie de trabalhos que seriam editados por Andrnico de Rodes no sculo I d.C. e que receberam posteriormente o nome de Organon (Instrumento), de acordo com a concepo segundo a qual a Lgica deveria fornecer os instrumentos mentais necessrios para enfrentar qualquer tipo de investigao. Essa obra compreende os seguintes livros: Categorias, Analticos I, Analticos II, o Peri Hermeneias (ou sobre a interpretao), Tpicos e Refutao de argumentos sofistas. A grande novidade aristotlica est nos Analticos, com o silogismo. Aristteles chamava a Lgica com o termo analtica (e justamente Analticos so intitulados os escritos fundamentais do Organon). A analtica (do grego analysis, que significa resoluo) explica o mtodo pelo qual, partindo de uma dada concluso, resolve-se precisamente nos elementos dos quais deriva, isto , nas premissas e nos elementos de que brota, e assim fica fundamentada e justificada. Aristteles construiu uma sofisticada teoria dos argumentos, cujo ncleo a caracterizao e anlise dos chamados silogismos, os tpicos raciocnios da lgica aristotlica. O argumento Todo homem mortal Scrates homem Logo Scrates mortal o exemplo tpico do silogismo perfeito. Conforme o prprio Aristteles, o silogismo um discurso no qual, sendo admitidas algumas coisas, outra coisa distinta resulta necessariamente dessas coisas afirmadas primeiro, pelo nico fato de que essas existem [Per88].

Figura 4: Aristteles

Nos Primeiros Analticos, Aristteles desenvolveu minuciosamente o sistema dos silogismos, mostrando os princpios maiores que o sustentam e as regras que lhe devem

38

moldar a construo. A anlise do Filsofo to ampla quanto engenhosa e envolve tambm as assim chamadas modalidades e os silogismos modais *. Entre as caractersticas mais importantes da silogstica aristotlica est a de se ter pensado pela primeira vez na histria da lgica em fazer uso de letras que poderiam ser usadas para representar uma expresso substantiva qualquer, fundamental para o desenvolvimento do simbolismo lgico. tambm com Aristteles que se encontra uma das primeiras tentativas de se estabelecer um rigor nas demonstraes matemticas. Ao definir os dois tipos de demonstrao, quia (dos efeitos s causas) e propter quid (das causas aos efeitos), dizia (I Anal. Post., lect. 14) que as matemticas utilizam preferencialmente esse modo de demonstrar, e por isso esta cincia essencialmente dedutiva: algumas vezes o mais conhecido por ns em si mesmo e por natureza tambm o mais cognoscvel em si mesmo e por natureza. Assim acontece nas matemticas, nas quais, devido abstrao da matria, no se efetuam demonstraes mais do que a partir dos princpios formais. E assim as demonstraes procedem desde o mais cognoscvel em si mesmo. No entanto, para que haja demonstrao, os primeiros princpios devem ser indemonstrveis, j que, do contrrio, se procederia a uma regresso ao infinito. E como se conhece a verdade dos primeiros princpios? Por induo. fora de contemplar a freqncia dos acontecimentos, buscando o universal. Os primeiros princpios no so inatos; so adquiridos na experincia, analisando-se as percepes que contm um elemento universal. No entanto esta induo citada por Aristteles nada tem a ver com demonstrao por induo completa ou o mtodo da induo finita ou, mais ainda, raciocnio por recorrncia, estabelecido pelo matemtico italiano Giuseppe Peano. Sobre esta temtica ver anexo sobre Deduo e Induo na Matemtica. E no meio de tudo isso emergiu aquela que considerada uma das mais definitivas contribuies do Organon: o mtodo axiomtico, que recebeu precisamente no sculo XX sua maior valorao, ao apresentar-se como o caminho universal dentro do qual se enquadram todas as cincias dedutivas. Um pouco mais sobre este assunto exposto no anexo O mtodo axiomtico e as cincias dedutivas. 4.1.4 A contribuio dos megricos e esticos

Embora Aristteles seja o mais brilhante e influente filsofo grego, outra importante tradio argumentativa formou-se na antiga Grcia, com os megricos e esticos. Pouco conservada pela tradio, merece um melhor tratamento dos historiadores, porque o que deles se conhece sugere que esses gregos eram altamente inteligentes. Os megricos (em funo de sua cidade, Mgara) interessaram-se por certos enigmas lgicos como o conhecido paradoxo do mentiroso: quem diz O que eu afirmo agora falso, enuncia algo verdadeiro ou falso? Um deles, Diodoro Cronus, que morreu por volta de 307 a.C., formulou interessante concepo modal, relacionando possibilidade, tempo e verdade, enquanto outro megrico, de nome Flon, estudou proposies do tipo Se chove ento a rua est molhada, construda com o auxlio das expresses se..., ento... conhecidas
*

Modalidades so as expresses do tipo possvel que..., necessrio que....

39

como condicionais. Ele as definiu em termos extremamente polmicos, mas que seriam assumidos como corretos, vinte e trs sculos mais tarde pelos fundadores da Lgica Contempornea. Os esticos (da chamada escola filosfica de Stoa, que quer dizer prtico) desenvolveram tambm notveis teorias lgicas. Tinham bastante presente a diferena que h entre um cdigo de comunicao especfico, de um lado, e o que se pode expressar atravs do uso de tal cdigo. Assim sendo, um conceito de proposio anlogo ao usado na atual Lgica, j estava presente, de modo virtual, na filosofia estica da linguagem. Porm a mais notvel contribuio estica Lgica foi obra de Crsipo de Soles (280-206 a.C.), homem de vasta produo poligrfica (750 livros). Ele estudou as sentenas condicionais e tambm as disjuntivas (regidas pela partcula ou) e as copulativas (regidas pelo e), tendo tambm reconhecido claramente o papel lgico desempenhado pela negao. Alm disto, Crsipo foi capaz de relacionar tais idias com as modalidades, elaborando, ento, um sistema de princpios lgicos que, no seu campo especfico, foi muito alm dos poucos resultados obtidos por Aristteles e seu discpulo Teofrasto. Por tal razo, Crsipo reconhecido como o grande precursor daquilo que hoje se chama Clculo Proposicional, o primeiro captulo da Lgica desenvolvida a partir do ltimo quarto do sculo XIX [Bri79b].

4.1.5

Euclides e o Mtodo Axiomtico

Figura 5: Representao de Euclides

40

Com sua obra Elementos, o matemtico grego Euclides (330 a.C. - 277 a.C.) deu uma forma sistemtica ao saber geomtrico, implementando as idias sobre axiomatizao, de Aristteles, para uma cincia exata. No primeiro livro dos Elementos, ele enuncia vinte e trs definies, cinco postulados e algumas noes comuns ou axiomas *. Em seguida ele deduz proposies ou teoremas, os quais constituem o saber geomtrico, como por exemplo: se em um tringulo dois ngulos so iguais entre si, tambm os lados opostos a esses ngulos so iguais entre si. Postulados, axiomas e definies constituem os pontos de partida para as demonstraes de Euclides. Seu objetivo mostrar todos os outros princpios geomtricos primeiro os da Geometria Plana e depois os da Geometria Espacial , revelando que so decorrncias necessrias dos princpios fundamentais. Quais so os traos caractersticos das tcnicas adotadas por Euclides? Em primeiro lugar ele enuncia as sua leis em forma universal: no se detm em determinada figura ou linha, mas examina as propriedade que todas as figuras e todas as linhas de tal ou qual tipo devem ter. Formula tais leis de maneira rigorosa e absoluta e, mais ainda, demonstra-as. Seu livro, na verdade, consiste em demonstraes colocadas de maneira sistemtica, no indutiva, mas dedutiva, por meio das quais procura estabelecer as suas concluses com o rigor da lgica. Euclides visava aperfeioar o conhecimento acerca de pontos, linhas e figuras, tornando mais rigorosas as demonstraes de leis j conhecidas, e procurava aumentar esse conhecimento, demonstrando leis novas, at ento desconhecidas. Mas talvez no se esgotasse a a motivao ou pelo menos as conseqncias do que elaborou o gemetra. A colocao de axiomas e teoremas em forma dedutiva deu Geometria uma apresentao mais elegante e transparente, tornando facilmente perceptveis as interessantes conexes lgicas ali introduzidas. A axiomatizao do saber Geomtrico abriu um sem fim de perspectivas para os estudiosos das cincias exatas, que adotam as exposies axiomticas e buscam axiomatizaes mais elegantes e econmicas no s para dar rigor s suas demonstraes, mas descobrir novas conexes lgicas. Esse portanto o modo como Euclides ordena o conhecimento geomtrico no chamado sistema euclidiano. Durante sculos esse sistema valeu como modelo insupervel do saber dedutivo: os termos da teoria so introduzidos depois de terem sido definidos e as proposies no so aceitas se no forem demonstradas. Euclides escolhia as proposies primitivas, base da cadeia sobre a qual se desenvolvem as dedues sucessivas, de tal modo que ningum pudesse levantar dvidas sobre a sua veracidade: eram auto-evidentes, portanto isentas de demonstrao. Leibniz afirmaria mais tarde que os gregos raciocinavam com toda a exatido possvel em matemtica e deixaram humanidade modelos de arte demonstrativa ([RA91], volume III). Em resumo, Euclides, como j fizera Aristteles, buscou o ideal de uma organizao axiomtica, que em ltima instncia se reduz escolha de um pequeno nmero de proposies em princpio aceitas naquele domnio do conhecimento, e posterior deduo de todas as outras proposies verdadeiras desse domnio, a partir delas. Surge com Euclides e
*

As definies pretendem substancialmente explicitar os conceitos da geometria (ponto aquilo que no tem partes; linha comprimento sem largura, etc.). Os postulados representam verdades indubitveis tpicas do saber geomtrico (pode-se levar uma reta de qualquer ponto a qualquer ponto; todos os ngulos retos so iguais; etc.). Os axiomas so verdades que valem universalmente, no s na geometria (o todo maior que a parte; coisas que so iguais a uma mesma coisa so iguais entre si, etc.).

41

Aristteles (estar plenamente desenvolvida no incio do sculo XX com a escola formalista de Hilbert) a busca de uma economia do pensamento (um bom texto sobre o assunto pode ser encontrado em [Wil65]). A Histria da Computao tem um marco significativo nesse ponto da Histria: o comeo da busca da automatizao do raciocnio e do clculo. Mas havia um problema no sistema de Euclides: suas evidncias no eram assim to evidentes. O seu quinto postulado no convenceu de modo algum, e despertou perplexidade na histria do prprio pensamento grego, depois no rabe e no renascentista. No sculo XIX, Karl Friedrich Gauss (1777-1855) viu com toda a clareza a no demonstrabilidade do quinto postulado e a possibilidade da construo de sistemas geomtricos no euclidianos. Janos Boulay (1802-1860), hngaro, e Nicolai Ivanovic Lobacewskiy (1793-1856), russo, trabalhando independentemente, elaboraram uma geometria na qual o postulado da paralela no vale mais. A conseqncia desses fatos foi a eliminao dos poderes da intuio na fundamentao e elaborao de uma teoria geomtrica: os axiomas no so mais verdades evidentes que garantem a fundao do sistema geomtrico, mas puros e simples pontos de partida, escolhidos convencionalmente para realizar uma construo dedutiva. Mas, se os axiomas so puros pontos de partida, quem garantir que, continuando-se a deduzir teoremas, no se cair em contradio? Esta questo crucial dos fundamentos da matemtica levar aos grandes estudos dos finais do sculo XIX e incios do XX e ser o ponto de partida do projeto formalista de David Hilbert, assim como de outras tentativas de se fundamentar a matemtica na lgica e na teoria dos conjuntos, como as propostas por Frege, Russell e Cantor. E ser dessa seqncia de sucessos e fracassos que se produzir a base da Computao, com Turing, von Neumann, Post, Church, e outros mais. 4.1.6 Diophantus, al-Kharazmi e o desenvolvimento da lgebra

O seguinte problema no Rhind Papyrus *, do Museu britnico em Londres, foi escrito por volta do ano 1650 a.C.: Divida 100 pes entre 10 homens, incluindo um barqueiro, um capataz e um vigia, os quais recebem uma dupla poro cada. Quanto cabe a cada um? [Bow94] Isto naturalmente pode ser resolvido usando-se lgebra. O primeiro tratado de lgebra foi escrito pelo grego Diophantus (200 - 284), da cidade de Alexandria, por volta do ano 250. O seu Arithmetica, composto originalmente por 13 livros dos quais somente 6 se preservaram, era um tratado caracterizado por um alto grau de habilidade matemtica e de engenho: quanto a isto, o livro pode ser comparado aos grandes clssicos da idade alexandrina anterior [Boy74]. Antes de Diophantus, toda a
*

Juntamente com o papiro de Moscou uma das principais fontes de informao relativa s formas de notao e operaes aritmticas em uso durante a primeira poca da civilizao egpcia

42

lgebra que havia, incluindo problemas, operaes, lgica e soluo, era expressada sem simbolismo palavra chave sobre a qual ainda se voltar a falar ; ele foi o primeiro a introduzir o simbolismo na matemtica grega. Para uma quantidade desconhecida usava um smbolo (chamado arithmos), que caracterizava um nmero indefinido de unidades. Pela nfase dada em seu tratado soluo de problemas indeterminados, tal tratado tornou-se conhecido como anlise diofantina, que em geral faz parte da disciplina de Teoria dos Nmeros *. Seu trabalho, contudo, no suficiente para lhe conferir o ttulo de pai da lgebra . Mas com os persas e principalmente com os rabes que a lgebra poder ser efetivamente chamada de cincia. interessante notar que ao se falar que a Geometria uma cincia grega ou que a lgebra uma cincia rabe, est se afirmando algo mais do que a casualidade de terem sido gregos ou rabes seus fundadores ou promotores. Ordinariamente tendemos a pensar que o conhecimento cientfico independe de latitudes e culturas: uma frmula qumica ou um teorema de Geometria so os mesmos em ingls ou portugus ou chins e, sendo a comunicao, primeira vista, o nico problema, bastaria uma boa traduo dos termos prprios de cada disciplina. Mas no assim. Na verdade a evoluo da cincia est repleta de interferncias histrico-culturais, condicionando metodologias, o surgimento de novas reas do saber, e assim por diante. Os juristas rabes referem-se lgebra como o clculo da herana, segundo a lei cornica, uma problemtica importante dentro do Islam, e a j temos um exemplo de condicionamento histrico-cultural. No foi por mero acaso que a lgebra surgiu no califado abssida (ao contrrio dos Omadas, os Abssidas pretendem aplicar rigorosamente a lei religiosa vida cotidiana [AG81]), no seio da Casa da Sabedoria (Bayt al-Hikma) de Bagd, promovida pelo califa Al-Maamun; uma cincia nascida em lngua rabe e antagnica da cincia grega. Embora hoje a lgebra possa parecer objetiva e axiomtica, com uma sintaxe de estruturas operatrias e destituda de qualquer alcance semntico, ela o resultado da evoluo da velha aljabr, forjada por um contexto cultural em que no so alheios elementos que vo desde as estruturas gramaticais do rabe teologia muulmana da poca [Lau97]. Muhammad Ibn Musa Al-Khwarizmi (780 - 850), matemtico e astrnomo persa, foi membro da Casa da Sabedoria, a importante academia cientfica de Bagd, que alcanou seu resplendor com Al-Maamun (califa de 813 a 833). A ele, Al-Khwarizmi dedicou seu AlKitab al-muhtasar fy hisab al-jabr wa al-muqabalah (Livro breve para o clculo da jabr e da muqabalah). Al-jabr, que significa fora que obriga, restabelecer , precisamente porque a lgebra forar cada termo a ocupar seu devido lugar. J no comeo do seu Kitab, Al-Khwarizmi distingue seis formas de equao, s quais toda equao pode ser reduzida (e, canonicamente resolvida). Na notao atual:
*

Neste sentido foi o matemtico grego que maior influncia teve sobre a moderna teoria dos nmeros. Em particular Fermat foi levado ao seu ltimo teorema quando procurou generalizar um problema que tinha lido na Arithmetica de Diophantus: dividir um dado quadrado em dois quadrados (ver F.E. Robbins, P.Mich. 620: A Series of Arithmetical Problems, Classical Philology, pg 321-329, EUA, 1929). Apenas sob certo aspecto isto se justificaria. Em uma viso um tanto arbitrria e simplista poderamos dividir o desenvolvimento da lgebra em 3 estdios: (1) primitivo, onde tudo escrito em palavras; (2) intermedirio, em que so adotadas algumas simplificaes; (3) simblico ou final. Neste contexto, Arithmetica deve ser colocada na segunda categoria. Restabelecer, por algo no seu devido lugar, restabelecer uma normalidade. Como observa [Lau97] a palavra tajbir significa ortopedia e jibarath significa reduo, no sentido mdico (por o osso no devido lugar) e na Espanha, no tempo em que os barbeiros acumulavam funes, podia-se ver a placa Algebrista e Sangrador em barbearias.

43

1. ax2 = bx 2. ax2 = c 3. ax = c 4. ax2 + bx = c 5. ax2 + x = ax2 6. bx + c = ax2 Al-jabr a operao que soma um mesmo fator (afetado do sinal +) a ambos os membros de uma equao, para eliminar um fator afetado pelo sinal -. J a operao que elimina termos iguais de ambos os lados da equao al-muqabalah que significa estar de frente, cara a cara, confrontar. Por exemplo: em um problema onde os dados podem ser colocados sob a forma 2x2 + 100 20x = 58, Al-Khwarizmi procede do seguinte modo: 2x2 + 100 = 58 + 20x (por al-jabr) Divide por 2 e reduz os termos semelhantes: x2 + 21 = 10 x (por al-muqabalah) E o problema j est canonicamente equacionado.

Figura 6: Representao de Al-Kharazmi

Al-Kharazmi introduziu a escrita dos clculos no lugar do uso do baco. De seu nome derivaram as palavras, como j citado acima na histria do desenvolvimento do conceito de nmero, algarismo e algoritmo *[Kar61]. Embora no muito visvel ainda, deve-se chamar a ateno para essa disciplina da lgebra, que deve ser colocada entre as cincias que fundamentaram o desenvolvimento da
*

A palavra algoritmo na matemtica designa um procedimento geral de clculo, que se desenvolve, por assim dizer, automaticamente, poupando-nos esforo mental durante o seu curso; este termo ser depurado e aproveitado dentro da Computao. Dele se tornar a falar mais frente

44

Computao. Pois o computador e todos os instrumentos que o precederam (rguas de clculo, mquina de Pascal, a calculadora de Leibniz, a mquina analtica de Babbage, etc.) so somente as manifestaes prticas que foram surgindo, com naturalidade, em resultado da busca pelo homem de reduzir os problemas a expresses matemticas, resolvendo-as segundo regras. E isto, h muitos sculos, j tinha tomado o nome de lgebra, a arte dos raciocnios perfeitos como dizia Bhaskara, o conhecido matemtico hindu do sculo XII. Com os rabes, depois de relativo obscurecimento da cultura grega, d-se continuidade ao processo que proporcionar as bases fundamentais para o raciocnio automatizado, fundamental na Cincia da Computao. 4.1.7 A automatizao do raciocnio

Ainda dentro do perodo acima estabelecido (4.200 a.C. at meados do ano 1600 d.C) iniciou-se concretizao de uma antiga meta: a idia de se reduzir todo raciocnio a um processo mecnico, baseado em algum tipo de clculo formal. Isto remonta a Raimundo Llio. Embora negligenciado pela cincia moderna, Raimundo Llio (1235 - 1316), espanhol, figura pletrica de seu tempo, em seu trabalho Ars Magna (1305 - 1308), apresentou a primeira tentativa de um procedimento mecnico para produzir sentenas logicamente corretas [Her69]. Llio acreditava que tinha encontrado um mtodo que permitia, entre outras coisas, tirar todo tipo de concluses, mediante um sistema de anis circulares dispostos concentricamente, de diferentes tamanhos e graduveis entre si, com letras em suas bordas. Inveno nica, tentar cobrir e gerar, representando com letras que seriam categorias do conhecimento , todo o saber humano, sistematizado em uma gramtica lgica.

Figura 7: Desenho de Raimundo Llio

Conforme Hegel: A tendncia fundamental da arte de Raimundo Llio consistia em enumerar e ordenar todas as determinaes conceituais a que era possvel reduzir todos os objetos, as categorias puras com referncia s quais podiam ser determinados, para, desse 45

modo, poder assinalar facilmente, com respeito a cada objeto, os conceitos a ele aplicveis. Raimundo Llio , pois, um pensador sistemtico, ainda que ao mesmo tempo mecnico. Deixou traada uma tabela em crculos nos quais se acham inscritos tringulos cortados por outros crculos. Dentro desses crculos, ordenava as determinaes conceituais, com pretenses exaustivas; uma parte dos crculos imvel, a outra tem movimento. Vemos, com efeito, seis crculos, dois dos quais indicam os sujeitos, trs os predicados e o sexto as possveis perguntas. Dedica nove determinaes a classe, designando-as com as nove letras B C D E F G H I K. Obtm, desse modo, nove predicados absolutos, que aparecem escritos ao redor de seu quadro: a bondade, a magnitude, a durao, o poder, a sabedoria, a vontade, a virtude, a verdade, a magnificncia; em seguida, vm nove predicados relativos: a diferena, a unanimidade, a contraposio, o princpio, a metade, o fim, o ser maior, o ser igual e o ser menor; em terceiro lugar, temos as perguntas: sim?, qu?, de onde?, por qu?, quo grande?, de que qualidade?, quando?, de onde?, como e com qu?, a ltima das quais encerra duas determinaes; em quarto lugar, aparecem nove substncias (esse), a saber: Deus (divinum), os anjos (angelicum), o cu (coeleste), o homem (humanum), Imaginativum, Sensitivum, Vegetativum, Elementativum; em quinto lugar, nove acidentes, quer dizer, nove critrios naturais: a quantidade, a qualidade, a relao, a atividade, a paixo, o ter, a situao, o tempo e o lugar; por ltimo, nove critrios morais, que so as virtudes: a justia, a prudncia, a valentia, a temperana, a f, a esperana, o amor, a pacincia e a piedade, e nove vcios: a inveja, a clera, a inconstncia, a avareza, a mentira, a gula, a devassido, o orgulho e a preguia (acedia). Todos esses crculos tinham de ser colocados necessariamente de determinado modo para poder dar como resultado as combinaes desejadas. Conforme as regras de colocao, segundo as quais todas as substncias recebem os predicados absolutos e relativos adequados a estes, deviam ser esgotados a cincia geral, a verdade e o conhecimento de todos os objetos concretos. [Roc81]. Os procedimentos estabelecidos por Llio no foram muito vlidos. Mas o mais importante em Llio a idia concebida, genial sob certo aspecto. Tanto que seu trabalho influenciar muitos matemticos famosos, do nvel de um Cardano (sculo XVI), Descartes (sculo XVII), Leibniz (sculos XVII/XVIII), Cantor (sculos XIX/XX), entre outros. Raimundo Llio considerado o precursor da anlise combinatria. Como dir R. Blanch: encontramos em Llio, pelos menos em germe e por mais que ele no soubesse tirar partido disso por inabilidade, duas idias que iriam se tornar predominantes nas obras de Lgica, primeiro em Leibniz e depois em nossos contemporneos: as idias de caracterstica e de clculo (...). Com a ajuda desse simbolismo, tais autores pretendem permitir que as operaes mentais, freqentemente incertas, fossem substitudas pela segurana de operaes quase mecnicas, propostas de uma vez por todas ([RA91], volume III). Pode-se ver em Raimundo Llio os primrdios do desenvolvimento da Lgica Matemtica, isto , de um novo tratamento da cincia da Lgica: o procurar dar-lhe uma forma matemtica. O interesse deste trabalho caracterizar a Lgica Matemtica, sem aprofundar nas discusses filosficas ainda em aberto sobre os conceitos lgica matemtica e lgica simblica, se uma lgica distinta da cincia matemtica ou no, pois sem dvida alguma a Computao emergir dentro de um contexto da evoluo deste novo tratamento da lgica. 46

A Lgica Matemtica ergue-se a partir de duas idias metodolgicas essencialmente diferentes. Por um lado um clculo, da sua conexo com a matemtica. Por outro lado, caracteriza-se tambm pela idia de uma demonstrao exata e, nesse sentido, no uma imitao da matemtica nem esta lhe serve de modelo, mas pelo contrrio, Lgica caber investigar os fundamentos da matemtica com mtodos precisos e oferecer-lhe o instrumento para uma demonstrao rigorosa. A palavra lgebra voltar a aparecer com o ingls Robert Recorde(1510?-1558), em sua obra Pathway of Knowledge(1551), que introduz o sinal de = e divulga os smbolos + e , introduzidos por John Widmann (Arithmetica, Leipzig, 1489). Thomas Harriot(1560-1621) prosseguir o trabalho de Recorde, inventando os sinais > e <. Willian Oughtred(15741621), inventor da rgua de clculo baseada nos logaritmos de Napier, divulgou o uso do sinal , tendo introduzido os termos seno, coseno e tangente. Em 1659 J.H. Rahn usou o sinal . Todos esses matemticos ajudaram a dar lgebra sua forma mais moderna.

47

Figura 8: Figuras representando mecanismo elaborado por Llio para automatizar o raciocnio

48

4.2 A mecanizao do clculo


Se aceito o ponto de vista de estudiosos como Needham [Nee59], a data de 1600 pode ser vista como um bom divisor de guas dentro da histria da cincia em geral. Vale a pena lembrar que o estudo da matemtica no tempo anterior a essa data, na Europa, no havia avanado substancialmente em relao ao mundo rabe, hindu ou chins. A lgebra rabe fora perfeitamente dominada e tinha sido aperfeioada, e a trigonometria se tornara uma disciplina independente [Boy74]. O casamento de ambas pela aplicao dos mtodos algbricos no terreno da geometria foi o grande passo e Galileu (1564 - 1642) a tem um papel preponderante. Ele uniu o experimental ao matemtico, dando incio cincia moderna. Galileu d uma contribuio decisiva a uma formulao matemtica das cincias fsicas. A partir de ento, em resultado desse encontro da matemtica com a fsica, a cincia tomou um novo rumo, a um passo mais rpido, e rapidamente as descobertas de Newton (1643 -1727) sucedem s de Galileu. Trata-se de um perodo de transio por excelncia, que preparou o caminho para uma nova matemtica: no j uma coleo de truques, como Diophantus possura, mas uma forma de raciocinar, com uma notao clara. o comeo do desenvolvimento da idia de formalismo na Matemtica, to importante depois para a fundamentao terica da Computao *.

4.2.1

Leibniz, o precursor da Lgica Matemtica moderna

A Lgica Moderna comeou no sculo XVII com o filsofo e matemtico alemo Gottfried Wilhelm Leibniz (1646 - 1716). Seus estudos influenciaram, 200 anos mais tarde, vrios ramos da Lgica Matemtica moderna e outras reas relacionadas, como por exemplo a Ciberntica (Norbert Wiener dizia que se fosse escolher na Histria da Cincia um patrono para a Ciberntica, elegeria Leibniz [Wie70]). Entre outras coisas, Leibniz queria dotar a Metafsica (aquela parte da Filosofia que estuda o ser em si) de um instrumento suficientemente poderoso que a permitisse alcanar o mesmo grau de rigor que tinha alcanado a Matemtica. Parecia-lhe que o problema das interrogaes e polmicas no resolvidas nas discusses filosficas, assim como a insegurana dos resultados, eram fundamentalmente imputveis ambigidade dos termos e dos processos conclusivos da linguagem ordinria. Leibniz tentaria elaborar sua nova lgica precisamente como projeto de criao de uma lgica simblica e de carter completamente calculstico, anlogos aos procedimentos matemticos. Historicamente falando, tal idia j vinha sendo amadurecida, depois dos rpidos desenvolvimentos da Matemtica nos sculos XVI e XVII, possibilitados pela introduo do simbolismo. Os algebristas italianos do sculo XVI j tinham encontrado a frmula geral
*

Lembrando algo que j foi dito, importante ressaltar que desde suas origens aristotlicas a lgica havia assumido claramente alguns recursos fundamentais, como a estrutura formal, o emprego de certo grau de simbolismo, a sistematizao axiomtica e o identificar-se com a tarefa de determinar as leis do discurso (tomando, por exemplo, a linguagem como tema de estudo), caractersticas que foram assumidas pela Lgica Moderna.

49

para a resoluo das equaes de terceiro e quarto graus, oferecendo Matemtica um mtodo geral que tinha sido exaustivamente buscado pelos antigos e pelos rabes medievais. Descartes e Fermat criaram a geometria analtica, e, depois de iniciado por Galileu, o clculo infinitesimal desenvolveu-se com grande rapidez, graas a Newton e ao prprio Leibniz. Ou seja, as matemticas romperam uma tradio multissecular que as havia encerrado no mbito da geometria, e estava se construindo um simbolismo cada vez mais fcil de manejar e seguro, capaz de funcionar de uma maneira, por assim dizer, mecnica e automtica, sujeito a operaes que, no fundo, no eram mais do que regras para manipulao de smbolos, sem necessidade de fazer uma contnua referncia a contedos geomtricos intuitivos.

Figura 9: Leibniz

Leibniz deu-se conta de tudo isto e concebeu, tambm para a deduo lgica, uma desvinculao anloga com respeito ao contedo semntico das proposies, a qual alm de aliviar o processo de inferncia do esforo de manter presente o significado e as condies de verdade da argumentao, pusesse a deduo a salvo da fcil influncia que sobre ela pode exercer o aspecto material das proposies. Deste modo coube a ele a descoberta da verdadeira natureza do clculo em geral, alm de aproveitar pela primeira vez a oportunidade de reduzir as regras da deduo lgica a meras regras de clculo, isto , a regras cuja aplicao possa prescindir da considerao do contedo semntico das expresses. Leibniz influenciou seus contemporneos e sucessores atravs de seu ambicioso programa para a Lgica. Esse programa visava criar uma linguagem universal baseada em um alfabeto do pensamento ou characteristica universalis, uma espcie de clculo universal para o raciocnio.

50

Figura 10: Blaise Pascal

Na viso de Leibniz a linguagem universal deveria ser como a lgebra ou como uma verso dos ideogramas chineses: uma coleo de sinais bsicos que padronizassem noes simples no analticas. Noes mais complexas teriam seu significado atravs de construes apropriadas envolvendo sinais bsicos, que iriam assim refletir a estrutura das noes complexas e, na anlise final, a realidade. O uso de numerais para representar noes no analticas poderia tornar possvel que as verdades de qualquer cincia pudessem ser calculadas por operaes aritmticas, desde que formuladas na referida linguagem universal ([Bri79a], volume XI). Com isso se poderia substituir o genrico dialoguemos por um mais exato calculemos. Conforme o prprio Leibniz, Quando orietur controversiae, non magis disputatione opus erit inter duo philosophos, quam inter duo computistas. Sufficet enin calamos in manus sumere, sedereque ad bacos et sib mutuo (accito si placet amico) dicere: calculemus *. As discusses no seriam, assim, disputas controvertidas, de resultado duvidoso e final no concludo, mas sim formas de clculo que estabelecessem a maior ou menor verdade de uma proposio. Essa idia de Leibniz sustentava-se em dois conceitos intimamente relacionados: o de um simbolismo universal e o de um clculo de raciocnio (isto , um mtodo quase mecnico de raciocnio) . Isso, para a Histria da Computao, tem um particular interesse, pois esse calculus ratiocinator de Leibniz contm o embrio da machina ratiocinatrix, a mquina de raciocinar buscada por Turing e depois pelos pesquisadores dentro do campo da Inteligncia Artificial. Leibniz, assim como Boole, Turing, e outros basta lembrar o baco, o

Quando aparecer uma controvrsia, j no haver necessidade de uma disputa entre dois filsofos mais do que a que h entre dois calculistas. Bastar, com efeito, tomar a pena na mo, sentar-se mesa (ad abacus) e (ao convite de um amigo, caso se deseje), dizer um ao outro: Calculemos! [Boc66] Deve-se observar que destas conceituaes descenderam a notao da matemtica e da lgica do sculo XX.

51

'computador' de Babbage, etc. , perceberam a possibilidade da mecanizao do clculo aritmtico. O prprio Leibniz, e Pascal um pouco antes, procuraram construir uma mquina de calcular. Nota-se portanto que o mesmo impulso intelectual que o levou ao desenvolvimento da Lgica Matemtica o conduziu busca da mecanizao dos processos de raciocnio. Interessa tambm chamar a ateno sobre a idia de uma linguagem artificial que j aparece em Leibniz. Como j foi dito, ele captou muito bem as inmeras ambigidades a que esto submetidas as linguagens de comunicao ordinrias e as vantagens que apresentam os smbolos (que ele chamava notae) da Aritmtica e lgebra, cincias nas quais a deduo consiste no emprego de caracteres. Ao querer dar Lgica uma linguagem livre de ambigidades e ao procurar associar a cada idia um sinal e obter a soluo de todos os problemas mediante a combinao desses sinais, Leibniz acabou provocando um novo desenvolvimento da prpria lgica.

Figura 11: Mquinas calculadoras de Leibniz e Pascal

A idia de uma linguagem artificial ou a reduo do raciocnio ao clculo, como j visto em Llio e agora em Leibniz, no , portanto, patrimnio do sculo XX. A contribuio de Leibniz ao desenvolvimento da lgica aparece sob dois aspectos: ele aplicou com sucesso mtodos matemticos para a interpretao dos silogismos aristotlicos, e apontou aquelas partes da lgebra que esto abertas a uma interpretao no aritmtica ([Bri79a], volume XI). Pela primeira vez se exps de uma maneira clara o princpio do procedimento formal. Leibniz tornou-se assim o grande precursor da Lgica Matemtica. Talvez se pudesse perguntar como possvel que muitos apresentem a Lgica Simblica como fruto do nosso tempo, enquanto teve sua origem na segunda metade do 52

sculo XVII. que, na realidade, a contribuio de Leibniz ficou substancialmente reduzida a um mero programa, do qual s executou alguns fragmentos, muito parciais se bem que muito interessantes tambm, capazes de nos dar uma idia de como concebia sua obra. Nem sequer seus seguidores diretos levaram para a frente a construo do clculo lgico mais alm de um nvel muito rudimentar. Provavelmente a excessiva magnitude do plano de sua characteritica universalis o tenha seduzido, afastando Leibniz de objetivos mais modestos porm alcanveis, como o de construir o primeiro clculo lgico autntico. Ainda dentro desses primeiros passos mais concretos em direo construo de um dispositivo para clculo automtico, no se pode deixar de falar do ilustre francs Blaise Pascal (1623-1662), j acima citado, que foi matemtico, fsico, filsofo e brilhante escritor de religio, fundador da teoria moderna das probabilidades. Aos 17 anos j publicava ensaios de matemtica que impressionaram a comunidade do seu tempo. Antecedendo a Leibniz, montou a primeira mquina de clculo digital para ajudar nos negcios do pai em 1642. Iria produzir ainda outras 49 mquinas a partir deste primeiro modelo. Estudos posteriores em geometria, hidrodinmica, hidrosttica e presso atmosfrica o levaram a inventar a seringa e prensa hidrulica e descobrir as famosas Leis de Presso de Pascal. Aps intensa experincia mstica, entrou em 1654 para o convento de Port-Royal, onde escreveu pequenos opsculos msticos. Os ltimos anos de sua vida foram dedicados pesquisa cientfica [Wil97]. 4.2.2 O problema da notao
O smbolo no uma mera formalidade, a verdadeira essncia da lgebra. Sem o smbolo, o objeto somente uma percepo humana e reflete todas as fases sob as quais os sentidos humanos o captam; substitudo por um smbolo o objeto torna-se uma completa abstrao, um mero operando sujeito a determinadas operaes especficas. Tobias Dantzig

Nas cincias, as descobertas que podem ser compreendidas e assimiladas rapidamente por outros so fonte de progresso imediato. E na Matemtica, o conceito de notao est relacionado com isso. Basta lembrar os algarismos romanos e pensar na complexidade que envolve, por exemplo a multiplicao, de MLXXXIV por MMLLLXIX. H uma forte analogia entre a histria da lgebra e a da Aritmtica. No caso desta ltima, os homens esforaram-se durante centenas de anos usando uma numerao inadequada, devido ausncia de um smbolo para o nada (zero). Na lgebra, a ausncia de uma notao reduziu-a a uma coleo de regras fortuitas para a soluo de equaes numricas. A descoberta do zero criou a Aritmtica que hoje ensinada e utilizada, e o mesmo se pode dizer em relao notao, que acabou por introduzir uma nova etapa na histria da lgebra. As letras liberaram a lgebra da dependncia do uso de palavras, sujeitas s ambigidades e diferentes interpretaes a que est sujeito o discurso de uma linguagem natural (portugus, ingls, e outras). Mais ainda: a letra ficou livre dos tabus que a associavam

53

palavra. Ela agora um smbolo cujo significado pode transcender o objeto simbolizado. O x de uma equao tem existncia prpria, independente do objeto que represente. Importante tambm o fato de se poder operar com letras e transformar expresses algbricas com literais, mudando um sentena qualquer para diferentes formas com sentido equivalente. A lgebra no se torna somente uma maneira mais econmica de se escrever, mas generaliza procedimentos. Por exemplo: expresses tais como 2x + 3, 3x 5, x2 + 4x +7 tinham antes uma individualidade prpria, eram fechadas em si mesmas atravs das palavras com que eram expressas. Sua resoluo dependia de uma apropriada interpretao e manipulao. Com a notao atravs de literais possvel passar de um individual para um coletivo. A forma linear ax+b, a forma quadrtica ax2+bx+c so agora espcies, moldes especficos, e graas a isso foi possvel o nascimento da teoria geral das funes que a base de toda matemtica aplicada [Dan54]. A notao de Leibniz usada para o clculo contribuiu mais do que a de Newton para a difuso das novas idias sobre integrais *, na poca. Pense-se por um momento como se resolve ax = b. Imediatamente pode ser dado como resposta que x = b/a e haveria surpresa se algum respondesse a = b/x. que normalmente se usam as ltimas letras do alfabeto para representar as incgnitas e as do comeo para representar as quantidades conhecidas. Mas isso no foi sempre assim, e somente no sculo XVII, a partir de Vite e com Descartes, tais convenes comearam a ser usadas [Boy74]. Geralmente tende-se a apreciar o passado desde o sofisticado posto de observao do tempo atual. necessrio valorizar e revalorizar este difcil e longo passado de pequenas e grandes descobertas. Leibniz, em seu esforo no sentido de reduzir as discusses lgicas a uma forma sistemtica que pudesse ser universal, aproximou-se da Lgica Simblica formal: smbolos ou ideogramas deveriam ser introduzidos para representar um pequeno nmero de conceitos fundamentais necessrios ao pensamento. As idias compostas deveriam ser formadas a partir desses alfabetos do pensamento humano, do mesmo modo como as frmulas so desenvolvidas na Matemtica [Boy74]. Isso o levou, entre outras coisas, a pensar em um sistema binrio para a Aritmtica e a demonstrar a vantagem de tal sistema sobre o decimal para dispositivos mecnicos de calcular . A idia de uma lgica estritamente formal da construo de sistemas sem significado smntico, interpretveis a posteriori no tinha surgido. Duzentos anos mais tarde, George Boole formularia as regras bsicas de um sistema simblico para a lgica matemtica, refinado posteriormente por outros matemticos e aplicado teoria dos conjuntos ([Bri79a], volume III). A lgebra booleana constituiu a base para o projeto de circuitos usados nos computadores eletrnicos digitais.

4.3 A lgica matemtica no sculo XIX

Newton e Leibniz descobriram o princpio fundamental do clculo de que uma integrao pode ser feita mais facilmente pela inverso do processo de diferenciao, no clculo das reas[RA91]. Em 1673 Gottfried Leibniz, usando uma engrenagem dentada, construiu uma calculadora capaz de multiplicar, na qual um nmero era repetido e automaticamente somado a um acumulador.

54

Figura 12: George Cantor

A passagem do sculo XVIII para o sculo XIX marca o incio de um novo tempo na Histria da matemtica, e, mais do que qualquer perodo precedente, mereceu ser conhecido como a sua Idade urea, e que afetar diretamente a evoluo em direo ao surgimento e fundamentao da Cincia da Computao. O que se acrescentou ao corpo da Matemtica durante esses cem anos, supera de longe tanto em quantidade como em qualidade a produo total combinada de todas as pocas precedentes. Com uma possvel exceo do perodo conhecido como Idade herica, na Grcia antiga, foi uma das mais revolucionrias etapas do desenvolvimento dessa cincia, e, conseqentemente, tambm da Computao. Ser particularmente objeto de estudo a evoluo da Lgica Simblica ou Lgica Matemtica que teve Leibniz como predecessor distante. A partir de meados do sculo XIX, a lgica formal * se elabora como um clculo algbrico, adotando um simbolismo peculiar para as diversas operaes lgicas. Graas a esse novo mtodo, puderam-se construir grandes sistemas axiomticos de lgica, de maneira parecida com a matemtica, com os quais se podem efetuar com rapidez e simplicidade raciocnios que a mente humana no consegue espontaneamente. A Lgica Simblica Lgica Matemtica a partir daqui , tem o mesmo objeto que a lgica formal tradicional: estudar e fazer explcitas as formas de inferncia, deixando de lado por abstrao o contedo de verdades que estas formas possam transmitir [San82]. No se trata aqui de estudar Lgica, mas de chamar a ateno para a perspectiva que se estava abrindo com o clculo simblico: a automatizao de algumas operaes do pensamento. A Mquina de Turing, como ser visto, conceito abstrato que efetivamente deu incio era dos
A Lgica Formal remonta particularmente a Aristteles, como visto no captulo dos Primrdios, que a fundiu com a lgica filosfica em um conjunto de obras que posteriormente chamou-se Organon. A lgica formal analisa detalhadamente as diversas formas que podem adotar as operaes lgicas, em particular o raciocnio, com uma relativa independncia dos seus contedos concretos.

55

computadores, baseou-se no princpio de que a simples aplicao de regras permite passar mecanicamente de uns smbolos a outros, sistema lgico que foi inaugurado pelo matemtico George Boole. Entretanto a lgica booleana estava limitada ao raciocnio proposicional, e somente mais tarde, com o desenvolvimento dos quantificadores, a lgica formal estava pronta para ser aplicada ao raciocnio matemtico em geral. Os primeiros sistemas foram desenvolvidos por F.L.G. Frege e G. Peano. Ao lado destes, ser necessrio citar George Cantor (1829 1920), matemtico alemo que abriu um novo campo dentro do mundo da anlise, nascida com Newton e Leibniz, com sua teoria sobre conjuntos infinitos [Bel37]. No incio do sculo XX a Lgica Simblica se organizar com mais autonomia em relao matemtica e se elaborar em sistemas axiomticos desenvolvidos, que se colocam em alguns casos como fundamento da prpria matemtica e que prepararo o surgimento do computador. 4.3.1 Boole e os fundamentos da Lgica Matemtica e da Computao

O ingls George Boole (1815 - 1864) considerado o fundador da Lgica Simblica ([Bri79a], volume III). Ele desenvolveu com sucesso o primeiro sistema formal para raciocnio lgico. Mais ainda, Boole foi o primeiro a enfatizar a possibilidade de se aplicar o clculo formal a diferentes situaes, e fazer operaes com regras formais, desconsiderando noes primitivas.

Figura 13: George Boole

Sem Boole, que era um pobre professor autodidata em Matemtica, o caminho pelo qual se ligou a Lgica Matemtica talvez demorasse muito a ser construdo. Com relao Computao, se a Mquina Analtica de Babbage (ver captulo sobre a Pr-Histria Tecnolgica) 56

foi apenas uma tentativa bem inspirada (que teve pouco efeito sobre os futuros construtores do computador), sem a lgebra booleana, no entanto, a tecnologia computacional no teria progredido com facilidade at a velocidade da eletrnica. Durante quase mais de dois mil anos, a lgica formal dos gregos, conhecida pela sua formulao silogstica, foi universalmente considerada como completa e incapaz de sofrer uma melhora essencial. Mais do que isso, a lgica aristotlica parecia estar destinada a ficar nas fronteiras da metafsica, j que somente se tratava, a grosso modo, de uma manipulao de palavras. No se havia ainda dado o salto para um simbolismo efetivo, embora Leibniz j tivesse aberto o caminho com suas idias sobre o alfabeto do pensamento *. Foi Boole, em sua obra The Mathematical Analysis of Logic (1847), quem forneceu uma idia clara de formalismo, desenvolvendo-a de modo exemplar. Ele percebeu que poderia ser construda uma lgebra de objetos que no fossem nmeros, no sentido vulgar, e que tal lgebra, sob a forma de um clculo abstrato, seria capaz de ter vrias interpretaes [Kne68]. O que chamou a ateno na obra foi a clara descrio do que seria a essncia do clculo, isto , o formalismo, procedimento, conforme descreveu, cuja validade no depende da interpretao dos smbolos mas sim da exclusiva combinao dos mesmos [Boc66]. Ele concebeu a lgica como uma construo formal qual se busca posteriormente uma interpretao. Boole criou o primeiro sistema bem sucedido para o raciocnio lgico, tendo sido pioneiro ao enfatizar a possibilidade de se aplicar o clculo formal em diferentes situaes e fazer clculos de acordo com regras formais, desconsiderando as interpretaes dos smbolos usados. Atravs de smbolos e operaes especficas, as proposies lgicas poderiam ser reduzidas a equaes e as equaes silogsticas poderiam ser computadas de acordo com as regras da lgebra ordinria. Pela aplicao de operaes matemticas puras e contando com o conhecimento da lgebra booleana possvel tirar qualquer concluso que esteja contida logicamente em qualquer conjunto de premissas especficas. De especial interesse para a Computao, sua idia de um sistema matemtico baseado em duas quantidades, o Universo e o Nada, representados por 1 e 0, o levou a inventar um sistema de dois estados para a quantificao lgica. Mais tarde os construtores do primeiro computador entenderam que um sistema com somente dois valores pode compor mecanismos para perfazer clculos . George Boole estava convencido de que sua lgebra no somente tinha demonstrado a equivalncia entre Matemtica e Lgica, como representava a sistematizao do pensamento humano. Na verdade a cincia, depois dele, principalmente com Husserl, pai da Fenomenologia, demonstrar que a razo humana mais complicada e ambgua, difcil de ser conceituada e mais poderosa que a lgica formal, mas do ponto de vista da Matemtica e da Computao, a lgebra booleana foi importante, e s os anos fizeram ver, pois a lgica at

Leibniz j tinha compreendido no sculo XVII que h alguma semelhana entre a disjuno e conjuno de conceitos e a adio e multiplicao de nmeros mas foi difcil para ele formular precisamente em que consistia essa semelhana e como us-la depois como base para um clculo lgico [Kne68]. A base do hardware sobre a qual so construdos todos os computadores digitais formada de dispositivos eletrnicos diminutos denominados portas lgicas. um circuito digital no qual somente dois valores lgicos esto presentes. Para se descrever os circuitos que podem ser construdos pela combinao dessas portas lgicas necessria a lgebra booleana.

57

ento era incompleta e no explicava muitos princpios de deduo empregados em raciocnios matemticos elementares. Mas, a lgica booleana estava limitada ao raciocnio proposicional, e somente aps o desenvolvimento de quantificadores, introduzidos por Peirce, que a lgica formal pde ser aplicada ao raciocnio matemtico geral. Alm de Peirce, tambm Schreder e Jevons * aperfeioaram e superaram algumas restries do sistema booleano: disjuno exclusiva, emprego da letra v para exprimir proposies existenciais, admisso de coeficientes numricos alm do 0 e 1 e o emprego do sinal de diviso. O resultado mais importante, no entanto, foi a apresentao do clculo de uma forma extremamente axiomatizada. 4.3.2 A importncia de Frege e Peano

Frege (1848 - 1925) e Peano (1858 - 1932) trabalharam para fornecer bases mais slidas lgebra e generalizar o raciocnio matemtico [Har96]. Gottlob Frege ocupa um lugar de destaque dentro da Lgica. Embora no to conhecido em seu tempo e bastante incompreendido, deve-se ressaltar que ainda hoje tornase difcil descrever a quantidade de conceitos e inovaes, muitos revolucionrios, que elaborou de forma exemplar pela sua sistematizao e clareza. Muitos autores comparam seu Begriffsschrift aos Primeiros Analticos de Aristteles, pelos pontos de vista totalmente geniais. Frege foi o primeiro a formular com preciso a diferena entre varivel e constante, assim como o conceito de funo lgica, a idia de uma funo de vrios argumentos e o conceito de quantificador . A ele se deve uma conceituao muito mais exata da teoria aristotlica sobre sistema axiomtico, assim como uma clara distino entre lei e regra, linguagem e metalinguagem. Ele autor da teoria da descrio e quem elaborou sistematicamente o conceito de valor. Mas isto no tudo, pois todas estas coisas so apenas produtos de um empreendimento muito maior e fundamental, que o inspirou desde suas primeiras pesquisas: uma investigao das caractersticas daquilo que o homem diz quando transmite informao por meio de juzos. Na verdade o que Frege chamou de Lgica assim como seus contemporneos Russell e Wittgenstein no o que hoje chamado Lgica, fruto do formalismo e da teoria dos conjuntos que acabaram por predominar entre os matemticos, mas sim o que se denomina semntica, uma disciplina sobre o contedo, natureza desse contedo e estrutura. Ele gastou considervel esforo na separao de suas concepes lgicas daquelas concepes dos 'lgicos computacionais' como Boole, Jevons e Schreder. Estes estavam, como j foi dito, empenhados no desenvolvimento de um clculo do raciocnio como Leibniz propusera, mas Frege queria algo mais ambicioso: projetar uma lngua characteristica. Dizia ele que uma das
*

Jevons foi o primeiro a compreender que os mtodos booleanos podem ser reduzidos s regras do clculo elementar, com a possibilidade, portanto, de ser mecanizados. Em 1869 conseguiu construir uma mquina lgica apresentada no ano seguinte ao pblico: era um dispositivo de 21 chaves para testar a validade de inferncias na lgica equacional. Algumas das caractersticas deste dispositivo foram usadas mais tarde na implementao do computador. A mquina est conservada no museu de Histria da Cincia em Oxford. O emprego de quantificadores para ligar variveis, principal caracterstica do simbolismo lgico moderno e que o torna superior em alguns aspectos linguagem vulgar e ao simbolismo algbrico de Boole, est entre as maiores invenes intelectuais do sculo XIX [Kne68].

58

tarefas da filosofia era romper o domnio da palavra sobre o esprito humano. Frege procurou usar um sistema simblico, que at ento somente se pensava para a matemtica, tambm para a filosofia: um simbolismo que retratasse o que se pode dizer sobre as coisas. Ele buscava algo que no somente descrevesse ou fosse referido a coisas pensadas, mas o prprio pensar [Cof91]. Os lgicos tradicionais estavam basicamente interessados na soluo de problemas tradicionais de lgica, como por exemplo a validade. O objetivo de Frege foi mais alm: entrou no campo da semntica, do contedo, do significado, onde encontrou o fundamento ltimo da inferncia, da validade, etc. Frege acabou derivando para uma filosofia da lgica e da matemtica e influenciou diretamente a Russell, David Hilbert, Alonzo Church e Carnap. Destes, Hilbert e Church tm um papel decisivo na Histria conceitual da Cincia da Computao. Frege desejava provar que no somente o raciocnio usado na matemtica, mas tambm os princpios subjacentes ou seja, toda a matemtica so pura lgica. Porm ele expressou suas buscas e resultados pelos quais acabou sendo considerado um dos pais da Lgica moderna, de uma forma excessivamente filosfica, em uma notao matemtica no convencional. O mrito maior dele foi elaborar uma concepo lgica mais abrangente do que a Lgica de Aristteles. Em um procedimento que lembra a characteristica universalis *, Frege construiu um sistema especial de smbolos para desenvolver a lgica de maneira exata e foi muito alm das proposies e dos argumentos. Em sua grandes obras, Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens (Ideografia, uma linguagem formalizada do pensamento puro construda de modo aritmtico) e Grundgesitze der Arithmetik. Begriffsschriflich abgeleitet (Leis Fundamentais da Aritmtica, Ideograficamente Deduzidas), est contida de modo explcito e plenamente caracterizado uma srie de conceitos conectivos, funo, funo proposicional, quantificadores, etc. que seriam vitais para a Lgica Matemtica a partir de ento [Gom97]. Foi atravs do contato com a obra de Frege que Bertrand Russell (1872 - 1970) procurou levar avante a idia de construir toda a matemtica sobre bases lgicas, convencido de que ambas so idnticas. Os postulados fregianos , adotados primeiramente por Peano, foram incorporados por Russell, que estendeu as teses logicistas de Frege Geometria e s disciplinas matemticas em geral. Peano tinha objetivo semelhante a Frege, mas mais realista. Ele desenvolveu uma notao formal para raciocnio matemtico que procurasse conter no s a lgica matemtica, mas todos os ramos mais importantes dela. O simbolismo de Peano e seus axiomas dos quais dependem muitas construes rigorosas na lgebra e na anlise representam a mais notvel tentativa do sculo XIX de reduzir a aritmtica comum, e portanto a maior parte da matemtica, a um puro simbolismo formal. Aqui o mtodo postulacional atingiu novo nvel de preciso, sem ambigidade de sentido, sem hipteses ocultas [Boy74]. Para maiores detalhes, ver anexo sobre A Aritmtica de Peano.

Como j foi dito, a idia lanada por Leibniz de uma linguagem filosfica que seria um simbolismo atravs do qual o homem estaria em condies de expressar seus pensamentos com plena clareza e dirimir dvidas atravs de simples clculos. Sobre nmero, deduo, inferncia, proposies, premissas, etc.

59

J Hilbert procurou colocar em prtica a teoria da demonstrao de Frege, e pode-se ver nessas palavras deste as idias implementadas posteriormente no programa hilbertiano: a inferncia procede, pois, em meu sistema de escrita conceitual (Begriffsschrift), seguindo uma espcie de clculo. No me refiro a este em sentido estrito, como se fosse um algoritmo que nele predominasse, (...), mas no sentido de que existe um algoritmo total, quer dizer, um conjunto de regras que resolvem a passagem de uma proposio ou de duas, a outra nova, de tal forma que nada se d que no esteja de acordo com estas regras. Minha meta , pois, uma ininterrupta exigncia de preciso no processo de demonstrao, e a mxima exatido lgica, ao mesmo tempo que clareza e brevidade [Boc66]. Pode-se notar a partir desse momento uma guinada no conceito de Lgica: os objetos da investigao lgica j no so mais as prprias frmulas, mas as regras de operao pelas quais se formam e se deduzem.

Figura 14: Frege

60

Figura 15: Peano

4.4 O desenvolvimento da Lgica Matemtica


Uma das metas dos matemticos no final do sculo XIX foi a de obter um rigor conceitual das noes do clculo infinitesimal (limite, continuidade, infinito matemtico, etc.). Tal programa foi chamado de aritmetizao da anlise, isto , a busca da reduo dos conceitos fundamentais da anlise (a matemtica que tem como base a teoria dos nmeros reais) aos conceitos da aritmtica (a matemtica que tem como base a teoria dos nmero inteiros positivos, isto , dos nmeros naturais e, por extenso, dos nmeros racionais). Por exemplo, ao invs de se tomar o nmero imaginrio 1 como uma entidade um tanto misteriosa, pode-se defini-lo como um par ordenado de nmeros inteiros (0,1), sobre o qual se realizam certas operaes de adio e multiplicao. Analogamente, o nmero irracional 2 se definia numa certa classe de nmeros irracionais, cujo quadrado menor do que 2. Dado que a Geometria podia ser reduzida Anlise (Geometria Analtica), a Aritmtica vinha a se configurar como a base natural de todo o edifcio matemtico. O ponto culminante deste processo foram os axiomas de Peano (1899), que fundamentaram toda a Aritmtica elementar posterior. Ao mesmo tempo, matemticos como Frege, Cantor e Russell, no convencidos da naturalidade da base constituda pela aritmtica. Eles procuravam conduzir a prpria aritmtica a uma base mais profunda, reduzindo o conceito de nmero natural ao conceito lgico de classe, ou, para recorrer a Cantor, definir nmero em termos de conjunto. Deste modo, a lgica das classes apresentava-se como a teoria mais adequada para a investigao 61

sobre os fundamentos da matemtica. O esforo dos matemticos foi o de dar lgebra uma estrutura lgica, procurando caracterizar a matemtica no tanto pelo seu contedo quanto pela sua forma. Bochenski [Boc66], falando da histria da Lgica Matemtica, diz que a partir de 1904, com Hilbert, inicia-se um novo perodo dessa cincia ento emergente, que se caracteriza pela apario da Metalgica * (Hilbert, Lwenheim e Scholem) e, a partir de 1930, por uma sistematizao formalista dessa mesma Metalgica. Iniciaram-se discusses sobre o valor e os limites da axiomatizao, o nexo entre Lgica e Matemtica, o problema da verdade (Hilbert, Gdel, Tarski). A Metalgica, em sua vertente sinttica ocupa-se das propriedades externas dos clculos, como por exemplo, a consistncia, a completude, a decidibilidade dos sistemas axiomticos e a independncia dos axiomas. Hilbert, Gdel e Church so autores nesse campo. Em sua parte semntica, a Metalgica dirige-se ao significado dos smbolos, dos clculos com relao a um determinado mundo de objetos. Tarski, Carnap e Quino, entre outros se interessaram por estas questes. Apareceram tambm novos sistemas lgicos: as lgicas naturais, de Gentzen e Jaskowski, lgica polivalente de Post e Lukasiewicz, e a lgica intuicionista de Heytings. Complementando essas idias cabe destacar alguns sistemas originais de outros matemticos como Schnfinkel (1924), Curry (1930), Kleene (1934), Rosser (1935) e o j citado Alonzo Church (1941). Deve-se lembrar que quase todos estes ltimos, junto com o logicista ingls Alan M. Turing, acabaram por definir, antes mesmo de existir o computador propriamente, a natureza da computao, e as implicaes e limites do pensamento humano atravs de uma mquina.

4.5 A crise dos fundamentos e as tentativas de superao


Os matemticos so conhecidos por serem exigentes na hora de pedir uma prova absoluta antes de aceitarem qualquer afirmao. Esta reputao claramente mostrada em uma anedota:
Um astrnomo, um fsico e um matemtico estavam passando frias na Esccia. Olhando pela janela do trem eles avistaram uma ovelha preta no meio de um campo. Que interessante, observou o astrnomo, na Esccia todas as ovelhas so pretas. Ao que o fsico respondeu: No, nada disso!. Algumas ovelhas escocesas so pretas. O matemtico olhou para cima em desespero e disse: Na Esccia existe pelo menos um campo, contendo pelo menos uma ovelha e pelo menos um lado dela preto. (Ian Stuart, Conceitos de matemtica moderna, in

[Sin99])

Quando a prpria Lgica Formal reflete sobre seus contedos.

62

E o matemtico que se especializa no estudo da lgica matemtica ainda mais rigoroso do que o matemtico comum. Os matemticos lgicos comearam a questionar idias que os outros matemticos consideravam certas h sculos. Por exempo, a lei da tricotomia declara que cada nmero ou negativo, ou positivo ou ento zero. Ningum se preocupara em provar isso que parece bvio, mas os lgicos perceberam que se no o fosse, ela poderia ser falsa, e todo o edifcio matemtico que dependia dessa lei desmoronaria *. Apesar das disciplinas dedutivas terem atingido um alto grau de perfeio lgica, algumas dvidas comearam a abalar a confiana dos matemticos: o surgimento, por volta de 1900, de inmeros paradoxos ou antinomias, especialmente na teoria dos conjuntos . O aparecimento de tais contradies mostrava que havia algum defeito nos mtodos. Ser que se poderia ter certeza de que em se usando os axiomas de um sistema rigidamente lgico o grande sonho de tantos matemticos do incio do sculo XX de reduzir a matemtica e o conhecimento lgica , nunca se chegaria a uma contradio, dentro dos axiomas do sistema? Estava iminente, nos fins do sculo XIX, uma inevitvel coliso entre matemtica e filosofia. Alguns vagos conceitos metafsicos associados com o pensamento humano j tinham chamado a ateno de matemticos das duas primeiras dcadas do sculo XX , que passaram a procurar a verdadeira natureza do raciocnio dentro da cincia matemtica. O que um procedimento correto, qual a relao entre verdade e demonstrao, possvel fornecer uma prova para todos os enunciados matemticos verdadeiros? E o problema das ambigidades, j que a matemtica sempre foi feita atravs de uma linguagem natural? Desde os antigos gregos a matemtica vem acumulando mais teoremas e verdades, e, embora a maioria deles tenha sido rigorosamente provada, os matemticos temiam que alguns casos tivessem sido aceitos sem um exame mais adequado. Os lgicos ento decidiram provar todos os teoremas, a partir de princpios fundamentais. No entanto, cada verdade tinha sido deduzida de outras verdades. E estas, por sua vez, de outras ainda mais fundamentais e assim por diante. Os lgicos acabaram por chegar aos axiomas da matemtica, essas declaraes essenciais to fundamentais que no podiam ser provadas, pois so autoevidentes . O desafio para os lgicos era reconstruir toda a matemtica a partir desses axiomas. Uma legio de lgicos participou deste processo, lento e doloroso, usando somente um nmero mnimo de axiomas. A idia era consolidar, atravs do raciocnio lgico e rigoroso, o que j se pensava ser conhecido. Este quadro estimulou a criatividade matemtica.

A lei da tricotomia foi demonstrada no final do sculo XIX. O paradoxo de Russel, o paradoxo de Cantor, o paradoxo de Burati Forti, o paradoxo de Richard, etc. Para exemplificar, vamos ao de Cantor, descoberto por ele prprio em 1899: se S o conjunto de todos os conjuntos, ento seus subconjuntos devem estar tambm entre os seus elementos. Conseqentemente, o nmero cardinal de S no pode ser menor do que o do conjunto dos subconjuntos de S. Mas isso, pelo teorema do prprio Cantor, deveria ocorrer! Basta ler as palavras do matemtico Sylvester em sua controvrsia com Huxley. Dizia que a matemtica se origina diretamente das foras e atividades inerentes da mente humana, e da introspeco continuamente renovada daquele mundo interior do pensamento em que os fenmenos so to variados e exigem ateno to grande quanto os do mundo fsico exterior. Para ele, a matemtica era revelar as leis da inteligncia humana, assim como a fsica revela as leis do mundo dos sentidos [Cos77]. A lei comutativa da adio, por exemplo: para quaisquer nmeros a e b, a + b = b + a.

63

Na tentativa de se resolverem os paradoxos surgiram trs grandes escolas da lgica: a Logicista * , a Intuicionista e a Formalista. A escola logicista rapidamente ficou exposta a fortes crticas . Frege, Peano e Russell , devido ao seu platonismo, acreditavam em um mundo objetivo, existente por si mesmo, de entes e relaes matemticas que o pesquisador deve descobrir e no inventar. Bertrand Russell tinha objetivos ainda maiores: utilizar o instrumental da lgica como ponto de partida do pensamento filosfico, atravs da gerao de uma linguagem perfeita. Mas a matemtica, enquanto perquirio pura, independe teoricamente dessas aplicaes, bastando ver as pesquisas atuais. Deve-se, no entanto, destacar o mrito dessa escola de incrementar grandemente o progresso da logstica e confirmar a unio ntima entre matemtica e lgica. O programa intuicionista sofreu tambm fortes crticas, principalmente a de desfigurar a matemtica, tornando-a algo subjetivo e praticamente impossvel. O prprio modo de se provar a no-contradio de uma teoria matemtica, buscando um modelo dos axiomas dessa teoria dentro de outra teoria j existente (e que era considerada coerente ) mostrou-se pouco confivel: como dar a certeza da no-contraditoriedade dessa outra teoria? A maior parte dos matemticos dos nossos dias afastou-se dessa linha de pensamento. Positivamente falando, sua dura crtica matemtica tradicional obrigou os especialistas nos fundamentos a desenvolverem novos mtodos para reabilitar a teoria clssica. A escola formalista progrediu bastante atravs das polmicas com os intuicionistas [Cos77]. 4.5.1 A figura de David Hilbert

Para David Hilbert (1862 - 1943) e outros, o problema de estabelecer fundamentos rigorosos era o grande desafio ao empreendimento de tantos, que pretendiam reduzir todas as leis cientficas a equaes matemticas. Ele acreditava que tudo na matemtica poderia e deveria ser provado a partir dos axiomas bsicos. O resultado disso levaria a demonstrar conclusivamente, segundo ele, os dois elementos mais importantes do sistema matemtico. Em primeiro lugar a matemtica deveria, pelo menos em teoria, ser capaz de responder a cada pergunta individual este o mesmo esprito de completude que no passado exigira a inveno de nmeros novos, como os negativos e os imaginrios. Em segundo lugar, deveria ficar livre de inconsistncias ou seja, tendo-se mostrado que uma declarao verdadeira por um mtodo, no deveria ser possvel mostrar que ela falsa por outro mtodo. Hilbert estava convencido de que, tomando apenas alguns axiomas, seria possvel responder a qualquer pergunta matemtica imaginria, sem medo de contradio. O esforo para
*

A tese logiscista compe-se de duas partes: 1)Toda idia matemtica pode ser definida por intermdio de conectivos lgicos (classe ou conjunto, implicao, etc.); 2)Todo enunciado matematicamente verdadeiro pode ser demonstrado a partir de princpios lgicos (no contradio, terceiro excludo, etc.), mediante raciocnios puramente matemticos. Para Brower, fundador desta escola na verdade um radicalizador das teses de Kronecker que no aceitava a teoria dos conjuntos o saber matemtico escapa a toda e qualquer caracterizao simblica e se forma em etapas sucessivas que no podem ser conhecidas de antemo: a atividade do intelecto cria e d forma a entes matemticos, aproximando-se do apriorismo temporal de Kant. Os logicistas tiveram de apelar a princpios extra-lgicos axioma de Zermelo, axioma do infinito que ainda hoje encontram-se sujeitos a calorosos debates e fortes reparos. Caminho praticado por Hilbert no seu famoso trabalho Fundamentos da Geometria (1899), onde axiomatizou de modo rigoroso a geometria euclidiana.

64

reconstruir logicamente o conhecimento matemtico acabou sendo liderado por essa figura, talvez a mais eminente da poca. No dia 8 de agosto de 1900, Hilbert deu uma palestra histrica no Congresso Internacional de Matemtica em Paris. Ele apresentou 23 problemas no-resolvidos da matemtica que acreditava serem de imediata importncia. Alguns problemas relacionavam-se com reas mais gerais da matemtica, mas a maioria deles estava ligada aos fundamentos lgicos dessa cincia. Tais problemas deveriam focalizar a ateno do mundo matemtico e fornecer um programa de pesquisas. Hilbert queria unir a comunidade para ajud-lo a realizar sua viso de um sistema matemtico livre de dvidas ou inconsistncias[Sin99]. Todos esses estudos denominaram-se Metamatemtica ou Metalgica, pela conectividade das duas. Ele props-se a demonstrar a coerncia da aritmtica *, para depois estender tal coerncia aos mbitos dos demais sistemas. Apostou na possibilidade da criao de uma linguagem puramente sinttica, sem significado, a partir da qual se poderia falar a respeito da verdade ou falsidade dos enunciados. Tal linguagem foi e chamada de sistema formal, e est resumida no anexo A concepo formalista da matemtica. Isto, que fazia parte do centro da doutrina formalista, mais tarde estimularia Turing a fazer descobertas importantes sobre as capacidades das mquinas. Registre-se tambm que John von Neumann, a quem muitos atribuem a construo do primeiro computador, era um aluno de Hilbert e um dos principais tericos da escola formalista .

No incio do sculo XX a matemtica estava reduzida a 3 grandes sistemas axiomticos: aritmtica, anlise e conjunto, sendo o mais fundamental o primeiro. Era natural que ele escolhesse esse sistema. John von Neumann falava 5 lnguas e foi um brilhante logicista, matemtico e fsico. Alm de lhe ser atribuda a inveno do primeiro computador, ele estava no centro do grupo que criou o conceito de programa armazenado, que potencializou extremamente o poder computacional das mquinas que ento surgiam.

65

Figura 16: Professor David Hilbert

Interessam agora dois problemas da referida lista de 23. O segundo, relacionado com a confiabilidade do raciocnio matemtico (isto , se ao seguir as regras de determinado raciocnio matemtico no se chegaria a contradies), e, ligado a ele, o problema de nmero dez. Este era de enunciado bastante simples: descreva um algoritmo que determine se uma dada equao diofantina do tipo P(u1,u2,...,un) = 0, onde P um polinmio com coeficientes inteiros, tem soluo dentro do conjunto dos inteiros. o famoso problema da decidibilidade, o Entscheidungsproblem. Consistia em indagar se existe um procedimento mecnico efetivo para determinar se todos os enunciados matemticos verdadeiros poderiam ser ou no provados, isto , se eles poderiam ser deduzidos a partir de um dado conjunto de premissas *. Para entender um pouco mais sobre deciso na matemtica, ver o anexo O problema da deciso na Matemtica. Tambm a questo da consistncia, como j foi dito, era decisiva para ele, pois uma condio necessria para o sistema axiomtico do tipo que ele tinha em mente. Aristteles j tinha mostrado que se um sistema inconsistente, qualquer afirmao poderia ser provada como falsa ou verdadeira. Neste caso no seria possvel haver um fundamento slido
*

A simplicidade do problema de Hilbert apenas aparente, e somente aps 70 anos de esforos foi encontrada a soluo, por Matijasevic, um matemtico russo de apenas 22 anos na poca. uma soluo bastante complexa, dependendo tanto de resultados da Teoria do Nmeros, conhecidos h muitssimos anos, como do trabalho anterior de trs americanos, Martin Davis, Julia Robinson e Hilary Putnan, que por sua vez baseia-se em certos resultados fundamentais sobre lgica e algoritmos descobertos na dcada de 30 por Kurt Gdel, Alan Turing, Emil Post, Alonso Church e Stephen Kleene. A resposta a esse problema de Hilbert : tal algoritmo no existe: o dcimo problema indecidvel.

66

para qualquer tipo de conhecimento, matemtico ou no. Anos mais tarde, em 1928, no Congresso Internacional de Matemticos, realizado em Bolonha, Itlia, Hilbert lanou um novo desafio, que na verdade somente enfatizava aspectos do segundo e do dcimo problema j descritos. Hilbert queria saber se possvel provar toda assertiva matemtica verdadeira. Estava buscando algo como uma mquina de gerar enunciados matemticos verdadeiros: uma vez alimentada com um enunciado matemtico, poderia dizer se o enunciado falso ou verdadeiro [Cas97]. um problema que est relacionado com o citado projeto hilbertiano da busca de um sistema formal completo e consistente. Ao mesmo tempo, em 1927, com 22 anos, von Neumann publicou 5 artigos que atingiram fortemente o mundo acadmico. Trs deles consistiam em crticas fsica quntica, um outro estabelecia um novo campo de pesquisas chamado Teoria dos Jogos, e, finalmente, o que mais impactou o desenvolvimento da Computao: era o estudo do relacionamento entre sistemas formais lgicos e os limites da matemtica. Von Neumann demonstrou a necessidade de se provar a consistncia da matemtica, um passo importante e crtico tendo em vista o estabelecimento das bases tericas da Computao (embora ningum tivesse esse horizonte por enquanto). J foi citado, no captulo sobre o Desenvolvimento da Lgica Matemtica, o desafio dos matemticos do incio do sculo de aritmetizar a anlise. Eles estavam de acordo, no que diz respeito s proposies geomtricas e outros tipos de afirmaes matemticas, em que poderiam ser reformuladas e reduzidas a afirmaes sobre nmeros. Logo, o problema da consistncia da matemtica estava reduzido determinao da consistncia da aritmtica. Hilbert estava interessado em dar uma teoria da aritmtica, isto , um sistema formal que fosse finitisticamente descritvel *, consistente, completo e suficientemente poderoso para descrever todas as afirmaes que possam ser feitas sobre nmeros naturais. O que Hilbert queria em 1928 era que, para uma determinada afirmao matemtica, por exemplo, a soma de dois nmeros mpares sempre um nmero par, houvesse um procedimento que, aps um nmero finito de passos, parasse e indicasse se aquela afirmao poderia ou no ser provada em determinado sistema formal, suficientemente poderoso para abranger a aritmtica ordinria [Cas97]. Isto est diretamente relacionado com o trabalho de Gdel e Alan Turing. Pode-se afirmar que, em geral, a lgica matemtica prestou naqueles tempos maior ateno linguagem cientfica, j que seu projeto era o da elaborao de uma linguagem lgica de grande preciso, que fosse boa para tornar transparentes as estruturas lgicas de teorias cientficas. Tal projeto encontrou seus limites, tanto na ordem sinttica como na ordem semntica (por exemplo, com os clebres teoremas de limitao formal). Este fenmeno levou a uma maior valorizao da linguagem ordinria, que, apesar de suas flutuaes e imprecises, encerram uma riqueza lgica que os clculos formais no conseguem recolher de todo. Dentro da prpria matemtica como se ver mais adiante com Gdel h verdades que no podem ser demonstradas mediante uma deduo formal, mas que podem ser demonstradas o teorema da incompletude de Gdel uma prova disso mediante um raciocnio metamatemtico informal. A partir desse propsito de construo de uma

O termo finitstico usado por vrios autores. Hilbert quis dizer que tal sistema deveria ser construdo com um nmero finito de axiomas e regras e toda prova dentro do sistema deveria ter um nmero finito de passos.

67

linguagem ideal surgiu a filosofia da linguagem (Moore, Wittgenstein, Geach em sua segunda etapa) colocando as questes lgicas sobre nova tica [San82]. Na verdade, tanto a lgica matemtica em sentido estrito como os estudos de semntica e filosofia da linguagem depararam-se com problemas filosficos que no se resolvem somente dentro de uma perspectiva lgica. H questes de fundo da lgica matemtica que pertencem j a uma filosofia da matemtica. Todos esses desafios abriram uma porta lateral para a Computao e deram origem a um novo e decisivo captulo na sua Histria. Da tentativa de resolv-los ocorreu uma profunda revoluo conceitual na Matemtica o Teorema de Gdel e surgiu o fundamento bsico de todo o estudo e desenvolvimento da Computao posterior: a Mquina de Turing.

4.6 Kurt Gdel: muito alm da lgica *


Kurt Gdel (1906 1978) no desfruta do mesmo prestgio de outros cientistas contemporneos seus, como Albert Einstein. Possivelmente contribua para isto o fato de que suas descobertas se produziram em um campo, o da lgica matemtica, prprio das cincias formais, e no em algum ramo da cincia que tenha influenciado diretamente no conjunto da sociedade. No entanto, suas grandes contribuies lgica formal se estendem segundo seus bigrafos muito alm do seu estrito mbito formal e abordam questes to vastas e espinhosas como a natureza da verdade, o conhecimento e a certeza. Pode-se afirmar que, junto com a teoria da relatividade de Einstein e o princpio da incerteza de Heisenberg, o teorema da incompletude de Gdel despertou a cincia moderna de seu sonho dogmtico. 4.6.1 Um pouco de histria

Nascido em Brnn (hoje Brno, na Repblica Tcheca), Kurt Friedrich Gdel (ao naturalizar-se norte-americano, em 1948, ele deixou o segundo nome) instala-se em Viena em 1924. Logo se apaixona pela cidade, por sua vida universitria e atmosfera intelectual. Requisita a nacionalidade austraca e, em 26 de fevereiro de 1929, trs dias depois da morte de seu pai, deixa oficialmente de ser tcheco. Apesar do luto, termina sua tese de doutorado, Sobre a completude do clculo lgico. Nessa monografia datilografada de apenas 30 pginas, o jovem matemtico, ento com 23 anos, expe diversos resultados extremamente importantes para a lgica. Deduz que todo sistema de axiomas de primeira ordem no-contraditrio possui um modelo. Isto , que existe um conjunto de objetos que verificam os axiomas do sistema. Existem duas definies de completude: 1) Um sistema de axiomas completo (como uma caixa de ferramentas bem provida, que permite realizar todos os trabalhos necessrios) quando todos os teoremas verdadeiros da teoria em pauta (por exemplo, a aritmtica) podem ser deduzidos a partir dele. Esta a completude semntica.
*

Parte do texto que se segue, a partir do item Um pouco de histria vem de maravilhoso artigo publicado na revista Scientific American Brasil, edio Gnios da Cincia Matemtica: A vanguarda matemtica e os limites da razo

68

2) Um sistema de axiomas completo (como uma caixa de ferramentas qual no se pode acrescentar nada) quando toda tentativa de lhe adicionar um novo axioma (independente dos anteriores) resulta em contradio. Esta a completude sinttica. Gdel usa o termo completude no primeiro sentido e mostra que toda frmula lgica verdadeira do clculo de predicados de primeira ordem demonstrvel a partir dos axiomas clssicos desse mesmo clculo. Para ele, esse resultado constitui um complemento terico ao mtodo usual de demonstrao de no-contradio. O mtodo usual consiste em construir um modelo, ou seja, oferecer uma interpretao semntica (por exemplo, geomtrica) do sistema considerado: se a teoria admite um modelo, ento no-contraditria. Em sua tese, o jovem demonstra a recproca de tal propriedade: todo sistema de axiomas de primeira ordem no contraditrio admite um modelo *. Esse resultado parece confirmar a esperana formalista de David Hilbert, de construir uma teoria rigorosa capaz de descrever toda a matemtica. Mas Gdel opta pela prudncia. Entusiasmado, seu orientador, Hans Hahn, encoraja-o a publicar uma verso presumida do trabalho. O artigo Sobre a completude dos axiomas do clculo lgico de funes aparece, em 1930, no peridico Monatshefte fr Mathematik und Physik. Detalhe interessante: no artigo, Gdel no retoma nenhum elemento da introduo de sua tese, na qual havia relacionado seu resultado s discusses acerca dos fundamentos da matemtica. Eis aqui, nas palavras do prprio Gdel, um resumo do artigo: Na fundamentao axiomtica da lgica, tal como estabelecida, por exemplo, nos Principia mathematica, levanta-se a seguinte questo: os axiomas utilizados so de fato completos, ou seja, suficientes para deles se deduzir todas as proposies importantes da lgica pela via formal? Este problema no foi resolvido at agora seno para as proposies lgicas mais simples, especificamente para aquelas do clculo proposicional. A resposta positiva, e significa que toda proposio verdadeira (vlida em geral) decorre dos axiomas dos Principia mathematica. O autor mostra como estender esse teorema s frmulas do clculo funcional (clculo de predicados) de primeira ordem (em que os quantificadores no operam sobre as funes e predicados). Em sua tese, Gdel ainda toma o partido de Hilbert, contra o chamado intuicionismo de Luitzen Brouwer (1881-1966). Mas certas idias do matemtico holands certamente o influenciam. No sabemos se ele assistiu s duas conferncias que Brouwer proferiu em Viena em maro de 1928; porm no h dvida de que conhecia seu contedo, ao menos por meio das atas s quais teve acesso. Na primeira dessas duas conferncias, intitulada Matemtica, cincia e linguagem, Brouwer ironiza as tentativas feitas pelos formalistas (Hilbert e
* Em outras palavras, busca-se uma interpretao semntica para o sistema de axiomas. Ex.: certo sistema de axiomas diz

respeito a dois conjuntos M e N cuja natureza, inicialmente, no especificada. Esses axiomas so: 1) M e N tm o mesmo nmero de elementos; 2) Nenhum elemento de N contm mais de 2 elementos de M; 3) Nenhum elemento de M est contido em mais de dois elementos de N. Esse sistema coerente, pois se pode associar a ele o seguinte modelo geomtrico, onde se verifica os trs axiomas (M o conjunto de vrtices do quadrado e N o conjunto de seus lados): M M N N N M M N

69

seguidores) para tornar mais precisa a linguagem. Segundo ele, no existe na matemtica pura, assim como em qualquer outra rea, uma linguagem absolutamente segura, isto , uma linguagem capaz de excluir todo mal-entendido e na qual a memria evite todo erro (por exemplo, a confuso entre entes matemticos). Como conseqncia, parece-lhe impossvel remediar essa situao ao submeter, como faz a escola formalista, a linguagem matemtica a um tratamento matemtico e pela tentativa de exprimi-Ia em uma linguagem de segunda ordem ou em uma metalinguagem. O desacordo entre Gdel e Brouwer acerca do assunto apenas uma questo de interpretao: enquanto Brouwer v como confisso de fraqueza a impossibilidade de a linguagem atingir preciso absoluta, Gdel, ao contrrio, interpreta essa mesma dificuldade como um indcio de que a matemtica inesgotvel, e que normal que ela no se deixe circunscrever facilmente. Os apontamentos feitos em 23 de dezembro de 1929 pelo filsofo Rudolf Carnap, depois de trs horas de conversa com Gdel acerca da matemtica e do formalismo, confirmam essa viso: Toda formalizao da matemtica envolve problemas que se podem exprimir e explicitar na linguagem corrente, mas para os quais no existe expresso apropriada dentro do prprio formalismo. Segue da (Brouwer foi citado nesse ponto) que a matemtica inesgotvel: deve-se sempre retomar a seus incios, para `buscar nova fora nas fontes da intuio'. No haveria, assim, nenhuma lngua characteristca unversalis, nenhuma lngua formal para a totalidade da matemtica. (...) Ns dispomos apenas de uma linguagem, mas as sutilezas construdas por nosso esprito so inesgotveis, porque se baseiam sempre em alguma nova intuio. O carter inesgotvel da matemtica fornecer a Gdel uma espcie de fio condutor para suas pesquisas ulteriores, especialmente para o terema da incompletude. Outro resultado que aparece na tese de Gdel, mas que adquire plena clareza somente no artigo do Monatshefte, o teorema da compacticidade: para que um sistema com uma infinidade enumervel de frmulas seja coerente necessrio e suficiente que cada parte finita do sistema o seja. Esse teorema recebeu pouca ateno quando de sua publicao, sem dvda devido aos preconceitos da poca em torno da noo de infinito. No entanto, ele iria se tomar, a partir dos anos 40, uma das principais ferramentas conceituais para o desenvolvimento da teoria de modelos. Gdel evita explicitar em sua tese a noo de verdade. Mais tarde, ele diria que em razo dos preconceitos filosficos da poca, um conceito de verdade matemtica diferente do de demonstrabilidade parecia altamente suspeito e costumava ser rejeitado como desprovido de significado. Seu teorema da completude representa sem dvida um resultado notvel. Ainda assim, para obter o posto de privatdozent que deseja, bem como o acesso carreira universitria, ele precisa demonstrar alguma coisa maior. Compreende-se, desse modo, que, apesar de toda a prudncia que j havia manifestado em sua tese, o gnio Gdel se dirija precisamente pedra angular do programa de Hilbert: a demonstrao da coerncia (nocontradio) da anlise matemtica. Esse problema o segundo de uma lista de 23 que Hilbert exps, em 1900, no Congresso Internacional de Matemtica. Tal lista era considerada, poca, como um mapa para toda a matemtica do sculo XX. Aquele que conseguisse

70

resolver essa questo entraria para o panteo da matemtica e teria uma fulgurante carreira universitria. A idia de Gdel no era atacar diretamente o problema da no-contradio da anlise; mas demonstrar que a anlise seria coerente se e somente se a aritmtica (teoria dos nmeros) o fosse. Uma vez obtida essa coerncia relativa, bastava demonstrar a coerncia da teoria dos nmeros, campo em que a utilizao de mtodos finitos parecia mais promissora. Mesmo assim, o projeto era ousado, pois o mtodo de demonstrao da coerncia relativa nunca havia sido utilizado fora da geometria (ele havia sido desenvolvido para demonstrar a coerncia relativa da geometria no-euclidiana em relao geometria euclidiana). Gdel penetra, assim, em territrio desconhecido. O objetivo de Gdel no , absolutamente, provocar a queda de todo o programa de Hlbert. Ao contrrio, ele se via como um dos matemticos da nova gerao aos quais o grande Hilbert lanara seu apelo apenas dois anos antes, por ocasio do Congresso de Bolonha. Aceita, portanto, a tradio de axiomatizao da aritmtica para elaborar sua demonstrao. Uma axiomatizao da teoria dos nmeros havia sido oferecida pelo matemtico alemo Richard Dedekind desde 1888 (ver anexo O mtodo axiomtico e as cincias dedutivas). No entanto, para construir seu sistema de axiomas, Dedekind havia utilizado de maneira informal a teoria dos conjuntos. Mais especificamente, ele colocara no mesmo nvel objetos, expresses referidas a objetos e expresses referidas a outras expresses: sua aritmtica era de segunda ordem. Deve-se ao matemtico italiano Guiseppe Peano a etapa seguinte, decisiva para a axiomatizao da matemtica. Em sua obra Arithmetices principia nova methodo exposita, publicada um ano depois dos trabalhos de Dedekind, Peano apresentou um sistema de axiomas para os nmeros naturais que lembrava de maneira espantosa o sistema de Dedekind, apesar de concebido de modo independente. O matemtico italiano, contudo, no construra sua teoria dentro do contexto conjuntista, e introduziu uma notao (que, com uma ou outra modificao, tornou-se padro) destinada a contornar certas ambigidades inerentes linguagem natural (ver anexo A Aritmtica de Peano). Seu objetivo era captar, com o maior rigor possvel, a natureza lgica do princpio de induo, ou seja, a lgica de segunda ordem. Em linguagem matemtica, o princpio de induo condensado na frmula: ( (0) x ( (x) (s(x))) (x) que se l da seguinte maneira: para toda propriedade , se vlida para zero e se a proposio se vlida para um nmero x, vlida tambm para seu sucessor verdadeira, ento a propriedade vlida para todo nmero natural. Essa frase matemtica no uma frmula da lgica de predicados de primeira ordem, mas de segunda ordem: com efeito, o primeiro quantificador (o primeiro todo) no est aplicado a uma varivel que representa indivduos (nmeros naturais), mas a uma varivel que representa propriedades desses indivduos (propriedades dos nmeros naturais). Em seu sistema axiomtico, Peano segue exatamente essa formulao do princpio, e especifica que se trata de um axioma de segunda ordem. 4.6.2 Verdade e demonstrabilidade

A distino entre axiomas de primeira e segunda ordem foi estabelecida pelo lgico polons Alfred Tarski (1902-1983) para distinguir a linguagem-objeto de um estudo, ou seja, a 71

linguagem utilizada para falar de um domnio qualquer de objetos, da correspondente metalinguagem, ou seja, a linguagem utilizada para falar da linguagem-objeto. Da mesma maneira, existe uma metametalinguagem, que permite falar da metalinguagem, e assim por diante. Todos esses nveis de linguagem superpem-se como camadas sucessivas e, para certos estudos lgicos, torna-se essencial separar cuidadosamente cada camada. A faanha de Gdel residir na inveno de um meio para superar a barreira entre os diferentes nveis de linguagem. Gdel desejava demonstrar a no-contradio relativa da anlise matemtica em relao aritmtica de Peano. Essa proposta j o conduz ao mago do problema verdadedemonstrabilidade: uma proposio verdadeira sempre demonstrvel? No rascunho de uma carta do final dos anos 60, ele descrever da seguinte maneira seu projeto poca: Minha tentativa de demonstrao, pela teoria dos modelos, da coerncia relativa da anlise e da aritmtica forneceu tambm a ocasio para comparar verdade e demonstrabilidade, pois essa demonstrao conduz quase obrigatoriamente a tal comparao. Um modelo aritmtico para a anlise no nada mais, com efeito, do que uma relao

que

satisfaz ao seguinte axioma de compreenso: N x ( x N (x) ) [Existe um conjunto N tal que, para todo nmero x, se x um elemento de N, ento a propriedade (x) verdadeira, e vice-versa.] Quando se substitui (x)' por (x) demonstrvel', tal relao

toma-se fcil de definir. Dessa forma, se os termos verdade e

demonstrabilidade fossem equivalentes, teramos alcanado nosso objetivo. Segue da correta soluo para os paradoxos semnticos, porm, que a verdade das proposies de uma linguagem no poder jamais expressar-se dentro dessa mesma linguagem, contrariamente demonstrabilidade (que uma relao aritmtica). Como conseqncia, verdadeiro demonstrvel. Nos anos 30, o problema colocado pela formulao, em uma linguagem dada, de uma definio da noo de verdade para essa mesma linguagem , certamente, uma das questes mais discutidas nas reunies do Crculo de Viena *: possvel definir precisamente o significado da expresso uma proposio verdadeira na linguagem L? Em fevereiro de 1930, Menger convida Tarski para uma srie de conferncias, no curso das quais o matemtico polons sublinha que diversos conceitos utilizados em lgica vm expressos, no na linguagem-objeto, mas na metalinguagem, e que importante, portanto, distinguir entre esses dois tipos de linguagem. Nessa ocasio, Gdel solicita a Menger uma conversa particular com Tarski. Se aceita a argumentao de Tarski acerca do conceito de verdade, Gdel mostra-se mais reticente em relao a esse mesmo tipo de argumentao aplicado no-contradio e demonstrabilidade. Tanto assim que abandona a idia de construir um modelo aritmtico para a anlise (provavelmente devido s reservas manifestadas na poca relativamente utilizao do conceito de verdade em demonstraes) e decide provar que a demonstrabilidade e a no*

Grupo de pensadores que se reuniam em Viena (1926-1930) de onde surgiu o influente movimento conhecido como positivismo lgico. Organizado por Moritz Schlick (Fsico), participavam, entre outros, os filsofos Rudolf Carnap e Karl Popper, o socilogo e economista Otto Neurath, a matemtica Olga Neurath e seu marido, o matemtico Hans Hahn, Karl Menger e Kurt Gdel. Entre os estrangeiros que assistiam a algumas reunies pode-se citar John von Neumann, Willard van Orman Quine, Carl Hemper, Alfred Tarsky e Alfred Jules Ayer.

72

contradio podem, ainda que indiretamente, ser expressas na linguagem-objeto da teoria, sem que isso acarrete antinomias fatais. Para o desenvolvimento de seus estudos Gdel concebeu uma interessante formulao de smbolos, frmulas e provas atravs de nmeros, bem como mostrou que as proposies metamatemticas alis, sem isso no poderia ter realizado sua prova podem estar adequadamente refletidas dentro do prprio clculo, aritmetizando assim a prpria metamatemtica. No anexo O Teorema da Incompletude de Gdel h um pequeno resumo sobre a prova de Gdel. Gdel acabou com o sonho logicista, visto que no se pode desenvolver toda a aritmtica (e muito menos toda a matemtica) num sistema que seja ao mesmo tempo consistente e completo. Tambm acabou com o sonho formalista: existem enunciados matemticos que so verdadeiros, mas no so suscetveis de prova, isto , existe um abismo entre verdade e demonstrao *.

Figura 17: Kurt Gdel

4.6.3

Outras conquistas

Gdel tambm, ao longo da demonstrao do seu teorema, rompeu um limiar crucial entre a lgica e a matemtica. Ele mostrou que qualquer sistema formal que seja to rico quanto um sistema numrico qualquer, e que contenha os operadores + e =, pode
*

As concluses de Gdel no significam que seja impossvel construir uma prova absoluta e finitista da aritmtica. Significam que nenhuma prova deste tipo pode ser construda dentro da aritmtica., isto , que esteja refletida a partir de dedues formais da aritmtica. Outras provas metamatemticas da consistncia da aritmtica foram construdas, em particular por Gerhard Gentzen, da escola de Hilbert, em 1936, embora no finitistas e no representveis dentro do clculo aritmtico, ou seja, esto fora das condies previstas por Hilbert.

73

ser expresso em termos aritmticos [Coh87]. Isto significa que por mais complexa que se torne a matemtica (ou qualquer outro sistema formal redutvel a ela), pode-se sempre express-la em termos de operaes a serem executadas sobre nmeros, e as partes do sistema podero ser manipuladas por regras de contagem e comparao. Outro resultado fundamental do teorema da incompletude de Gdel pode-se considerar como sendo a demonstrao de que h algumas funes sobre os inteiros que no podem ser representadas por um algoritmo, ou seja, que no podem ser computadas *. Posteriormente verificou-se a existncia de uma equivalncia entre o Teorema da Incompletude de Gdel e o problema da parada de Turing.

4.7 Alan Mathison Turing: o bero da Computao

Figura 18: Alan Mathison Turing

A revoluo do computador comeou efetivamente a realizar-se no ano de 1935, em uma tarde de vero na Inglaterra, quando Alan Mathison Turing (1912 - 1954), estudante do Kings College, Cambridge, durante curso ministrado pelo matemtico Max Neumann, tomou conhecimento do Entscheidungsproblem de Hilbert. Enquanto isso, conforme foi brevemente citado no item precedente, uma parte da comunidade dos matemticos buscava um novo tipo de clculo lgico, que pudesse, entre outras coisas, colocar em uma base

Os resultados de Gdel tm conseqncias importantes tambm para a filosofia. Sabe-se, graas a ele, ser impossvel construir uma mquina que, de modo consistente, resolva todos os problemas da matemtica, com os recursos de um sistema (certos problemas, por assim dizer, no se deixam resolver com os recursos do sistema apenas). Mas de fato o matemtico os resolve muitas vezes.

74

matemtica segura o conceito heurstico do que seja proceder a um cmputo. O resultado destas pesquisas era fundamental para o desenvolvimento da matemtica: tratava-se de saber se possvel haver um procedimento efetivo para se solucionar todos os problemas de uma determinada classe que estivesse bem definida. O conjunto desses esforos acabou por formar a fundamentao terica da que veio a ser chamada Cincia da Computao. Os resultados de Gdel e o problema da deciso motivaram Turing primeiramente a tentar caracterizar exatamente quais funes so capazes de ser computadas. Em 1936, Turing consagrou-se como um dos maiores matemticos do seu tempo, quando fez antever aos seus colegas que possvel executar operaes computacionais sobre a teoria dos nmeros por meio de uma mquina que tenha embutida as regras de um sistema formal. Turing definiu uma mquina terica que se tornou um conceito chave dentro da Teoria da Computao. Ele enfatizou desde o incio que tais mecanismos podiam ser construdos e sua descoberta acabou abrindo uma nova perspectiva para o esforo de formalizar a matemtica, e, ao mesmo tempo, marcou fortemente a Histria da Computao. A percepo genial de Turing foi a substituio da noo intuitiva de procedimento efetivo por uma idia formal, matemtica. O resultado foi a construo de uma conceituao matemtica da noo de algoritmo *, uma noo que ele modelou baseando-se nos passos que um ser humano d quando executa um determinado clculo ou cmputo. Ele formalizou definitivamente o conceito de algoritmo. 4.7.1 A Mquina de Turing

Um dos primeiros modelos de mquina abstrata foi a Mquina de Turing. Conforme o prprio Turing escreveu: Computar normalmente escrever smbolos em um papel. Suponha que o papel quadriculado, podendo ser ignorada a bidimensionalidade, que no essencial. Suponha que o nmero de smbolos finito. [...]. O comportamento do(a) computador(a) determinado pelos smbolos que ele(a) observa num dado momento, e seu estado mental nesse momento. Suponha que exista um nmero mximo de smbolos ou quadrculas que ele(a) possa observar a cada momento. Para observar mais sero necessrias operaes sucessivas. Admitamos um nmero finito de estados mentais [...]. Vamos imaginar que as aes feitas pelo(a) computador(a) sero divididas em operaes to elementares que so indivisveis. Cada ao consiste na mudana do sistema computador(a) e papel. O estado do sistema dado pelos smbolos no papel, os smbolos observados pelo(a) computador(a) e seu estado mental. A cada operao, no mais de um smbolo alterado, e apenas os observados so alterados. Alm de mudar smbolos, as operaes devem mudar o foco da observao, e razovel que esta mudana deva ser feita para smbolos localizados a uma distncia fixa dos anteriores. [...] Algumas destas operaes implicam mudanas de estado mental do computador(a) e portanto determinam qual ser a prxima ao.

Palavras como procedimento efetivo e algoritmo representam conceitos bsicos dentro da Cincia da Computao. So noes que na poca de Turing j eram utilizadas pelos matemticos, como por exemplo Frege e Hilbert (ver captulos que tratam dessas duas importantes figuras).

75

O trabalho de Turing ficou documentado no artigo On Computable Numbers with an aplication to the Entscheidungsproblem, publicado em 1936 * ([Tur50], volume XII). Ele descreveu em termos matematicamente precisos como pode ser poderoso um sistema formal automtico, com regras muito simples de operao. Turing definiu que os clculos mentais consistem em operaes para transformar nmeros em uma srie de estados intermedirios que progridem de um para outro de acordo com um conjunto fixo de regras, at que uma resposta seja encontrada. Algumas vezes se usa o papel e lpis, para no se perder o estado dos nossos clculos. As regras da matemtica exigem definies mais rgidas que aquelas descritas nas discusses metafsicas sobre os estados da mente humana, e ele concentrou-se na definio desses estados de tal maneira que fossem claros e sem ambigidades, para que tais definies pudessem ser usadas para comandar as operaes da mquina . Turing comeou com uma descrio precisa de um sistema formal, na forma de tabela de instrues que especificaria os movimentos a serem feitos para qualquer configurao possvel dos estados no sistema. Provou ento que os passos de um sistema axiomtico formal semelhante lgica e os estados da mquina que perfaz os movimentos em um sistema formal automtico so equivalentes entre si. Estes conceitos esto todos subjacentes na tecnologia atual dos computadores digitais, cuja construo tornou-se possvel uma dcada depois da publicao do matemtico ingls. Um sistema formal automtico um dispositivo fsico que manipula automaticamente os smbolos de um sistema formal de acordo com as suas regras. A mquina terica de Turing estabelece tanto um exemplo da sua teoria da computao quanto uma prova de que certos tipos de mquinas computacionais poderiam ser construdas. Efetivamente, uma Mquina de Turing Universal , exceto pela velocidade, que depende do hardware, pode emular qualquer computador atual, desde os supercomputadores at os computadores pessoais, com suas complexas estruturas e poderosas capacidades computacionais, desde que no importasse o tempo gasto. Ele provou que para qualquer sistema formal existe uma Mquina de Turing que pode ser programada para imit-lo. Ou em outras palavras: para qualquer procedimento computacional bem definido, uma Mquina de Turing Universal capaz de simular um processo mecnico que execute tais procedimentos. De um ponto de vista terico, a importncia da Mquina de Turing est no fato de que ela representa um objeto matemtico formal. Atravs dela, pela primeira vez, se deu uma boa definio do que significa computar algo. E isso levanta a questo sobre o que exatamente pode ser computado com tal dispositivo matemtico, assunto fora do escopo do presente trabalho e que entra no campo da complexidade computacional. 4.7.2 O problema da parada e o problema da deciso

Um ano mais tarde, trabalhando independentemente, Alan Post publicou seu trabalho sobre uma mquina semelhante de Turing.

H um anexo onde se detalha um pouco mais sobre o funcionamento de uma Mquina de Turing.

Uma Mquina de Turing Universal uma Mquina de Turing especfica que l na sua fita de alimentao, alm de dados de entrada, um programa que uma especificao de uma Mquina de Turing qualquer.

76

Turing mostrou que o funcionamento de sua mquina (usar-se- a sigla MT a partir de agora) e a aplicao das regras de formao de um sistema formal no tm diferena. Ele demonstrou tambm que seu dispositivo poderia resolver infinitos problemas mas havia alguns que no seriam possveis, porque no haveria jeito de se prever se o dispositivo pararia ou no. Colocando-se de outra maneira: dado um programa P para uma MT e uma determinada entrada de dados E, existe algum programa que leia P e E, e pare aps um nmero finito de passos, gerando uma configurao final na fita que informe se o programa P encerra sua execuo aps um nmero finito de passos ao processar E? Comparando-se com as afirmaes sobre verdades aritmticas, dentro de um sistema formal consistente da aritmtica, que no so passveis de prova dentro deste sistema, percebe-se que o problema da parada de Turing nada mais do que o Teorema de Gdel, mas expresso em termos de uma mquina computacional e programas, ao invs de uma linguagem de um sistema dedutivo da Lgica Matemtica. Em 1936 Turing provou formalmente o seguinte teorema: Teorema da Parada: Dado um programa P qualquer para uma Mquina de Turing e uma entrada E qualquer de dados para esse programa, no existe uma Mquina de Turing especfica que pare aps um nmero finito de passos, e que diga se P em algum momento encerra sua execuo ao processar E. A soluo negativa desse problema computacional implica tambm numa soluo negativa para o problema de Hilbert. Portanto nem todos os enunciados verdadeiros da aritmtica podem ser provados por um computador *. 4.7.3
4.7.3.1

Outras participaes
Decifrando cdigos de guerra

Em 1940 o governo ingls comeou a interessar-se de maneira especial pelas idias de Turing. Ele foi convocado pela Escola de Cifras e Cdigos, do governo, cuja tarefa era decifrar mensagens codificadas do inimigo. Quando a guerra comeou, a Escola Britnica de Cdigos era dominada por lingistas e fillogos. O Ministrio do Exterior logo percebeu que os tericos dos nmeros tinham melhores condies de decifrar os cdigos alemes. Para comear, nove dos mais brilhantes tericos dos nmeros da Inglaterra se reuniram na nova sede da Escola de Cdigos em Bletchley Park, uma manso vitoriana em Bletchley, Buckinghamshire. Turing teve que abandonar suas mquinas hipotticas com fitas telegrficas infinitas e tempo de processamento interminvel, para enfrentar problemas prticos, com recursos finitos e um limite de tempo muito real. Devido ao segredo que cercava o trabalho realizado por Turing e sua equipe, em Bletchley, a imensa contribuio que prestaram ao esforo de guerra no pde ser
*

Os computadores possuem conjuntos de instrues que correspondem a regras fixas de um sistema formal. Como provou Gdel, existem problemas no solucionveis dentro de um mtodo axiomtico e, portanto, h problemas que um computador no resolve. Esta afirmao no deve ser vista como algo pessimista dentro da Cincia da Computao: que um computador no possa resolver todos os problemas no significa que no se possa construir uma mquina ou algoritmo especfico para solucionar determinado tipo de problema [NN56].

77

reconhecida publicamente por muitos anos aps o conflito. Costuma-se dizer que a Primeira Guerra Mundial foi a guerra dos qumicos e a Segunda Guerra Mundial, a guerra dos fsicos. De fato, a partir da informao revelada nas ltimas dcadas, provavelmente verdade dizer que a Segunda Guerra Mundial tambm foi a guerra dos matemticos. E no caso de uma terceira guerra mundial sua contribuio seria ainda mais crtica. Em toda sua carreira como decifrador de cdigos, Turing nunca perdeu de vista seus objetivos matemticos. As mquinas hipotticas tinham sido substitudas por mquinas reais, mas as questes esotricas permaneciam. Quando a guerra terminou, Turing tinha ajudado a construir um computador, o Colossus, uma mquina inteiramente eletrnica com 1.500 vlvulas que eram muito mais rpidas do que os rels eletromecnicos usados nas bombas *. Colossus era um computador no sentido moderno da palavra. Com sua sofisticao e velocidade extra, ele levou Turing a consider-lo um crebro primitivo. Ele tinha memria, podia processar informao, e os estados dentro do computador se assemelhavam aos estados da mente. Turing tinha transformado sua mquina imaginria no primeiro computador legtimo. Depois da guerra, Turing continuou a construir mquinas cada vez mais complexas tais como o Automatic Computing Engine. Para maiores detalhes sobre os episdios que envolveram Turing e a Mquina Enigma, e de como foi decifrado o cdigo de guerra alemo, ver o anexo Turing e a Mquina Enigma.
4.7.3.2 O computador ACE e inteligncia artificial

Enviado Amrica para trocar informaes com o servio de inteligncia americano e conhecer os projetos relacionados a computadores, ele tomou conhecimento das emergentes tecnologias eletrnicas e chegou a participar de outro projeto secreto, o Delilah, um codificador de voz (conhecido nos filmes de espionagem como scramblers), tendo entrado em contato com von Neumann (que quis traz-lo para junto de si em seus projetos) e com os engenheiros da Bell (incluindo Claude Shannon). De volta para a Inglaterra, entrou para o National Physical Laboratory, onde trabalhou no desenvolvimento do Automatic Computing Engine (ACE), uma das primeiras tentativas de construo de um computador digital. No fim da guerra, j se detinha o conhecimento sobre novas tecnologias eletrnicas, que poderiam ser usadas para aumentar a velocidade dos ento circuitos lgicos existentes. A real possibilidade de se construir modelos de Mquinas de Turing Universais fez com que o governo ingls investisse na construo desse novo dispositivo, mas os americanos foram mais agressivos em seus investimentos e acabaram ganhando a corrida na construo de computadores. Turing, vtima de intrigas polticas, ficou fora do centro e controle dos novos trabalhos. Seus relatrios tcnicos sobre os projetos de hardware e software do ACE eram ambiciosos e se a

* A bomba (Bombe em ingls) era uma mquina eletromecnica, com vrios conjuntos de rotores, idnticos aos da mquina

geradora de cdigos secretos alem chamada Enigma(ver o anexo Turing e a Mquina Enigma). Ao contrrio da Enigma, os rotores da Bombe rodavam automaticamente para percorrer todas as configuraes possveis. Quando encontrasse uma configurao que tornasse compatvel o palavra adivinhada e o texto cifrado, a mquina parava e o cripto-analista iria testar aquela configurao com o resto do texto cifrado numa Enigma; se o resultado no fosse correcto, re-inicializava a bombe para continuar a procura.

78

mquina originalmente imaginada por ele tivesse sido construda imediatamente, os ingleses no teriam amargado o atraso em relao aos seus colegas do outro lado do Atlntico. Foi tambm durante a temporada do ACE que Turing comeou a explorar as relaes entre o computador e os processos mentais, publicando um artigo, Computing Machinery and Intelligence (1950), sobre a possibilidade da construo de mquinas que imitassem o funcionamento do crebro humano. Pode uma mquina pensar, perguntava-se em seu artigo, e alm de focar no assunto inteligncia das mquinas, Turing adquiriu especial notoriedade ao tentar introduzir, atravs desse artigo, um teste para decidir se realmente pode ou no uma mquina pensar imitando o homem. Em novembro de 1991, o Museu do Computador de Boston realizou uma competio entre 8 programas que simulavam o Turing test, ganho por um programa chamado PC Therapist III. O problema do teste de Turing de natureza behaviorista, isto , somente observa o comportamento exterior, o que lhe d uma carter um tanto reducionista. Srias controvrsias ocorreram e ainda ocorrem sobre esse tema, que esta fora do escopo deste livro *.
4.7.3.3 Programao de computadores

Turing tambm esteve interessado na programao das operaes de um computador o que ento comeou a chamar-se de codificao em funo das operaes matemticas a envolvidas e comeou a escrever linguagens de programao, avanadas ento para o hardware da poca. Turing estava convencido de que operaes de clculo eram somente um dos tipos de sistemas formais que poderiam ser imitados pelos computadores. Em particular, ele percebeu como as tabelas de sua mquina terica poderiam tornar-se elementos de uma poderosa gramtica que as mquinas utilizariam para modificar suas prprias operaes Turing inovou ao comear a elaborar tabelas de instrues, que automaticamente converteriam a escrita decimal a que estamos acostumados em dgitos binrios. Estes poderiam ser lidos pelas mquinas que comeavam a ser construdas tendo como base a lgebra booleana. Turing anteviu assim que no futuro, os programadores poderiam trabalhar com as linguagens hoje conhecidas como de alto nvel. Dizia: As tabelas de instrues devero ser feitas por matemticos com experincia em computadores e certa habilidade em resolver problemas de soluo mais difcil. Haver bastante trabalho deste tipo a ser feito, se todo os processos conhecidos tiverem de ser convertidos na forma de tabelas de instrues em determinado momento. Esta tarefa seguir paralelamente construo da mquina, para evitar demoras entre o trmino desta e a produo de resultados. Podero ocorrer atrasos, devido a virtuais obstculos desconhecidos, at o ponto em que ser seja melhor deixar os obstculos l do que gastar tempo em projetar algo sem problemas (quantas dcadas estas coisas levaro?). Este processo de elaborao de tabelas de instrues ser fascinante. [Rhe85] Ele percebeu ainda que a capacidade de um computador no estaria somente limitada s questes de hardware, mas tambm de software. Exceto talvez por Konrad Zuse e

Para uma melhor percepo, existe uma interessante literatura: R.Rucher, Mind Tools; D. Holfstadter, Gdel, Escher, Bach: an eternal golden braid; R. Penrose, The emperor's new mind; J. Lucas, Minds, Machines and Gdel

79

von Neumann, foi o nico a falar sobre os desafios matemticos e lgicos da arte de programar computadores e seria von Neumann quem completaria em um estilo elegante sua idia de uma linguagem de programao mais sofisticada. 4.7.4 O triste fim

O trabalho de Turing na Computao e na Matemtica foi tragicamente encerrado por seu suicdio em junho de 1954, com a idade de 42 anos. Turing era homossexual e, depois da fuga de dois espies britnicos de igual tendncia para a ento Unio Sovitica, nos incios da dcada de 1950, houve uma especial presso sobre ele para corrigir sua condio atravs do uso de hormnios. Turing, no agentando a forte presso, tomou cianeto.

4.8 A tese de Church-Turing e outros resultados tericos


At aqui foi mostrado como, do ponto de vista formal, surgiu a idia de computao. Dentro dessa dimenso formal se procurar mostrar agora que o cume atingido, e ainda no ultrapassado, foi a Mquina de Turing. um genial modelo abstrato de equipamento, com capacidade de processar complicadas linguagens e calcular o valor de funes aritmticas no-triviais. Pode ainda ser aperfeioado para realizar operaes mais complexas, embora em relao ao modelo bsico isto no implique um salto qualitativo, isto , que o torne algo mais poderoso. Em termos computacionais pode-se dizer que as Mquinas de Turing so um modelo exato e formal da noo intuitiva de algoritmo: nada pode ser considerado um algoritmo se no puder ser manipulado por uma Mquina de Turing. O princpio de que as Mquinas de Turing so verses formais de algoritmos e de que procedimento computacional algum seja considerado um algoritmo a no ser que possa ser instanciado por uma Mquina de Turing conhecido como a Tese de Church, em homenagem ao brilhante matemtico americano Alonzo Church (1903 - 1995), ou ainda Tese de Church-Turing. uma proposio, no um teorema, porque no um resultado matemtico: simplesmente diz que um conceito informal corresponde a um objeto matemtico *. Fazendo uma pequena retrospectiva. Aps os resultados de Gdel, em 1931, muitos lgicos matemticos partiram em busca do que seria uma noo formalizada de um procedimento efetivo (por efetivo entenda-se mecnico), ou seja, o que pode ser feito seguindose diretamente um algoritmo ou conjunto de regras (como j visto, antigo sonho de sculos, que remonta a Leibniz). Destas buscas surgiram:

a sistematizao e desenvolvimento das funes recursivas (introduzidas nos trabalhos de Gdel e Herbrand) por Stephen Cole Kleene (1909-1994) em sua teoria lgica da
*

Teoricamente possvel que a tese de Church seja derrubada em algum futuro, caso surja um modelo alternativo de computao que seja publicamente aceitvel como algo que preenche totalmente as exigncias de executar finitamente cada passo e fazer operaes no executadas por qualquer Mquina de Turing. At a data da confeco deste trabalho no surgiu ainda algo de consistente que viesse a superar a tese de Church (o "computador quntico" sobre o qual no h ainda uma literatura sria disponvel, para se poder falar algo dele nesse trabalho algo que poderia ocasionar um abalo nesse sentido)

80

computabilidade (parte de seu livro Introduo Metamatemtica, um dos cumes da lgica matemtica dos ltimos anos);

as Mquinas de Turing; o clculo-lambda (componente caracterstico fundamental da linguagem de programao LISP) de Alonzo Church; a Mquina de Post, anloga de Turing, tornada pblica um pouco depois, fruto de trabalho independente, e seu sistema para rescrita de smbolos (cuja gramtica de Chomsky um caso particular), de Emil L. Post (1897 - 1954).
Com efeito, todos esses conceitos levaram mesma concluso e acabaram por ter o mesmo significado, dentro do citado escopo da busca de uma definio bem elaborada de processo efetivo. O que se desenvolver aqui refere-se mais a Church e Turing (Kleene fez em seu trabalho uma ampla abordagem de ambos, tirando vrias conseqncias, e Post trata do mesmo tema de Turing), para se ter uma viso mais clara da diversificao dos estudos da dcada de 1930, com vistas fundamentao terica de toda a Computao. Em seu clebre teorema, Church demonstrou, em 1936, que no pode existir um procedimento geral de deciso para todas as expresses do Clculo de Predicados de 1a ordem, ainda que exista tal procedimento para classes especiais de expresses de tal clculo. Isso pode causar certo espanto quando se observa que o Clculo de Predicados de 1a ordem semanticamente completo, com o que se diz, implicitamente, que o prprio clculo, com seus axiomas e regras, constitui um algoritmo capaz de enumerar uma aps outra todas as suas expresses vlidas. Estas expresses so em quantidade indefinida, e, mesmo sendo enumerveis (isto , elaborveis passo a passo a partir dos axiomas), essa enumerao no tem fim. Compreende-se ento que, ao se conseguir demonstrar uma determinada frmula P em certo momento, isto j basta para afirmar que se trata de uma frmula vlida. E, pelo contrrio, se depois de haver deduzido mil teoremas dos axiomas, P ainda no apareceu, no se pode afirmar nada, porque P poderia aparecer aps outros mil teoremas, permitindo-se reconhecer sua validade, ou no aparecer nunca, por no ser vlida. Mas no se poder afirmar em qual caso se est, mesmo depois das mil dedues.[Aga86]. A deciso, dentro desse clculo, seria possvel possuindo-se um algoritmo capaz de enumerar as expresses no vlidas. A expresso P ento aparecia dentro desse conjunto de no vlidas em algum momento. O teorema de Church de que se est tratando consiste fundamentalmente na demonstrao de que no existe algoritmo capaz de enumerar as expresses no vlidas, de maneira que fica excludo a priori todo procedimento de deciso para as expresses do Clculo de Predicados, em geral. Para compreender as razes de semelhante fato seria necessrio valer-se das noes tcnicas relacionados com os conceitos da matemtica recursiva, que excedem amplamente os limites deste trabalho.

81

Figura 19: Alonzo Church

Tambm Church estava interessado no problema de Hilbert. O resultado a que Turing tinha chegado em 1936, sobre o problema da deciso de Hilbert, havia sido tambm alcanado por Church, alguns poucos meses antes, empregando o conceito formalizado de lambda-definibilidade (ao invs do computvel por uma Mquina de Turing, definido por Turing), no lugar do conceito informal procedimento efetivo ou mecnico. Kleene, em 1936, mostrou que lambda-definibilidade equivalente ao conceito de recursividade de GdelHerbrand, e, nesse perodo, Church formulou sua tese, estabelecendo que a recursividade a prpria formalizao do efetivamente computvel. Isso foi estabelecido, no caso das funes dos inteiros positivos, por Church e Kleene, em 1936. O clculo-lambda, como sistema elaborado por Church para ajudar a fundamentar a Matemtica (1932/33) era inconsistente, como o mostraram Kleene e Rosser (1935). Mas a parte do clculo-lambda que tratava de funes recursivas estava correta e teve sucesso. Usando sua teoria, Church props uma formalizao da noo de efetivamente computvel, atravs do conceito de lambda-definibilidade. Turing, em 1936 e 1937, ao apresentar a sua noo de computabilidade associada a uma mquina abstrata, mostrou que a noo Turing-computvel equivalente lambda-definibilidade [Hur80]. O trabalho de Church e Turing liga fundamentalmente os computadores com as MT. Os limites das MT, de acordo com a tese de Church-Turing, tambm descreve os limites de todos os computadores. O processo que determina o valor de uma funo atravs dos argumentos dessa funo chamado de clculo da funo (ou computar uma funo). Como foi observado, a mquina de Turing pode ser matematicamente interpretada como um algoritmo e, efetivamente, toda ao de uma mquina algortmica como o computador pode ser considerada como a de calcular o valor de uma funo com determinados argumentos. Este insight interessante, pois fornece uma maneira de se medir a capacidade computacional de uma mquina. Necessita-se somente identificar as funes que se capaz de computar e usar

82

esse conjunto como medida. Uma mquina que compute mais funes que outra mais poderosa. A partir dos resultados de Gdel, Turing e Church, pode-se dizer que existem funes para as quais no existe uma seqncia de passos que determinem o seu valor, com base nos seus argumentos. Dizendo-se de outra maneira, no existem algoritmos para a soluo de determinadas funes. So as chamadas funes no computveis. Isso significa que para tais funes no h nem haver capacidade computacional suficiente para resolv-las. Logo, descobrir as fronteiras entre funes computveis e no computveis equivalente a descobrir os limites do computador em geral. A tese de Church-Turing representa um importante passo nesse sentido. A percepo de Turing foi a de que as funes computveis por uma MT eram as mesmas funes computveis acima referidas. Em outras palavras, ele conjeturou que o poder computacional das MT abarcava qualquer processo algortmico, ou, analogamente, o conceito da MT propicia um contexto no qual todas as funes computveis podem ser descritas. Em sntese: as funes computveis so as mesmas funes Turing-computveis. A importncia disso est na possibilidade de se verificar o alcance e limites de um computador. Na figura que segue pode-se visualizar como se d a ligao entre os mundos formal, matemtico e computacional.

83

Mundo Matemtico
Semntica Aritmtica Geometria Anlise

Mundo Formal
Sintaxe Alfabeto Smbolos/Expresses Axiomas Regras de Inferncia

Verdades Matemticas

Teoremas

Mquina de Turing
Algoritmo Argumentos: Smbolos na fita Padro da fita Dados de Entrada Instrues do programa Funo Sada: expresso simblica
Figura 20: Relacionamento entre mundos formal, matemtico e computacional (cfr. [Cas97])

84

5 Pr-Histria tecnolgica
Como j foi dito, s foi possvel chegar aos computadores pelas descobertas tericas de homens que, ao longo dos sculos, acreditaram na possibilidade de criar ferramentas para aumentar a capacidade intelectual humana, e dispositivos para substituir os aspectos mais mecnicos do modo de pensar do homem. E desde sempre essa preocupao se manifestou na construo de mecanismos para ajudar tanto nos processos de clculo aritmtico quanto nas tarefas repetitivas ou demasiado simples, que pudessem ser substitudas por animais ou mquinas. Neste captulo se tratar dos dispositivos fsicos que precederam o computador, principalmente as mquinas analgicas que incentivaram a corrida final at o aparecimento dos computadores digitais.

5.1 Dispositivos mais antigos


Os primeiros dispositivos que surgiram para ajudar o homem a calcular tm sua origem perdida nos tempos. o caso, por exemplo, do baco e do quadrante. O primeiro, capaz de resolver problemas de adio, subtrao, multiplicao e diviso de at 12 inteiros, e que provavelmente j existia na Babilnia por volta do ano 3.000 a.C. Foi muito utilizado pelas civilizaes egpcia, grega, chinesa e romana, tendo sido encontrado no Japo, ao trmino da segunda guerra mundial. O quadrante era um instrumento para clculo astronmico, tendo existido por centenas de anos antes de se tornar objeto de vrios aperfeioamentos. Os antigos babilnios e gregos como, por exemplo, Ptolomeu, usaram vrios tipos de dispositivos desse tipo para medir os ngulos entre as estrelas, tendo sido desenvolvidos principalmente a partir do sculo XVI na Europa. Outro exemplo o compasso de setor, para clculos trigonomtricos, utilizado para se determinar a altura para o posicionamento da boca de um canho, e que foi desenvolvido a partir do sculo XV. Os antigos gregos chegaram at a desenvolver uma espcie de computador. Em 1901, um velho barco grego foi descoberto na ilha de Antikythera. No seu interior havia um dispositivo (agora chamado de mecanismo Antikythera) constitudo por engrenagens de metal e ponteiros. Conforme Derek J. de Solla Price, que em 1955 reconstruiu junto com seus colegas essa mquina, o dispositivo Antikythera como um grande relgio astronmico sem a pea que regula o movimento, o qual usa aparatos mecnicos para evitar clculos tediosos (An Ancient Greek Computer, pg. 66 *). A descoberta desse dispositivo, datado do primeiro sculo a.C., foi uma total surpresa, provando que algum arteso do mundo grego do mediterrneo oeste estava pensando em termos de mecanizao e matematizao do tempo (...) [Bol84].

5.2 Logaritmos e os primeiros dispositivos mecnicos de clculo

Trabalho citado por Bolter, que descreve o dispositivo Antikythera, na Scientific American, junho de 1959, pgs. 60-67.

85

John Napier, Baro de Merchiston, bastante conhecido pela descoberta dos logaritmos, mas tambm gastou grande parte de sua vida inventando instrumentos para ajudar no clculo aritmtico, principalmente para o uso de sua primeira tabela de logaritmo. A partir dos logaritmos de Napier surgiu uma outra grande inveno, desenvolvida pelo brilhante matemtico Willian Oughtred e tornada pblica em 1630: a rgua de clculo. Ganhou sua forma atual por volta do ano de 1650 (de uma rgua que se move entre dois outros blocos fixos), tendo sido esquecida por duzentos anos, para se tornar no sculo XX o grande smbolo de avano tecnolgico, com uso extremamente difundido, at ser definitivamente substituda pelas calculadoras eletrnicas. Com o desenvolvimento dos primeiros dispositivos mecnicos para clculo automtico, comea efetivamente a vertente tecnolgica que levar construo dos primeiros computadores. A preparao do caminho para a completa automatizao dos processos de clculo foi executada pelos esforos desses primeiros pioneiros da Computao, que vislumbraram a possibilidade da mecanizao mas no possuam os instrumentos e materiais adequados para concretizar seus projetos. Entre esses grandes nomes no se pode deixar de citar Wilhelm Schickard (1592-1635) e os j citados Pascal e Leibniz. Existem obras sobre essas invenes e somente sero citados os elemento bsicos que as compunham *, pois muitas dessas idias estaro presentes de alguma forma nos futuros computadores. Quase todas as mquinas para execuo de clculos mecnicos desses trs sculos a partir do XVI tinham 6 elementos bsicos em sua configurao [Wil97]: um mecanismo atravs do qual um nmero introduzido na mquina. Nos primeiros projetos isso era parte de um outro mecanismo, chamado seletor, tornando-se algo independente nas mquinas mais avanadas;

um mecanismo que seleciona e providencia o movimento necessrio para executar a adio ou subtrao das quantidades apropriadas nos mecanismos de registro; um mecanismo (normalmente uma srie de discos) que pode ser posicionado para indicar o valor de um nmero armazenado dentro da mquina (tambm chamado de registrador); um mecanismo para propagar o vai um por todos os dgitos do registrador, se necessrio, quando um dos dgitos em um registrador de resultado avana do 9 para o 0; um mecanismo com a funo de controle, para verificar o posicionamento de todas as engrenagens ao fim de cada ciclo de adio; um mecanismo de limpeza para preparar o registrador para armazenar o valor zero.

5.3 Charles Babbage e suas mquinas


A idia de Leibniz de, atravs de mquinas, liberar o homem das tarefas repetitivas e de simples execuo foi quase posta em prtica pelo matemtico e astrnomo ingls Charles
*

Havia tambm o problema, de modo algum simples, da inveno de mecanismos que produzissem os movimentos exigidos pelas engrenagens durante os clculos

86

Babbage (1792-1871), considerado unanimemente um dos grandes pioneiros da era dos computadores. No ano de 1822 ele apresentou em Londres o projeto de um mecanismo feito de madeira e lato, que poderia ter alterado o rumo da histria se tivesse sido construdo efetivamente. Babbage concebeu a idia de um dispositivo mecnico capaz de executar uma srie de clculos.

Figura 21: Desenho de Charles Babbage

J por volta da dcada de 1820 ele tinha certeza de que a informao poderia ser manipulada por mquina, caso fosse possvel antes converter a informao em nmeros. Tal engenho seria movido a vapor, usaria cavilhas, engrenagens, cilindros e outros componentes mecnicos que eram as ferramentas tecnolgicas disponveis em sua poca. Para descrever os componentes de sua mquina faltavam-lhe os termos que atualmente so usados. Chamava o processador central de usina e referia-se memria da mquina como armazm. Babbage imaginava a informao sendo transformada da mesma forma que o algodo sendo tirada do armazm e modificada para algo diferente. Em 1822 Babbage escrevia uma carta a Sir Humphry Davy, o ento presidente da Royal Society, sobre automatizar, como ele prprio dizia, o intolervel trabalho e a cansativa monotonia das tabelas de clculo, escrevendo um trabalho cientfico intitulado On the Theoretical Principles of the Machinery for Calculating Tables(...) [Gol72]. Embora conhecido por seu trabalho na rea de Computao, no ser demais citar que Charles Babbage foi tambm um excelente matemtico e ao lado de Peacock, Herschel, De Morgan, Gregory e do prprio George Boole, pode ser visto como um dos introdutores da concepo moderna da lgebra. Alm disso foi um dos lderes da Sociedade Real de Astronomia inglesa, tendo publicado tambm pesquisas no campo da ptica, meteorologia, eletricidade e magnetismo, funcionamento de companhias de aplices de seguros, criptologia, geologia, metalografia, sistemas taxonmicos, mquinas a vapor, etc. Escreveu e publicou

87

vrios livros, um deles (On the Economy of Machinery and Manufacturers) reconhecido posteriormente como um dos trabalhos pioneiros na rea chamada Pesquisa Operacional. Mas o que motivou esse ingls a fazer um dispositivo capaz de resolver equaes polinomiais atravs do clculo de sucessivas diferenas entre conjuntos de nmeros (ver anexo sobre o Mtodo das Diferenas) foi a necessidade de uma maior preciso na elaborao de tabelas logartmicas. No final do sculo XVIII houve uma proliferao de tabelas de vrios tipos. Desde Leibniz e Newton os matemticos estiveram preocupados com o problema da produo de tabelas, tanto por meios matemticos como no caso das de multiplicao, seno, coseno, logaritmos, etc. ou por meio de medies fsicas densidade em funo da altitude, constante gravitacional em diferentes pontos da terra, entre outras coisas. A inteno era reduzir o trabalho de clculo, mas as tabelas produzidas pelos especialistas tinham muitos erros. Os matemticos estavam cientes deles e estudos foram elaborados para se tentar melhorar a situao. Nestas circunstncias apareceu o projeto denominado Difference Engine de Babbage, que lhe valeu o apoio de seus colegas da Sociedade Real e fundos do governo britnico para inici-lo. O desafio era construir um dispositivo para computar e imprimir um conjunto de tabelas matemticas. Babbage contratou um especialista em mquinas, montou uma oficina e ento comeou a descobrir quo distante estava a tecnologia do seu tempo daqueles mecanismos altamente precisos e de movimentos complexos exigidos pelo seu projeto. A concluso foi que deveria, antes de iniciar a construo da Mquina de Diferenas, gastar parte dos seus recursos para tentar avanar o prprio estado da arte da tecnologia vigente. Todos estes trabalhos prolongaram-se por alguns anos, sem sucesso, at que o governo ingls desistiu do financiamento. Em 1833 Charles Babbage parou de trabalhar em sua mquina *. Apesar de tudo, esse teimoso ingls j vinha desenvolvendo novas idias. Provavelmente tentando alguma nova modificao no projeto da Mquina de Diferenas foi que Charles Babbage concebeu um mecanismo mais complicado que este em que falhara aps vrios anos de tentativas. O pensamento era simples: se possvel construir uma mquina para executar um determinado tipo de clculo, por que no ser possvel construir outra capaz de qualquer tipo de clculo? Ao invs de pequenas mquinas para executar diferentes tipos de clculos, no ser possvel fazer uma mquina cujas peas possam executar diferentes operaes em diferentes tempos, bastando para isso trocar a ordem em que as peas interagem? Era a idia de uma mquina de clculo universal, que vir a ser retomada em 1930 por Alan Turing, e que ter ento conseqncias decisivas. Vale ressaltar que o Analitical Engine, a Mquina Analtica nome dado por Charles Babbage sua inveno estava muito prxima conceitualmente daquilo que hoje chamado de computador. A Mquina Analtica poderia seguir conjuntos mutveis de instrues e, portanto, servir a diferentes funes mais tarde isso ser chamado de software... Ele percebeu que para
*

Esta mquina, conforme imaginada por Babbage, foi construda e colocada em operao pelo Museu de Cincia de Londres e mostrada com seus desenhos em 1862 durante exposio internacional. Em 1849 Babbage entregaria ao governo britnico uma nova verso da Mquina de Diferenas, que nem considerada foi. Em 1991 foi construida esta segunda verso [Wil97].

88

criar estas instrues precisaria de um tipo inteiramente novo de linguagem e a imaginou como nmeros, flechas e outros smbolos. Ela serviria para Babbage programar a Mquina Analtica, com uma longa srie de instrues condicionais, que lhe permitiriam modificar suas aes em resposta a diferentes situaes.

Figura 22: Mquina Diferencial de Babbage construda pelo Museu de Londres

Reconhecendo a importncia de se terem resultados impressos, Charles procurou que os resultados finais e os intermedirios fossem impressos para evitar erros. Dispositivos de entrada e sada eram assim necessrios. A entrada de dados para a mquina seria feita atravs de trs tipos de cartes: cartes de nmeros, com os nmeros das constantes de um problema; cartes diretivos para o controle do movimento dos nmeros na mquina; e cartes de operao para dirigir a execuo das operaes tais como adies, subtraes, etc. Mas o mais genial estava por vir: duas inovaes simples mas que produziram um grande impacto. A primeira era o conceito de transferncia de controle que permitia mquina comparar quantidades e, dependendo dos resultados da comparao, desviar para outra instruo ou seqncia de instrues. A segunda caracterstica era possibilitar que os resultados dos clculos pudessem alterar outros nmeros e instrues colocadas na mquina, permitindo que o computador modificasse seu prprio programa. Nestes temas teve importante participao, Ada Augusta Byron, condessa de Lovelace, a primeira efetiva programadora de computadores, sobre a qual ainda se falar. 5.3.1 A mquina de Jacquard, inspirao de Babbage

89

Figura 23: Tear de Jacquard

importante fazer uma meno a Joseph-Mariae Jacquard (1752-1834), um francs que produziu uma mquina para substituir o trabalho humano. Na verdade, Babbage despertou para seu novo projeto observando a revoluo produzida pelos teares de Jacquard*, dotados de um dispositivo que automatizava o processo de tecelagem com vistas a obter determinados padres de desenho. Para executar um determinado tranado, a fiandeira deveria ter um plano ou programa que lhe dissesse que fios deveriam passar por cima ou por baixo, quando repetir o processo, etc. O ponto chave da mquina de Jacquard era o uso de uma srie de cartes cujos buracos estavam configurados para descrever o modelo a ser produzido. O sucesso foi total e em 1812 havia na Frana cerca de 11.000 teares de Jacquard ([Bri79b], volume V). Adaptando o tear de Jacquard, a Mquina Analtica processava padres algbricos da mesma maneira que o tear processava padres de desenhos.

5.3.2

Uma Lady como primeira programadora

Ada Augusta Byron era filha do famoso poeta Lord Byron e foi educada pelo matemtico logicista ingls Augustus De Morgan. Bem cedo demonstrou ter grandes talentos
*

O tear de Jacquard inspirou tambm a Herman Hollerith, sobre quem se falar mais adiante.

90

na rea. Apresentada a Babbage durante a primeira demonstrao da Mquina de Diferenas, tornou-se uma importante auxiliar em seu trabalho, sendo, sobretudo, algum que compreendeu o alcance das novas invenes. Ela percebeu que, diferentemente das mquinas anteriores com funcionamento analgico (execuo de clculos usando medidas), a Mquina de Diferenas era digital (execuo de clculos usando frmulas numricas). Mais importante ainda, deu-se conta da combinao entre funes lgicas e aritmticas na mquina de Babbage. Quando Charles Babbage visitou Turim a convite do amigo Giovanni Plana, astrnomo e compilador de tabelas, ministrou uma srie de palestras para distintos pblicos, incluindo Luigi F. Menabrea, futuro primeiro-ministro da Itlia. Este ficou impressionado com o trabalho de Babbage e tomou uma srie de notas, publicadas depois em 1842 pela Biblioteca da Universidade de Genebra. Lady Lovelace traduziu para o ingls essas notas, acrescentando muitas observaes pessoais [Gol72]. Esta publicao e outro ensaio (Observations on Mr. Babbages Analytical Engine) a colocam como patrona da arte e cincia da programao. Conforme comentado por B.H. Newman, os escritos de Ada Byron mostram como ela teve uma total compreenso dos princpios de um computador programado, um sculo antes do tempo deste [Moo77]. Mesmo no estando a mquina construda, Ada procurou escrever seqncias de instrues tendo descoberto conceitos que seriam largamente utilizados na programao de computadores como subrotinas, loops e saltos.

5.4 Outras Mquinas Diferenciais e Mquinas Analticas


Embora no fosse fcil, o trabalho de Babbage foi divulgado por um certo Dr. Dionysus Lardner, que procurou descrever a mquina e seu modo geral de operao [Wil97]. Um sueco, George Scheutz, editor de um jornal tcnico de Estocolmo, leu e ficou entusiasmado pela mquina descrita por Lardner e, sem se comunicar com Babbage, propsse a construir a sua Mquina de Diferenas, junto com o filho *. Os anos de 1840, 1842 e 1843 marcaram etapas bem sucedidas no desenvolvimento do projeto, culminando com um modelo preliminar. Em outubro de 1854 o dispositivo de Scheutz estava completo e em funcionamento. Outros, como por exemplo Alfred Decon, ingls, Martin Wiberg, sueco e G. B. Grant, americano, construram modelos derivados, e at 1931 Mquinas de Diferenas foram construdas para produzir diferentes tipos de tabelas [Wil97]. Com relao Mquina Analtica, parece que o irlands Percy Ludgate (1883-1922) projetou e tentou construir um mecanismo similar ao de Babbage, conforme pequena descrio feita em um dirio cientfico de Dublin, em 1909.

Em 1854, durante uma viagem a Londres, Scheutz pai e filho encontraram-se com Charles Babbage, que aprovou a mquina por eles construda. Ambos nunca esconderam depois sua admirao pelas idias do ingls.

91

Figura 24: Mquina Diferencial de George Scheutz

5.5 A ltima contribuio do sculo XIX: Herman Hollerith

Figura 25: Tabuladora de Hollerith

O prximo passo importante na Histria da Computao no est relacionado com tabelas de clculo de logaritmos ou desenvolvimento de leis do pensamento. O prximo pensador a avanar o estado da arte foi Herman Hollerith, um empregado de apenas 19 anos do United States Census Office. Seu papel no teve impacto sobre os importantes fundamentos tericos da Computao e sua inveno j obsoleta. Mas sua pequena inovao cresceu tanto na indstria que, mais tarde, Hollerith veio a dominar o uso da 92

tecnologia de computadores. Em 1890 ele ganhou a concorrncia para o desenvolvimento de um equipamento de processamento de dados para auxiliar o censo americano daquele ano. A empresa fundada para isto, Hollerith Tabulating Machines, veio a ser uma das trs que em 1914 comps a empresa CTR (Calculating-Tabulating-Recording), renomeada em 1924 para International Business Machine - IBM [IEEE95]. Hollerith, inspirado pelos teares de Jacquard, desenvolveu a idia de se aproveitar os cartes perfurados dos teares em uma mquina que pudesse interpretar, classificar e manipular as somas aritmticas representadas pelas perfuraes. Ele combinou cartes perfurados com os novos dispositivos eletromagnticos de ento.

5.6

Computadores analgicos

Figura 26: Dispositivo analgico simples

H uma histria interessante sobre os computadores analgicos, cujas origens remontam ao passado distante. Muitos dispositivos analgicos foram desenvolvidos a partir do ano 400 a.C. Tpicos so os astrolbios (ver anexo sobre o assunto), o j mencionado mecanismo Antikythera, os instrumentos de sinalizao e os planetrios [Wil97]. Ir interessar particularmente para esse trabalho uma classe especfica de instrumentos analgicos: as mquinas integradoras, que remontam a Maxwell, Faraday, Kelvin e Michelson, entre outros, que tentaram desenvolver dispositivos para executar operaes matemticas [Lil45]. Essas foram usadas em projetos que exigiam a soluo de equaes diferenciais e modelagem de sistemas mais complexos, como o movimento das ondas do mar, evoluindo at os computadores eletrnicos analgicos, alguns ainda usados at os dias de hoje para aplicaes especiais. Tais desenvolvimentos formam uma parte dessa infra-estrutura que constituiu a base para o aparecimento dos computadores digitais. 93

Um computador analgico um dispositivo no qual os nmeros so representados por quantidades fsicas medidas, e nos quais equaes ou relaes matemticas so representadas por diferentes componentes, correspondendo a operaes matemticas singulares, tais como integrao, adio ou multiplicao. Um dispositivo analgico muito conhecido a rgua de clculo. Ela consiste basicamente de dois trilhos graduados de acordo com os logaritmos de nmeros, e os trilhos deslizam um sobre o outro. Os nmeros so representados atravs de comprimentos nos trilhos e a operao fsica que pode ser executada a soma de dois comprimentos nos trilhos. Sabe-se que o logaritmo de um produto de dois nmeros a soma dos logaritmos deles. Assim pode-se com a rgua de clculo formar a soma de dois comprimentos e executar multiplicao e operaes correlatas. Os componentes analgicos podem ser divididos em duas classes, dependendo da maneira como os nmeros so representados: i) por quantidades mecnicas, como um deslocamento linear ou rotao angular; ii) quantidades eltricas, como voltagem, corrente, impedncia, condutividade. Se os deslocamentos lineares so usados para representar nmeros, h caminhos simples, nos quais relaes geomtricas podem aparecer atravs de formas mecnicas. As operaes matemticas podem ser realizadas usando-se uma relao geomtrica correspondente. Na figura ao lado pode-se ver um computador analgico muito simples. No final do sculo XIX, as equaes matemticas que apareciam nos estudos de fsica passaram a exigir uma grande quantidade de clculos, quase impossveis de se resolver na prtica. Os fsicos comearam a desenvolver sofisticadas ferramentas matemticas para descrever, atravs de equaes*, a operao de determinados tipos de mecanismos, assim como conceber mquinas cujo movimento era feito de acordo com equaes. Uma soluo foi a de se criar um sistema fsico anlogo e cujo comportamento pudesse ser quantitativamente observado. Por exemplo: o fluxo de calor anlogo ao fluxo de eletricidade, onde temperatura corresponde a potencial eltrico. Logo, pela anlise de camadas eletricamente condutoras, dispostas de maneira a simular s caractersticas de uma estrutura, pode-se investigar o fluxo de calor dentro dessa estrutura ([Bri79a], volume XI). Algum que quisesse projetar um dispositivo desse tipo deveria: i) analisar quais operaes desejaria executar; ii) procurar um aparato fsico cujas leis de operao sejam anlogas quelas que se deseja executar; iii) construir o aparelho; iv) resolver o problema medindo as quantidades fsicas envolvidas. Dois nomes famosos esto diretamente ligados efetiva produo de dispositivos analgicos para resoluo de clculos mais complexos: James Clerk Maxwell (1831-1879), o criador da teoria sobre a eletricidade e o magnetismo, e James Thomson. Ambos inventaram dispositivos analgicos por volta de 1860 [Gol72].

Como por exemplo equaes diferenciais ordinrias, sries de transformaes de Fourier, sistemas de equaes algbricas lineares

94

Em todos os dispositivos analgicos que comearam a aparecer, a operao fundamental a da integral, isto , todos eles produziam como sada

f ( x)dx
a

, dado f(x)

como entrada. Dentro da evoluo das mquinas analgicas, os analisadores diferenciais foram os dispositivos que mais tarde passaram a ser chamados propriamente de computadores analgicos. 5.6.1 Primeiras evolues: sculo XV

por volta do sculo XV que aparecem dispositivos analgicos mais sofisticados, utilizados para prever os intervalos de tempos de mar alta e baixa em alguns portos europeus. So os chamados tide predictors, com suas escalas circulares, seus ponteiros que marcavam a posio do sol e da lua e um interessante sistema de checagem desses dados e que, juntamente com algumas informaes especficas do porto, permitia ao usurio ler nas escalas do instrumento o tempo aproximado entre a mar alta e baixa. Quando na metade do sculo XVIII foi possvel encontrar uma frmula para o clculo de sries de coeficientes de coseno (y = A cos(u) + B cos(v) + C cos(w) + ...), Lord Kelvin construiu uma mquina analgica para avaliar essa frmula. Chamou-a analisador harmnico, e um exemplo pode ser visto na prxima figura. Um desses primeiros dispositivos foi elaborado em 1878. Escrevendo sobre seu analisador harmnico de ondas do mar Kelvin disse: O objetivo desta mquina substituir o grande trabalho mecnico de calcular os fatores elementares que constituem a subida e descida da mar (...)[Gol72]. Uma anlise harmnica consiste em se formar um nmero de integrais do tipo geral f (t ) g (t )dt , onde g uma funo seno ou coseno. A avaliao das integrais desse tipo foi o que Kelvin conseguiu, fazendo uma engenhosa adaptao de um integrador * elaborado por seu irmo. A ltima inveno de Kelvin relevante para nossa histria foi o que agora chamado Analisador Diferencial, um dispositivo para a soluo de sistemas de equaes diferenciais ordinrias. Dos dispositivos chamados integradores possvel obter uma integral que o produto de duas variveis. Uma grande gama de sistemas de equaes pode ser computada por esses componentes. Kelvin nunca chegou a construir sua mquina por no dispor de tecnologia suficiente. A dificuldade estava em como usar a sada de um integrador como entrada em outro. Na explicao de Maxwell, o problema central era a sada estar medida pela rotao de um disco ligado a uma roda. Esta roda acionada por estar apoiada sobre um disco que gira em torno de um eixo. O torque desse disco sua capacidade de girar a roda muito pequeno e conseqentemente ele, de fato, no pode fornecer uma entrada

Integrador tambm um dispositivo analgico, que produz como resultado a integral de f(x). Seria exaustivo e fugiria do escopo do trabalho falar sobre esses dispositivos existem ainda os planmetros, para medir reas de figuras traadas por um operador humano, etc. que fazem parte desses primeiros esforos em direo a sofisticados mecanismos analgicos.

95

para outro integrador *. Esses problemas permaneceram suspensos por quase 50 anos at o desenvolvimento dos amplificadores de torque. Analisadores diferenciais mecnicos foram revitalizados por volta de 1925 e o mais famoso destes foi o construdo no Instituto de Tecnologia de Massachusetts (MIT) por Vannevar Bush .

Figura 27: Dispositivo analgico de Lord Kelvin

5.6.2

Michelson e seu analisador harmnico; I Guerra Mundial

O principal obstculo na construo de tal mquina est na acumulao de erros envolvida no processo de adio. O nico instrumento projetado para efetuar esta adio o de Lord Kelvin (...). O alcance da mquina , no entanto, limitado pelo pequeno nmero de elementos na conta (...), pois com um considervel aumento no nmero de elementos, os erros acumulados devido aos fatores j mencionados logo neutralizariam as vantagens do aumento do nmero de termos na srie. So palavras de Albert A. Michelson (1852 - 1931) em 1898 [MS98], um dos grandes fsicos do sculo XX. Interessou-se pelo desenvolvimento de um analisador harmnico que pudesse manipular uma srie de Fourier de at 20 termos, continuando a tradio das mquinas analgicas.

Outra dificuldade substancial: no possvel aumentar muito o nmero de termos em uma srie pois o seu dispositivo de adio de termos levava a um acmulo de erros. Para uma longa srie de termos o resultado poderia estar completamente viciado. Aps a Segunda Guerra Mundial, analisadores diferenciais mecnicos comearam a se tornar obsoletos com o desenvolvimento de analisadores diferenciais eletrnicos e com o aparecimento da Computao eletrnica digital.

96

Figura 28: Analisador harmnico de Michelson

Durante a I Guerra Mundial tornaram-se estratgicos os problemas referentes aos clculos balsticos, o que foi um incentivo continuidade do desenvolvimento de mquinas computacionais. Um desses problemas o de como determinar a funo de deslocamento, observando-se a resistncia do ar, em funo da velocidade. Quando a artilharia aponta para objetos que se movem, como navios ou avies, essencial prever o movimento dos alvos. Foram duas dcadas (1910 e 1920) em que houve um grande aprofundamento terico, com a formao de grupos de matemticos nos EUA e Inglaterra, cujas principais descobertas esto nos procedimentos numricos para soluo de equaes diferenciais com grande preciso [Gol72]. 5.6.3 Computadores analgicos eletromecnicos

Nos primeiros anos do sculo XX muitos fsicos e engenheiros de todo o mundo estiveram trabalhando em questes fundamentais da rea de eletricidade. Centros de pesquisa foram criados em Harvard, no MIT, na IBM, na General Electric, e outros lugares. Tiveram sucesso na formulao matemtica dos problemas em teoria de circuitos e muitos textos foram escritos nos anos da dcada de 1920, especialmente por Vannevar Bush no MIT, A.E. Kennelly de Harvard e do MIT, C.P Steinmetz da General Electric, entre outros [Gol72]. Tambm no se pode esquecer o trabalho fundamental de Oliver Heaviside (1850-1897), um ingls que desenvolveu um dispositivo matemtico para manipular equaes e analisar induo eletromagntica, e o trabalho de Norbert Wiener junto a Bush. Como se disse sobre Kelvin e seu analisador harmnico, o grande problema foi ele no dispor da suficiente tecnologia para desenvolver um dispositivo que executasse a 97

operao de gerar a integral do produto de duas funes,

f 1( x) f 2( x)dx , e por vrios anos


a

a idia esteve esquecida at o desenvolvimento dos amplificadores de torque. A partir de 1927 at 1931, Vannevar Bush e sua equipe no MIT desenvolveram mecanismos para resolver equaes diferenciais ordinrias. Bush deve especialmente a C. W. Niemann, engenheiro e inventor do amplificador de torque Bethlehem, a possibilidade de ter construdo seu famoso analisador diferencial, terminado em 1931. Usando o amplificador de Niemann, Bush pde construir uma mquina usando exclusivamente integradores. Ainda mecnico, este dispositivo foi aprimorado durante a II Guerra Mundial, pela substituio dos mecanismos puramente mecnicos por corrente e voltagem, obtidas atravs de potencimetros instalados sobre os discos cuja rotao representava quantidades. As voltagens correspondiam soma, produto e a uma funo de uma varivel. Entram aqui conceitos de servo-mecanismos e amplificadores operacionais [Ryd67]. Ainda dentro do mundo dos computadores analgicos, deve-se destacar o trabalho do fsico ingls Douglas Hartree, das universidades de Manchester e Cambridge, que tentou resolver equaes diferenciais parciais com analisadores diferenciais, e que, ao deparar-se com clculos altamente complexos, anteviu e preparou o advento dos computadores eletrnicos [Gol72]. As novas descobertas da indstria e da cincia no campo da eletricidade proporcionando rapidez e preciso aos equipamentos juntamente com a limitao dos equivalentes analgicos eletromecnicos, acabaria por impor a nova tecnologia de circuitos. Uma nova era da Computao comeava a ser desvelada. necessrio assinalar, no entanto, que novas mquinas analgicas eletromecnicas sucedneas da ltima mquina de Bush, no MIT, em 1942 foram construdas e at 1960 ainda estavam em uso ([Bri79a], volume XI).

5.7 Circuitos eltricos e formalismo lgico: Claude Elwood Shannon


Como um grande tapete, que vai sendo tecido aos poucos por diferentes artesos que no tm a viso de todo o conjunto, paulatinamente avanou a teoria e a tcnica que levaram construo do computador digital. Paralelamente aos matemticos, tambm um jovem engenheiro, Claude E. Shannon (1916 - 2001), com a idade de 22 anos, deu uma grande contribuio Computao: em 1937 ele estabeleceu uma ligao entre os circuitos eltricos e o formalismo lgico. Mestre em Engenharia Eltrica e Doutor (PhD) em Matemtica pelo Instituto de Tecnologia de Massachusetts (MIT), Cambridge, MA, em 1940, durante a Segunda Guerra Mundial, Shannon comeou a desenvolver uma descrio matemtica da informao, dando origem a um ramo de estudos conhecido como Teoria da Informao[Gat95]. Deu ainda importantes contribuies na rea da Inteligncia Artificial.

98

Figura 29: Claude E. Shannon

O que Shannon fez em 1937 foi mostrar um caminho para projetar mquinas baseadas na lgica algbrica descrita um sculo antes por George Boole, aquela em que s havia dois valores no sistema de clculo lgico: 1 e 0. Se um valor verdadeiro, ele pode ser representado pelo valor 1 e, se falso, pelo 0. Nesse sistema, uma tabela-verdade descreveria os vrios estados lgicos possveis. Uma das caractersticas importantes da lgebra de Boole que as operaes lgicas podem ser colocadas juntas e formar novas operaes. Claude Shannon percebeu que a mesma lgebra poderia descrever o comportamento de circuitos eltricos chaveados. Igualmente importante foi o modo como estas combinaes entre operaes lgicas e aritmticas poderiam ser usadas para se construir uma operao de memria. A lgebra booleana torna possvel a construo de um dispositivo de estado que pode armazenar qualquer informao especfica, seja um dado ou uma operao. E se um circuito eltrico pode executar operaes matemticas e lgicas, e pode tambm armazenar os resultados de tais operaes, ento os computadores digitais podem ser construdos. Em resumo: lgica booleana, cujas tabelas-verdade poderiam representar as regras de um sistema lgico formal;

tabelas de instrues da Mquina de Turing que podem simular as tabelasverdade de Boole; dispositivos como o rel j ento muito usados em telefones para representar estados de mquina. Em breve j seria possvel a construo de circuitos eltricos que simulavam algumas operaes lgicas. Shannon estava procurando um procedimento matemtico que fosse o mais adequado para se descrever o comportamento de circuitos a rel*. Sua tese de mestrado publicada em 1937 mostrou como a lgebra booleana poderia ser usada para descrever as operaes desses complexos circuitos.

Um rel uma chave ou dispositivo que abre ou fecha um circuito, permitindo ou bloqueando o fluxo da eletricidade. semelhante a um interruptor de luz, com a diferena de que o rel no ligado ou desligado por uma ao humana, mas pela passagem de uma corrente eltrica.

99

Nos dez anos seguintes ao seu primeiro trabalho (a tese anteriormente citada), Shannon dirigiu seu interesse para o estudo da comunicao, parte de um trabalho j iniciado por Norbert Wiener, de quem se falar mais adiante. Depois da guerra, tendo encontrado uma ferramenta perfeita para a descrio de circuitos a rel, Claude Shannon procurou definir matematicamente aquilo que as novas mquinas processavam. Ele estava interessado nas leis subjacentes aos sistemas de comunicao de mensagens feitos pelo homem, na diferena entre rudo e mensagem e de como esta mantinha a sua ordem em um meio onde a desordem rudo muito alta. Chegou a equaes muito parecidas s do fsico Boltzmann sobre as leis da entropia. Em 1948 Shannon publicou dois trabalhos que originaram a j citada rea da Teoria da Informao (A Mathematical Theory of Information) *. O desenvolvimento deu-se rapidamente, afetando no somente o projeto de sistemas de comunicao, mas tambm reas como automatizao, cincia da informao, psicologia, lingstica e termodinmica ([Bri79a], volume IX). Em 1950 publicou A Chess Playing Machine onde propunha que computadores digitais poderiam ser adaptados para trabalhar simbolicamente com elementos representando palavras, proposies ou outras entidades conceituais, dando prosseguimento ao emergente ramo de estudos denominado mais tarde Inteligncia Artificial. Em 1953, com Computers and Automata falou sobre simulao, atravs de hardware e software, de algumas operaes da mente ([Rhe85], captulo 6). Em 1956, mantendo seu trabalho nos laboratrios da Bell, Shannon aceitou o cargo de professor no MIT, atividade que exerceu durante muitos anos. Preocupava-se com os conceitos e simplificava ao mximo a simbologia. Onde outros professores poriam smbolos e mais smbolos, ndices e mais ndices, Shannon colocava duas ou trs letras e incentivava os alunos a perceber as relaes matemticas que essas letras traduziam. Gnio matemtico que combinava a intuio, a abstrao e as aplicaes, Claude Shannon tinha como passatempos andar de monociclo, construir mquinas de jogar xadrez e outras aparentemente inteis . Estendeu sua Teoria Matemtica de Comunicao ao campo da criptologia. Claude Shannon, tinha a doena de Alzheimer. Faleceu no sbado, 24 de Fevereiro de 2001, no Courtyard Nursing Care Center em Medford, Massachusetts. Ele estava com 84 anos.

Informalmente falando, trata da representao matemtica das condies e parmetros que afetam a transmisso e processamento da informao. importante notar que informao, como entendida na teoria da informao, no tem nada a ver com o significado inerente na mensagem. Significa um certo grau de ordem, de no randomicidade, que pode ser medida e tratada matematicamente como as quantidades fsicas. Elaborou um autmato que procurava a sada num labirinto e aquela a que chamou de mquina final. Nela, via-se apenas um interruptor. Ligando-o, o aparelho emitia um som zangado e dele emergia uma mo mecnica que desligava o interruptor, terminando a brincadeira.

100

6 As primeiras mquinas
6.1 Os primeiros computadores eletromecnicos

A partir da dcada de 1930 alguns cientistas comearam a trabalhar com dispositivos de clculo com algum tipo de sistema de controle automtico. J se dispunha da tecnologia necessria para se construir aquela estrutura imaginada por Babbage. Surgiram os primeiros computadores mecnicos e eletromecnicos e muitos projetos de computadores eletrnicos feitos posteriormente sofreram muitas influncias dessas primeiras mquinas. 6.1.1 Konrad Zuse

Figura 30: Konrad Zuse por volta dos anos 70

Konrad Zuse (1910 - 1995) foi o primeiro a desenvolver mquinas de clculo controladas automaticamente. Esse engenheiro civil percebeu rapidamente que um dos aspectos mais onerosos ao se fazerem longos clculos com dispositivos mecnicos era guardar os resultados intermedirios para depois utiliz-los nos lugares apropriados nos passos seguintes [Zus80]. Em 1934, depois de vrias idias e tentativas, Zuse chegou concluso que um calculador automtico somente necessitaria de trs unidades bsicas: uma controladora, uma memria e um dispositivo de clculo para a aritmtica. Ele desenvolveu o seu Z1, em 1936, um computador construdo inteiramente com peas mecnicas e que usava uma fita de pelcula cinematogrfica para as instrues que controlavam a mquina. Em 1938, antes mesmo de terminar o Z1, um aluno de Zuse, Helmut Schreyer, construiu uma parte do Z1 usando vlvulas. Em funo da situao de pr-guerra, Zuse teve 101

de abandonar essa linha de desenvolvimento seriam necessrias 1000 vlvulas, o que era impossvel naquele momento e continuou o Z2 usando tecnologia baseada em rels. Esses dois primeiros modelos eram somente para teste: tinham todas as caractersticas do computador posterior, mas no trabalhavam satisfatoriamente. O Z3 foi terminado em 1941 e foi o primeiro modelo totalmente operacional * [Zus80]. O Z3, como a maioria das mquinas dessa primeira gerao, usava dois mecanismos separados para as funes aritmticas e tinha uma unidade especial para converso de nmeros na notao decimal para a binria. Em termos de velocidade podia ser comparado ao MARK I, discutido mais frente, que foi terminado dois anos aps o Z3. O Z3 executava trs a quatro adies por segundo e multiplicava dois nmeros em quatro ou cinco segundos. Nunca chegou a ser usado para grandes problemas em funo de possuir uma memria de tamanho limitado. Foi destrudo, junto com a casa de Zuse, por um bombardeio em 1944. O Z4 comeou a ser desenvolvido quase que simultaneamente ao final do trabalho do Z3. Era essencialmente a mesma mquina, com maior capacidade de memria e mais rpida. Por causa do avano das tropas aliadas, o trabalho do Z4 foi interrompido quase ao seu final e a mquina ficou escondida em uma pequena cidade da Bavria chamada Hinterstein Em 1950, na Sua, Zuse reconstruiu o seu Z4, e fundou uma empresa de computadores, absorvida depois pela Siemens. As mquinas de Zuse tiveram pouco impacto no desenvolvimento geral da Computao pelo absoluto desconhecimento delas at um pouco depois da guerra [Zus80]. 6.1.2 As mquinas da Bell e as mquinas de Harvard

Por volta de 1937, enquanto Turing desenvolvia a idia da sua Mquina Universal" e formalizava o conceito do que computar e do que um algoritmo, nos Estados Unidos dois outros matemticos tambm consideravam o problema da computao: Howard Aiken, em Harvard, cujo trabalho daria seus frutos em 1944, e George Stibitz, nos laboratrios da Bell Telephones. Eles procuravam componentes eletromecnicos que pudessem ser usados na computao de clculos. Nos ltimos anos da dcada de 1930 os problemas envolvendo clculos com nmeros complexos (aqueles com partes imaginrias, envolvendo razes negativas) no projeto de equipamentos telefnicos comearam a dificultar o crescimento da Cia. Bell Telephone. As pesquisas da empresa ento comearam a ser direcionadas descoberta de mecanismos que pudessem satisfazer essa necessidade cada vez mais crescente de clculos mais rpidos. Stibitz demonstrou que rels podiam ser utilizados para executar operaes aritmticas. A partir de 1938, juntamente com S. B. Willians comeou a implementar suas idias, e em 1939 estava pronto o seu Modelo I. Seus outros 'Modelos' chegaram at o nmero VI, terminado em 1950 tendo estado em uso at 1961 , e juntamente com os computadores K do Dr. Zuse foram os primeiros computadores de cdigo binrio, baseados em rels [Sti80]. Ao mesmo tempo, nos Laboratrios de Computao de Harvard, Howard Aiken e engenheiros da IBM comearam a desenvolver um outro tipo de mquinas eletromecnicas,
*

Quer dizer, tinha o controle automtico das suas operaes.

102

no totalmente baseada nos rels, j incorporando uma nova tecnologia que seria amplamente utilizada mais tarde: as memrias de ncleo de ferrite. Ao trmino de sua primeira verso, em 1943, o IBM Automatic Sequence Controlled Calculator, comumente chamado de Harvard Mark I *, tinha uma srie de novas capacidades: modificava instrues dinamicamente baseando-se nos resultados obtidos durante o processamento, possua unidades para decidir qual o melhor algoritmo para execuo de um clculo atravs do argumento de uma funo, testava o contedo de registradores, etc. Diferenciava-se fundamentalmente de mquinas anteriores, como o EDSAC, (citado mais frente), por usar memrias separadas para instrues e dados, o que ficou denominado como arquitetura de harvard. Quando terminado em 1944, foi imediatamente adotado pela marinha americana, para fins militares. Novas verses foram produzidas at 1952. 6.1.3 A participao da IBM

As mquinas de calcular mecnicas produzidas por empresas como a IBM no tinham linha de produo at a entrada dessas empresas no mercado de computadores propriamente dito. Eram equipamentos para auxiliar tarefas computacionais, que variavam desde as tabuladoras de Hollerith at tabuladoras para clculos cientficos como as produzidas por L.J. Comrie na Inglaterra ou Wallace J. Eckert nos Estados Unidos. Em 1935 a IBM comeou a produzir suas sries 602, 602A at 605, calculadoras baseadas em rels que produziam em altas velocidades como Babbage imaginou tabelas de vrios tipos, com alta confiabilidade. Uma posterior evoluo foi a possibilidade dessas mquinas poderem ser programadas atravs de painis de controle ('plugboards') para ler um carto, executar at 60 diferentes clculos aritmticos, e perfurar o resultados no prprio carto de leitura. Outras empresas como a Remington Rand produziram equipamentos semelhantes [Wil97]. Depois do sucesso do Mark I em Harvard, no qual teve grande participao com o laboratrio em Endcott, a IBM lanou-se na produo do Selective Sequence Electronic Calculator (SSEC), sob o comando de Frank Hamilton, que pertenceu ao grupo de Aiken, em Harvard. Terminado em 1947, atraiu um importante grupo de pesquisadores que buscavam o aprimoramento da capacidade de clculo e cujas solues apontavam para um conceito decisivo para os computadores: o de programa armazenado. O ltimo computador eletromecnico produzido foi o CPC, Card-Programmed Electronic Calculator, modelos I e II que finalizaram a srie 700 [Hur80].

6.2 O incio da era da computao eletrnica


Durante os anos de 1936 a 1939, John Vincent Atanasoff, com John Berry, desenvolveu a mquina que agora chamada de ABC (Atanasoff-Berry Computer), na Universidade de Iowa, EUA, como uma mquina dedicada especialmente soluo de conjuntos de equaes lineares na Fsica. Embora sendo um dos primeiros exemplos de
*

No confundir com um prottipo do computador EDASC, construdo na Universidade de Manchester em 1948, baseado no conceito de programa armazenado

103

calculadora eletrnica, o ABC propiciou o desenvolvimento dos primeiros conceitos que iriam aparecer nos computadores modernos: a unidade aritmtica eletrnica e a memria de leitura e gravao [IEEE95]. 6.2.1 Estados Unidos: ENIAC, EDVAC e EDSAC

No incio da Segunda Guerra, as necessidades de melhores tabelas de clculo para as trajetrias de tiros tornaram-se imperativas, pois os analisadores diferenciais estavam no seu limite. Nessa poca foi ento montado, na Moore School of Electrical Engineering, da Universidade da Pensilvnia (Filadelfia, EUA), um grupo de pesquisa para o desenvolvimento de projetos eletrnicos relacionados ao futuro radar. Entre eles, J. Presper Eckert, Joseph Chedaker e Kite Sharpless logo se envolveram na produo de circuitos eletrnicos usados como contadores. Eckert (1919-1995) e um pouco mais tarde John Mauchly (1907-1980), fsico, e Herman H. Goldstine, matemtico, acabaram por tornarem-se os principais protagonistas na construo do primeiro computador de uso geral que realmente funcionou como tal, o ENIAC (Electronic Numerical Integrator and Computer): esta mquina e a equipe que a projetou e construiu, sero responsveis por um grande salto no desenvolvimento dos computadores eletrnicos. Seu formato era em U, suas memrias tinham 80 ps de comprimento por 8,5 de largura, e cada um dos seus registradores de 10 dgitos media 2 ps. Ao todo possua 18.000 vlvulas. Executava desvios condicionais e era programvel, o que o diferenciava das outras mquinas construdas at a data. Sua programao era feita manualmente, atravs de fios e chaves. Os dados a serem processados entravam via carto perfurado. Os programas tpicos do ENIAC demoravam de meia hora a um dia inteiro para serem elaborados e executados. Em 1944 John von Neumann ingressou como consultor na equipe da Universidade da Pensilvnia. Os responsveis pelo projeto estavam interessados em melhorar a maneira como os programas eram desenvolvidos e iniciaram discusses a respeito do armazenamento de programas na forma de nmeros. Iniciaram assim um trabalho sobre projetos de computadores que foi fundamental nos 40 anos que se seguiram. Em 30 de junho de 1945, von Neumamm publicou o First Draft of a Report on the EDIVAC (Electronic Discrete Variable Automatic Computer), que estabeleceu o paradigma de projetos de computadores para vrias geraes seguintes de mquinas. Essa arquitetura ficou conhecida com o nome de arquitetura de von Neumann, e entre outras coisas inclua o conceito de programa armazenado *. O ENIAC comeou a operar em 1943, tendo sido terminado totalmente em 1946, encerrando suas operaes em 1955. A sada dos professores Eckert e Mauchly da equipe atrasou, no entanto, o desenvolvimento do projeto EDVAC, s concludo em 1952. Em 1946, Maurice Wilkes, da Universidade de Cambridge, visitou a Moore School para participar de uma conferncia sobre computadores. Ao regressar a Cambridge, decidiu iniciar um projeto para um computador baseado no princpio do programa armazenado,
*

Muitos dos pioneiros do desenvolvimento dos computadores acreditam que esse termo d um crdito exagerado ao trabalho de von Neumann, que escreveu as idias, e muito pouco aos engenheiros Eckert e Mauchly, que construram as mquinas. A polmica foi ruidosa e, em 1947, estes dois ltimos deixaram a Moore School.

104

chamado EDSAC (Electronic Delay Storage Automatic Calculator), que se tornou operacional em 1949. Foi o primeiro computador de grande porte, baseado no citado conceito, que entrou em operao. 6.2.2 A contribuio inglesa: o COLOSSUS

Enquanto isso, na Inglaterra, o grande esforo era decifrar o cdigo secreto de guerra germnico. Um grupo especial formado por cientistas e matemticos reuniu-se em Bletchley Park, um lugar entre as Universidades de Cambridge e Oxford, para tentar construir uma mquina capaz de decodificar o alfabeto produzido pela verso germnica de um dispositivo inventado nos Estados Unidos, o ENIGMA [Kah67]. A equipe era liderada pelo prof. T. H. Flowers, sendo o prof. M. H. A. Newman o responsvel pelos requisitos que levariam, em 1943, construo do computador digital eletrnico COLOSSUS *. O trabalho do grupo de Betchley foi enormemente influenciado pelos resultados sobre computabilidade obtidos por Alan Turing. Este trabalhava no departamento de comunicao criado pelo governo britnico em funo da guerra, com a misso de treinamento em lgica matemtica e logo alocado tambm para os esforos de decifrar o cdigo secreto alemo. O COLOSSUS acabou no sendo conhecido em sua poca por duas razes. A primeira no ter sido ele um computador para uso geral, mas sim projetado especialmente para decodificar mensagens secretas. A segunda: a existncia desta mquina somente foi revelada a partir de 1970, sendo que seus algoritmos de decodificao so ainda secretos. Ainda na Inglaterra, aps o fim da guerra, Turing uniu-se ao centro de pesquisas do National Physical Laboratory, onde rapidamente elaborou o projeto bsico do Automatic Computing Engine (ACE), que iniciou operaes em 1950. 6.2.3 Outras contribuies

Um importante aspecto do desenvolvimento dos computadores foi a produo de dispositivos chamados de 'memria'. Desde Konrad Zuse, a construo de computadores que pudessem ter seus programas armazenados preocupou os cientistas e foi um fator determinante nas primeiras arquiteturas. Das memrias mecnicas de Zuse, passando pelas memrias trmicas utilizadas somente experimentalmente de A. D. Booth, pelos sistemas de linha de retardo baseados em mercrio de Willian Shockley, da Bell aperfeioada por Presper Eckert utilizados no ENIAC, pelas memrias eletrostticas de Willians at os ncleos magnticos de ferrite, um rduo caminho foi percorrido. A memria de ncleos magnticos acabou preponderando, tendo sido utilizada primeiramente em uma mquina de teste no MIT e mais tarde no computador conhecido como Whirlwind. O uso das memrias de ncleo magntico aumentaram excepcionalmente o desempenho dos computadores, podendo ser consideradas como um divisor de guas no desenvolvimento dos mesmos. Importantes tambm nesse primeiro perodo foram duas grandes revolues tecnolgicas: o emprego de vlvulas para tornar o computador mais rpido, confivel e de uso geral, e o conceito de programa armazenado. Esta tcnica de usar uma memria de
*

Tornado operacional em 1944, decodificando mensagens para ajudar nos planos do desembarque do dia D, ainda nesse ano.

105

armazenamento assim como a transferncia de controle via condio, que permitiam parar e reiniciar o processamento a qualquer instante, abriu enorme perspectiva para a programao de computadores. O elemento chave dessa arquitetura era a unidade central de processamento, que permitia a coordenao de todas as funes do computador atravs de uma nica fonte. Em 1951, o UNIVAC I (Universal Automatic Calculator), construdo pela Remington-Rand, tornou-se o primeiro computador comercialmente disponvel que utilizava esses conceitos.

Figura 31: ENIAC, sua programao era feita com fios ("hard wired")

Figura 32:Colossus, da Inglaterra. Sua programao tambm era feita com fios.

Esta primeira gerao de computadores caracterizou-se pelo fato de que as instrues de operao eram produzidas para tarefas especficas. Cada mquina tinha um 106

programa em cdigo binrio diferente que indicava o fluxo das operaes. Isto dificultava a programao e limitava a versatilidade desses primeiros computadores.

Figura 33:da esquerda para a direita, Patsy Simmers, segurando uma placa do ENIAC, Gail Taylor, segurando uma placa do EDVAC, Milly Beck, segurando uma placa do ORDVAC, Norma Stec, segurando uma placa do BRLESC-I (ateno para o tamanho das placas)

Na figura que se segue h um pequeno resumo desses primeiros tempos da computao eletrnica, tomando como referncia o ensaio de Arthur W. Burks [Bur51b].

107

Hardware/Unidade Aritmtica
Dispositivos mecnicos e eletromecnicos Eletrnica (rdio)

Organizao do Computador e Programao

Analisador diferencial

Resistores

Plugboard (IBM)

Computador de Atanasoff ENIAC Crawford 1943-1946 Harvard Mark I

Linha de mercrio (radar)

Computadores de rels (Bell)

Linha de Mercrio de Eckert/Mauchly -----------------------Memria eletrosttica

Order Code e Projeto Lgico de von Neumann

Projetos preliminares de um computador com programa armazenado

Selectron

Tubo de Willians

IAS Whirlwind ILLIAC IBM 701 ....

EDVAC EDSAC UNIVAC I SEAC ....

Projeto final e construo 1946 - 1952

Figura 34: Desenvolvimento do hardware e software nos primeiros tempos da Computao

108

6.3 As primeiras linguagens


Seguindo as premissas iniciais de se destacar neste trabalho a evoluo dos conceitos e idias ao longo da Histria da Computao no se far aqui uma descrio exaustiva da evoluo das linguagens de programao. Depois de algumas consideraes tericas iniciais, sero vistas as motivaes e as primeiras tentativas de se estabelecer um cdigo que pudesse ser lido e processado pelos primeiros computadores. 6.3.1 Alguns aspectos tericos

Como foi visto, um dos pontos fundamentais do projeto formalista de Hilbert para a soluo de problemas matemticos era descobrir um procedimento efetivo (ou mecnico) para verificar a validade de proposies matemticas. Depois do Teorema de Gdel evidenciou-se que tal proposta irrealizvel, mas todos os estudos em torno desse projeto de Hilbert e dos resultados de Gdel propiciaram, entre outras coisas, uma adequada caracterizao do termo efetivamente computvel, atravs da Mquina de Turing e das funes lambda-definveis de Church e Kleene. Tornou-se claro o que um procedimento efetivo, tornando-se claro ao mesmo tempo o que um problema computvel. Um procedimento efetivo uma seqncia finita de instrues que podem ser executadas por um agente computacional, seja ele homem ou no. Propriedades: I. II. a descrio deve ser finita; parte de um certo nmero de dados, pertencente a conjuntos especficos de objetos, e espera-se que produza um certo nmero de resultados que mantenham relao especfica com os dados; supe-se que exista um agente computacional humano, eletrnico, mecnico, etc. que execute as instrues do procedimento; cada instruo deve ser bem definida; as instrues devem ser to simples que poderiam ser executadas por algum usando lpis e papel, em um espao de tempo finito.

III. IV. V.

Esse procedimento efetivo tambm chamado de algoritmo. Programas de computadores que terminam sua execuo, fornecido qualquer conjunto especfico de dados de entrada, so algoritmos. A descrio finita do algoritmo deve ser feita atravs de uma determinada linguagem. Essa linguagem algortmica deve pertencer a um subconjunto no ambguo de uma linguagem natural, tal como Francs ou Ingls, ou ser uma linguagem artificial construda para isso, como, por exemplo, as linguagens de programao (Fortran, Lisp, Ada, Cobol, Pascal, etc.). As frases da linguagem descrevero as operaes a serem executadas. A forma ou formato de procedimentos efetivos em uma linguagem algortmica qualquer especificada por um conjunto de regras chamado regras de sintaxe, cujas propriedades esto acima enumeradas [BL74]. Essa sintaxe refere-se aos programas corretamente escritos nela e o relacionamento

109

entre os smbolos e frases que ocorrem nesses programas. Alguns autores a dividem em concreta e abstrata [Mos92]. A concreta envolve: reconhecimento de textos (seqncias de caracteres) corretamente escritos de acordo com as especificaes da linguagem; a colocao dos textos, de maneira no ambgua, dentro das frases que compe o programa. A sintaxe abstrata molda as estruturas de frases do programa. Portanto a sintaxe refere-se forma dos programas: de que modo expresses, comandos e declaraes podem ser justapostos para compor um programa. Uma linguagem de programao torna-se assim, entre outras coisas, uma notao formal para a descrio de um algoritmo, entendendo-se por notao formal um simbolismo que no tenha as imprecises nem a variabilidade de uma linguagem natural, que possibilite rigor nas definies e demonstraes sobre os procedimentos. Uma linguagem de programao necessita ainda de outros requisitos. Deve ser universal, isto , que qualquer problema cuja soluo possa ser encontrada atravs de um computador pode ser escrito com ela *. Na prtica deve ser apta a resolver, no mnimo, os problemas da rea para a qual foi projetada . E uma caracterstica fundamental: ser implementvel em computador, isto , deve ser possvel executar qualquer procedimento bem formado na linguagem [LSSK79]. Uma linguagem de programao tambm possui uma semntica. A semntica de um programa ir depender exclusivamente do que se deseja causar objetivamente quando o programa for executado por um agente computacional, eletrnico ou no. Os computadores atualmente so mquinas complexas. Quando esto executando programas, luzes se acendem, cabeotes dos discos movem-se, corrente eltrica flui pelos circuitos, letras aparecem na tela ou so impressas, e assim por diante. Um programa controla todos esses fenmenos mediante sua semntica. E se so consideradas as linguagens de programao de alto nvel, que no controlam diretamente esses detalhes de ordem fsica, falar de semntica significa falar das caractersticas que tornam tais linguagens implementveis em qualquer computador, isto , quais as caractersticas da execuo do programa que so comuns a todas as implementaes. Portanto a semntica uma entidade abstrata: ela modela o que o programa quer causar quando executado, independentemente do seu uso nesse ou naquele computador. A semntica de uma linguagem de programao a mesma semntica de todos os programas escritos nela [Mos92]. A evoluo das linguagens de programao chegou at esses conceitos por caminhos e esforos muitas vezes paralelos. Alguns informatas buscam caminhos para projetar linguagens que combinem uma grande generalidade de usos (aplicaes matemticas e cientficas, grficas, comerciais, etc.) com simplicidade e eficincia. Isso levou ao desenvolvimento de diferentes paradigmas estilos e objetivos de programao como o imperativo, o funcional, o orientado a objeto, o lgico, etc. Outros buscaram e buscam caminhos para
*

Qualquer linguagem em que se possa definir uma funo recursiva ser universal. Uma linguagem com somente tipos numricos e arrays deve resolver naturalmente problemas numricos, por exemplo. A maioria dos livros ao falar de semntica usa a palavra behavior, de difcil traduo. Pode-se dizer que um conjunto de regras que determinam a ordem na qual as operaes do programa iro ser executadas, quais sero executadas primeiro e quando se encerraro.

110

expressar a sintaxe e a semntica, esta ltima talvez a parte mais importante dentro do assunto linguagens de programao e que levou ao surgimento de diversas linhas: a semntica algbrica, a denotacional, a de aes, etc. 6.3.2 Desenvolvimentos anteriores a 1940

Mas, antes de entrar nesse mundo das linguagens, de que forma eram anteriormente especificados os algoritmos? Os mais antigos algoritmos escritos que se conhecem so os da velha Mesopotmia. Eram seqncias de clculos sobre conjuntos particulares de dados e no uma abstrao * de procedimento como entendido na programao atual [Knu76]. Na civilizao grega, vrios algoritmos no triviais foram estudados, como por exemplo o de Euclides. A descrio era ainda informal. A notao matemtica comeou a evoluir efetivamente a partir dos sculos XIII e XIV e notaes para relaes funcionais tiveram um bom desenvolvimento. Na Computao, Babbage e Lady Lovelace elaboraram, entre outros, um programa para o clculo dos nmeros de Bernoulli [Mor61]. Era na verdade uma espcie de programa em linguagem de mquina, como nos primrdios dos computadores digitais na dcada de 1940. Em 1914, Leonardo Torres e Quevedo usaram uma linguagem natural para descrever um pequeno programa para seu autmato hipottico. Helmut Schreeyer fez uma descrio anloga em 1939 para a mquina que construa juntamente com Zuse. O prprio Alan M. Turing, para tratar do problema da indecidibilidade de Hilbert construiu uma linguagem muito primitiva para sua mquina. Nela s havia comandos para ler, testar uma condio e escrever smbolos sobre uma fita, movendo para a direita ou esquerda uma cabea de leitura e gravao. Conforme Knuth [KP80], as tabelas de Turing (como Alan Turing chamava sua linguagem) representaram a notao de mais alto nvel para uma descrio precisa de algoritmo que foram desenvolvidas antes da nossa histria comear exceto talvez pela notao-lambda de Alonzo Church (que representa um approach inteiramente diferente para o clculo) . 6.3.3 As primeiras tentativas

Nos primeiros tempos da computao propriamente dita os programas eram escritos em cdigo de mquina e colocados diretamente no computador por meio de cabos e fios. Por exemplo: 0000 0001 0110 1110 0100 0000 0001 0010 1100 0000 0000 1101
*

Uma abstrao um modo de pensar pelo qual nos concentramos em idias gerais ao invs das manifestaes especficas destas idias.(...) Na programao, a abstrao refere-se distino que fazemos entre: (a) o que um pedao de programa faz e (b) como ele implementado. Uma linguagem de programao em sentido prprio consiste de construes que so (em ltima instncia) abstraes do cdigo de mquina [Wat90]. Exemplos tpicos de abstraes so as funes e procedimentos de uma linguagem de programao.

111

Segundo Grace Murray Hopper *, como curiosidade, a frase mais freqente que ns ouvamos era que a nica maneira de se programar em um computador era em octal [Wex80]. Em 1946, junto com Howard Aiken, era assim que ela programava o Mark I. Percebeu-se claramente que os programas em cdigo de mquina eram extremamente difceis de editar e modificar, e quase impossveis de se compreender. A comunidade computacional logo entendeu que era necessrio inventar uma notao simblica para tornar os programas mais fceis de escrever. Nesta evoluo as instrues acima ficam com o formato: LOAD X ADD R1 R2 JUMPZ H Uma vez feito o programa dessa maneira, o programador o prepararia para ser executado, 'escrevendo' manualmente (em painis, atravs de um emaranhado de cabos e 'plugs') as instrues no correspondente cdigo de mquina. Este processo foi chamado de assembling. O que depois se queria fazer era com que a prpria mquina executasse essa operao. Mas mesmo quando programava com esses cdigos de operao mnemnicos (tambm chamados de linguagem de montagem), o programador ainda estava trabalhando em termos dos conjuntos de instrues da mquina, isto , os algoritmos eram expressos em termos de instrues muito primitivas (detalhes sobre registradores, endereos, saltos, etc.). Da a denominao linguagens de baixo nvel. A busca de linguagens que pudessem permitir que os algoritmos fossem expressos em termos anlogos idia elaborada na mente do programador fez com que aparecessem os primeiros compiladores e comeassem a surgir as chamadas linguagens de alto nvel . Claramente percebem-se duas principais tendncias nesses anos pioneiros: aqueles que procuravam saber o que era possvel implementar e os que estavam preocupados com o que era possvel escrever. Estes ltimos criaram estruturas conceituais iterao, tipos de dados, recursividade, etc. importantes no processo de programao e que foram depois objetos de estudo na Teoria da Computao. Naturalmente foram precisos muitos anos para que essas duas tendncias se juntassem para formar uma sntese adequada. 6.3.4 Konrad Zuse e seu Plancalculus

Depois de salvar o Z4 das bombas dos aliados e mudar-se para a pequena vila Hintesrtein nos Alpes, Konrad Zuse percebeu que ainda no existia uma notao formal para a descrio de algoritmos e comeou a trabalhar em uma. O resultado foi uma linguagem chamada Plankalkl (program calculus), uma extenso do clculo proposicional e de
*

Nome importante no desenvolvimento histrico das linguagens de programao. Ela desenvolveu programas para o Mark I, um dos precursores do computador moderno; esteve envolvida na construo do UNIVAC e trabalhou no primeiro compilador que se tem notcia, o A-2, e em uma das primeiras linguagens matemticas, originalmente chamada A-3 e depois MATH-MATIC. Em 1955 trabalhou na equipe que elaborou as primeiras especificaes para uma linguagem de uso comercial, originalmente chamada B-0, depois FLOW-MATIC, que forneceu inmeras caractersticas para o COBOL. O termo alto nvel refere-se semelhana que a linguagem tem com uma linguagem natural ou matemtica, opondo-se a baixo nvel, mais semelhante linguagem de mquina.

112

predicado de Hilbert. Em uma monografia sobre o Plankalkl, em 1945, Zuse comeava dizendo: A misso do Plancalculus fornecer uma descrio formal pura de qualquer procedimento computacional. O Plancalculus inclua alguns conceitos fundamentais da programao: tipos de dados, estrutura de dados hierrquicos, atribuio, iterao, etc. Ele pensou inclusive em usar o Plancalculus como base de uma linguagem de programao que pudesse ser traduzida por uma mquina. Pode-se resumir sua idia dizendo que o Plankalkl incorporou muitas idias extremamente importantes, mas faltou-lhe uma sintaxe amigvel para expressar programas em um formato legvel e facilmente editvel. Como complementao de seu trabalho desenvolveu algoritmos para ordenao, teste de conectividade de grafos, para aritmtica de inteiros (inclusive raiz quadrada) e at um jogo de xadrez, entre outros. Infelizmente a maior parte destas coisas permaneceu desconhecida at 1972, a no ser por alguns extratos aparecidos em 1948 e 1959, quando seu trabalho chamou a ateno de alguns leitores ingleses. interessante especular sobre o que teria acontecido se ele tivesse publicado tudo imediatamente; teriam as pessoas sido capazes de entender idias to radicais? [KP80]. 6.3.5 O diagrama de fluxos

Em Princeton, do outro lado do Atlntico, Herman H. Goldstine e John von Neumann estavam preocupados com o mesmo problema: como se poderiam representar algoritmos de uma maneira precisa, em uma linguagem de mais alto nvel que a de mquina. Ao desenvolver os projetos lgicos do computador EDVAC e da mquina do IAS (Institute for Advanced Study, da universidade de Princeton), von Neumann tinha tambm uma grande preocupao com a sua programao. Ele deixou um manuscrito que provavelmente o primeiro programa escrito para um computador com programa armazenado na memria *. O problema proposto o da classificao de uma srie de dados em ordem crescente. Von Neumann props o mtodo que ficou conhecido mais tarde como classificao por intercalao, at hoje um dos algoritmos mais usados para classificar dados na memria . J a aparecem alguns expedientes que prenunciam o surgimento das linguagens de montagem (linguagens simblicas, mnemnicas, muito prximas linguagem binria das mquinas) como os smbolos para denotar grandezas ou o conceito bsico de alocao dinmica de memria . A descrio termina com uma anlise do tempo de execuo muito semelhante s anlises difundidas por Donald Knuth.

Uma histria e anlise desse manuscrito esto em um artigo feito por Knuth em 1970, intitulado von Neumanns First Computer Program Na realidade o manuscrito contm somente uma parte da codificao do mtodo, que a parte do processo de duas sequncias j em ordem Sem entrar em detalhes mais tcnicos, significava que a atribuio de endereos era feita em relao a um endereo inicial arbitrrio, a ser preenchido mais tarde, conseguindo-se o efeito de relocao manual do cdigo, de modo a ser usado como uma subrotina aberta (outro conceito que exige maior conhecimento tcnico sobre sistemas operacionais e programao/arquitetura de computadores)

113

Figura 35: Um exemplo de um diagrama de fluxos

Para o projeto do IAS, von Neumann e Goldstine compuseram trs volumes (1947/48) intitulados Planning and coding of problems for an electronic computing instrument. O primeiro volume dedicado metodologia da programao, o segundo volume traz vrios exemplos de programas e o terceiro volume dedicado construo de subrotinas reutilizveis e construo de bibliotecas destas subrotinas.

114

Figura 36: Computador IAS, 1952

Eles propuseram uma representao pictrica, atravs de caixas unidas por setas, que chamaram de fluxogramas. Descreveram fluxogramas que continham uma caixa denominada caixa de anotao (especificao). Nessa caixa descreviam-se certos fatos sobre o resultado de uma computao (o efeito por ela provocado). O contedo dessa caixa deveria ser confrontado com as operaes descritas pelo fluxograma, possibilitando uma verificao da consistncia entre o fluxograma e as intenes do programador expressas atravs das anotaes. Com von Neumann e Goldstine encontra-se tambm a primeira referncia corretude de programas. A nfase era colocada no poder de clculo e no na expressividade das estruturas como Zuse e esse trabalho foi largamente difundido entre as pessoas envolvidas com computadores na poca. Tal fato, acompanhado da excelente qualidade de apresentao e pelo prestgio de von Neumann, significaram que seu trabalho teve um enorme impacto, tornando-se fundamento para tcnicas de programao em todo o mundo. O conceito matemtico de igualdade foi substitudo pelo de atribuio [KP80]. 6.3.6 A contribuio de Haskell

Haskell B. Curry, contemporneo de Goldstine e von Neumann, aps uma experincia com um programa complexo no ENIAC, sugeriu uma notao mais compacta que a deles. Na prtica no obteve sucesso pela maneira estranha com que analisava e dividia os problemas. O principal ponto de interesse no trabalho de Curry, no entanto, no foi a sua linguagem de programao, mas os algoritmos que analisou para converso de parte desses em cdigo de mquina. Com isso proporcionou uma descrio recursiva de um procedimento para converter expresses aritmticas claras em um cdigo de mquina apropriado, sendo por isso a primeira pessoa a descrever a fase de gerao de cdigo de um compilador [KP80].

115

6.4

Interpretadores algbricos e linguagens intermedirias

Em 1951, promovidas pela Marinha americana, houve uma srie de trs conferncias, e naquela que tratava sobre manipulao de dados e computao automtica apareceu um trabalho de John Mauchly, o Short Order Code. Codificado para o computador BINAC, em 1949, por William F. Schmitt, foi recodificado pelo mesmo em 1950 para o UNIVAC e usava dois dgitos para representar alguns smbolos, ao invs do usual cdigo binrio. Era na verdade uma espcie de interpretador algbrico: o programa percorria cada linha de representao de cdigo, da direita para a esquerda, desviava para as chamadas subrotinas, executava-as e ia para a prxima instruo. Arthur W. Burks e colegas, na Universidade de Michigan, investigando o processo de passar alguns problemas de processamento de dados descritos em uma linguagem comum para a linguagem interna de um computador, esboaram uma linguagem intermediria que seria o passo anterior de uma linguagem interna do computador, e que tinha um alto nvel de abstrao [Bur51a]. Heinz Rutishauser, colaborador de Zuse no Z4, publicou em 1952 um trabalho descrevendo um computador hipottico e uma linguagem algbrica simples, junto com os fluxogramas de von Neumann para o que seriam dois compiladores * para essa linguagem. Um para decodificar todos os loops enquanto o outro produzia cdigo compacto atravs de registradores de ndice. Como o Short Code, o programador deveria reservar manualmente as localizaes de memria para variveis e constantes. Um trabalho semelhante apareceu na Itlia, na tese de dissertao de Corrado Bhm, que desenvolveu uma linguagem algbrica e o primeiro compilador para ela na prpria linguagem, que reconhecia precedncia de operaes.

6.5

Os primeiros compiladores

Conforme Knuth e Trabb [KP80], o termo compilador no era ainda utilizado nessa poca. Na verdade falava-se sobre programao automtica. No incio da programao em linguagem de mquina foram desenvolvidas subrotinas de uso comum para entrada e sada, para aritmtica de ponto flutuante e funes transcendentais. Junto com a idia de um endereamento realocvel pois tais subrotinas seriam usadas em diferentes partes de um programa foram criadas rotinas de montagem para facilitar a tarefa de uso das subrotinas e de endereamento relativo, idia desenvolvida por Maurice V. Wilkes. Para isso foi inventada uma pseudo linguagem de mquina. Uma rotina interpretativa iria processar essas instrues, emulando um computador hipottico [Gol72] [Knu69]. Esse o sentido do termo compilador at aqui usado. AUTOCODE foi o primeiro compilador real, que tomava uma declarao algbrica e a traduzia em linguagem de mquina. Seu desconhecido autor, Alick E. Glennie, das foras armadas da Inglaterra, declarava em Cambridge, em 1953, sua motivao para elabor-lo: A dificuldade da programao tornou-se a principal dificuldade para o uso das
*

Os termos interpretador e compilador na linguagem da computao tm um sentido tcnico especfico, que na poca citada ainda no correspondiam ao atual significado.

116

mquinas. Aiken expressou sua opinio dizendo que a soluo para esta dificuldade deveria ser buscada pela construo de uma mquina especial para codificar(...) Para tornar isso fcil deve-se elaborar um cdigo compreensvel. Tal coisa somente pode ser feita melhorando-se a notao da programao [KP80]. John Backus [Wex80] discute essa distino que Knuth faz, citando J. Halcomb Laning, Jr. e Niel Zierler como os inventores do primeiro compilador algbrico, para o computador Whirlwind. Como esta, so muitas as discusses ainda hoje sobre quem foi o pioneiro no assunto. De qualquer maneira esses primeiros sistemas denominados genericamente de programao automtica (acima citada) eram muito lentos e no fizeram muito sucesso, embora tivessem sido fundamentais para preparar a base do desenvolvimento que se seguiu. Este veio com o A-0, agora sim o primeiro compilador propriamente dito, desenvolvido por Grace Murray Hopper e equipe, aprimorado para A-1 e A-2 subseqentemente. O prximo passo seria o A-3, desenvolvido em 1955, produzido ao mesmo tempo com o tradutor algbrico AT-3, mais tarde chamado MATH-MATIC. Em 1952 a IBM construa o computador 701 e em 1953 foi montada uma equipe liderada por John Backus para desenvolver um cdigo automtico que facilitasse a programao. O resultado foi o Speedcoding. Backus tornou-se uma das principais figuras na histria da evoluo das linguagens de programao, tendo um papel fundamental no desenvolvimento dos grandes compiladores que viriam a partir do ano de 1955 como o FORTRAN e o ALGOL, alm do estabelecimento da moderna notao formal para a descrio sinttica de linguagens de programao, denominada BNF, Backus Normal Form.

6.6 A figura de von Neumann

Figura 37: John von Neumann

117

Assim como no se pode falar de Computabilidade, ou sobre a Teoria da Computao, ou ainda sobre os Fundamentos da Computao, sem deixar de citar nomes como Turing e Church, tambm em relao ao advento do computadores, a partir da dcada de 1940, no se pode deixar de falar da figura de Jnos Louis von Neumann (1903 1957). Este hngaro conhecido como Jancsi, uma forma diminutiva de seu prenome Jnos (depois de naturalizado americano seria tratado pelo apelido Johnny), era no final de sua vida um dos mais poderosos homens em cena no comando da poltica americana com relao s cincias. Mas esta foi somente uma das muitas qualidades que o distinguiu nos diferentes pases onde viveu e nos variados campos da inteligncia em que exerceu sua atuao. Tido como brilhante desde sua infncia (falava grego com seu pai aos seis anos de idade [Die81]), entrou para a universidade de Budapeste em 1921 para estudar Matemtica. Adotou a prtica, pouco ortodoxa!, de ir universidade somente no fim dos cursos, para prestar exames, saindo-se sempre muito bem. Enquanto isso, entre 1921 e 1923, na universidade de Berlin, estudou Qumica, tendo entrado em contato com nomes ilustres, como Albert Einstein, Fritz Haber e outros cientistas hngaros, como Denis Gabor, Leo Szilard e Eugene Wigner. Em 1923 dirigiu-se a Zurich, para estudar Engenharia Qumica, formando-se em 1925. Doutorou em Matemtica, no ano de 1926, pela Universidade de Budapeste, com uma tese sobre a Teoria dos Conjuntos (com 20 anos, estimulado por um dos mais famosos matemticos do sculo XX, David Hilbert, enunciou uma definio sobre nmeros que ainda hoje utilizada). Ainda fez um ps-doutorado na prestigiosa Universidade de Gttingen, onde estudou sob a direo de Hilbert, no perodo de 1926 a 1927. Tornou-se um dos membros da elite dos fsicos revolucionrios da mecnica quntica, e rapidamente ganhou grande reputao pelos seus trabalhos na lgebra (como aluno de Hilbert foi uma das estrelas do formalismo), Mecnica Quntica e Teoria dos Conjuntos. Convidado nos anos 30 a visitar a universidade de Princeton, foi chamado para ser um dos seis professores de Matemtica que formariam parte do recm-inaugurado Instituto de Pesquisas Avanadas (os outros eram J. W. Alexander, A. Einstein, M. Morse, O. Veblen, J von Neumann e H. Weyl), cargo que levou at o fim de sua vida.[Asp90]. Conheceu Kurt Gdel (que como ele, naturalizou-se americano durante a 2a guerra), e Church, orientador, naquela poca, da tese de doutoramento de Turing. Tomou conhecimento da publicao deste, On Computable Numbers with an Application to the Entscheidungsproblem, e convidou-o para trabalhar como seu assistente, pois estava interessado em sua idia, que envolvia os conceitos de um projeto lgico para uma mquina universal. Turing, no entanto, preferiu retornar a Cambridge e, um ano mais tarde, envolver-se-ia na construo do computador Colossus, em Bletchley Park, na Inglaterra. O interesse de von Neumann por computadores encaminhou-se rapidamente por uma vertente diferente daquela seguida pelos seus colegas. Percebeu o potencial da nova mquina para soluo matemtica de problemas e no somente para elaborao de tabelas. Durante a guerra, os seus conhecimentos em hidrodinmica, balstica, meteorologia, teoria dos jogos, e estatstica, foram colocados em uso em vrios projetos. Esse trabalho levou-o a perceber que poderiam ser usados dispositivos mecnicos para computar clculos e, embora se diga que seu primeiro envolvimento com um computador foi atravs do ENIAC, de fato nessa poca ele estava com Howard Aiken, em Harvard, no projeto do Mark I (ASCC). Sua 118

correspondncia em 1944 mostra seu interesse no somente pelo trabalho de Aiken, mas tambm com os computadores baseados em rels, de George Stibitz, e pelas pesquisas de Jan Schilt no Watson Scientific Computing Laboratory da Universidade de Columbia. No fim da II Guerra von Neumann tornou-se consultor, servindo a numerosos comits com sua prodigiosa habilidade de rapidamente ver a soluo de problemas. Ele tinha uma grande capacidade de aglutinar ao seu redor cientistas muitas vezes separados por causa de exigncias de segredo. Movia-se confortavelmente entre o pessoal de Los Alamos (National Laboratory e Manhattan Project) assim como entre os engenheiros da Moore School of Electrical Engineering, da Universidade de Pensilvnia, que estavam construindo o ENIAC. Uma combinao de diferentes desenvolvimentos cientficos conduziram inveno do ENIAC: novas tecnologia de vlvulas, lgica booleana, as idias de Babbage-Lovelace, as teorias de controle via retroalimentao (feedback), etc., e von Neumann era talvez o nico que conhecia sobre todos estes temas, alm de politicamente dar-se bem com as sociedades de Princeton, Los Alamos e Washington. No projeto Manhattan, trabalhou juntamente com Oppenheimer, Fermi, Teller, Bohr e Lawrenceand, que, entre outros, construram a bomba atmica. [Ula80] [Gol72]. 6.6.1 O conceito de programa armazenado

Quando se terminou o ENIAC, era tarde para utilizar tal equipamento no esforo de guerra, mas certamente foi possvel realizar o objetivo dos seus inventores: um clculo balstico, que poderia tomar vinte horas de um especialista, seria agora feito pela mquina em menos de 30 segundos. Pela primeira vez a trajetria de um mssil poderia ser calculada em menos tempo do que levava o mssil real para atingir seu alvo. O primeiro problema a ser resolvido por essa mquina foi um ensaio de clculo para a bomba de hidrognio, ento sendo projetada.

119

Figura 38: Von Neumann e o computador IAS

Von Neumann tinha se unido ao grupo em meados de 1944, atravs do matemtico Herman H. Goldstine *, como consultor especial. Seu gnio para questes relacionadas ao pensamento formal, sistemtico e lgico foi aplicado s propriedades daquela imensa mquina de 17.000 vlvulas, 70.000 resistores e 10.000 capacitores. Os problemas relativos engenharia eram ainda imensos, mas estava se tornando claro que o componente no-fsico, a codificao, aquilo que estabelecia a operao da mquina, era igualmente difcil e importante. At o aparecimento do transistor, o que ocorreu alguns poucos anos depois, o ENIAC representava o limite fsico daquilo que poderia ser feito atravs de um grande nmero de chaves e conexes. Em 1945, o aprimoramento possvel no poder computacional era um melhoramento na estrutura lgica da mquina, e von Neumann era provavelmente o nico homem, a oeste da equipe inglesa de Bletchley Park (que tinha construdo o computador COLOSSUS para decifrar o cdigo germnico de guerra), preparado para compreender os mecanismos lgicos subjacentes no primeiro computador digital. Parte da razo pela qual o ENIAC era capaz de operar rapidamente estava em que os caminhos seguidos pelos impulsos eltricos eram estabelecidos dentro do equipamento. Esta rota eletrnica era a materializao das instrues de mquina que transformavam os dados de entrada em solues de problemas. Diferentes tipos de equaes poderiam ser resolvidas, e a performance dos clculos poderia ser alterada pelos resultados de

A partir desse momento deu-se o incio de uma grande amizade entre os dois.

120

subproblemas *. Mas o que era ganho no poder de clculo e velocidade era perdido na flexibilidade. Um srio obstculo consistia na necessidade da programao externa, atravs de painis e cabos de conexo para a soluo de um determinado problema, um procedimento que poderia levar vrios dias . Aps a entrada de von Neumann na equipe percebeu-se que o ENIAC no seria a ltima palavra em termos de mquinas calculadoras, mas sim que era o prottipo, ainda imperfeito, de uma nova categoria de mquinas. Antes mesmo de estar terminado, seus construtores j estavam elaborando o projeto de seu sucessor, e von Neumann compreendeu, daquelas discusses com seus colegas, que se estava falando de uma mquina de uso geral. Na mesma poca, a Universidade de Pensilvnia celebrou um contrato suplementar para a construo do EDVAC, proposta um pouco antes por Mauchly e Eckert, cujas caractersticas eram ainda um tanto vagas. O novo projeto despertou enorme interesse em von Neumann, que comeou a participar de reunies relativas ao projeto, juntamente com Eckert, Mauchly, Goldstine e outros. Conforme [Kow96], um fator decisivo para viabilizar o projeto de uma nova mquina foi a idia de Eckert de utilizar linhas de retardo para implementar elementos de memria de custo muito mais baixo do que se fossem utilizadas vlvulas. Outro resultado das reunies com a equipe do projeto e da freqente troca de correspondncia, foi a produo de um documento descrevendo os detalhes da organizao da nova mquina. Von Neumann ficou encarregado de escrever o First draft of a report on the EDVAC (1945), documento que nunca passou da fase de rascunho (foi publicado na ntegra somente anos mais tarde, com forma ligeiramente editada). Existem controvrsias, alimentadas por nomes como Randell, Rosen, Stern e Wilkes, sobre quem teria sido o primeiro a propor o conceito de programa armazenado. O trabalho terico de Turing, com o qual von Neumann estava familiarizado, j indicava essa possibilidade. Por outro lado existem referncias bastante obscuras e ambguas, em fontes anteriores ao documento de von Neumann, alm das afirmaes posteriores de Eckert e Mauchly. No h dvida de que a idia de programa armazenado estava no ar, e bastante provvel que tenha sido sugerida por mais de uma pessoa. Apesar da notoriedade dessa controvrsia, no parece que sua importncia seja mais que simblica. Independentemente de quem tenha sido o primeiro a sugerir a idia de programa armazenado na memria, o fato que o documento redigido por von Neumann a primeira descrio minuciosa e quase completa da arquitetura de um computador desse tipo, com o repertrio de operaes que permitiriam a utilizao plena de seus recursos. Embora resultado de vrias reunies, o fato de von Neumann ter sido consultor no projeto e encarregado de sua redao indica o peso da sua contribuio. Depoimentos de colaboradores indicam que o projeto lgico do computador deve-se principalmente a ele, enquanto Eckert e Mauchly foram os principais
* O ENIAC estava habilitado de acordo com a idia de Babbage, em seu Engenho Analtico, pela qual ele poderia ser

reprogramado para solucionar diferentes equaes no alterando a mquina, mas a seqncia dos cartes de entrada.

A origem do ENIAC como um dispositivo voltado para um projeto balstico era parcialmente responsvel por esta pouca flexibilidade. No era a inteno dos engenheiros da Moore School construir uma mquina universal. O contrato estabelecido especificava claramente que eles deveriam criar um novo tipo de calculador de trajetrias.

121

responsveis pelo projeto de circuitos de alta velocidade, linhas de retardo e outros detalhes fsicos, contribuies igualmente fundamentais [Kow96]. 6.6.2 A arquitetura de von Neumann

O relatrio de von Neumann ficou incompleto, mas sua leitura instrutiva. Muitas idias continuam vlidas at hoje: a separao entre arquitetura lgica e fsica, a diviso do projeto em unidades de controle, aritmtica, memria, entrada e sada, precursoras de todos os projetos posteriores. Alm disso, devido ao interesse nos trabalhos relativos a sistemas neurais de McCulloch e Pitts, ele descreveu vrios dispositivos do computador fazendo analogia com o sistema nervoso (mesmo porque na poca no existia ainda uma linguagem adequada para tais descries). Von Neumann, em um nvel terico, estava intrigado com algumas aparentes semelhanas na organizao e funcionamento paralelo da mente e dos computadores, o que poderia levar a pensar em teorias lgico-formais que abrangessem tanto um quanto outro. De alguma maneira, pensava, esses mecanismos poderiam evoluir para algum tipo de extenso intelectual. Com o fim da guerra em 1945, iniciaram-se gestes para construo de outro computador para aplicaes cientficas em geral, com o apoio do IAS e da RCA(Radio Corporation of America), assim como da Marinha e Exrcito. O projeto foi descrito em um documento bsico, composto de duas partes, onde a primeira a mais fundamental, referente ao projeto lgico. Conjuntamente com a descrio incompleta do EDVAC, esse esforo constituiu a inspirao para a elaborao da arquitetura que foi, e continua sendo, modelo de quase todos os projetos de computadores subsequentes:a arquitetura de von Neumann. A expresso parece ter sido usada pela primeira vez por J. Backus, em 1977, durante o recebimento do Prmio Turing da ACM, em palestra intitulada Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Nela criticava o fato de que aps mais de 30 anos da sua introduo, as arquiteturas de von Neumann ainda eram dominantes e exerciam enorme influncia sobre o paradigma imperativo das linguagens de programao mais utilizadas, impedindo o desenvolvimento de outros modelos *. No entanto pode-se afirmar (...) que a estrutura lgica introduzida nos projetos do EDVAC e da mquina IAS constitui o princpio de funcionamento de computadores digitais at hoje, apesar do progresso tecnolgico que nos separa daquela poca. Na realidade, no parece provvel que os conceitos bsicos de arquitetura de von Neumann sejam abandonados em futuro prximo. Esta a opinio, por exemplo, de Patterson (Patterson, D. A., in Microprocessors in 2020, Scientific American 273, 3, 1995, p. 48-51), um dos cientistas que mais contriburam para a concepo de modernos circuitos integrados [Kow96].

A expresso usada por Backus tornou-se popular e passou a denotar, de maneira genrica, o fato de que a eficincia de processamento das mquinas com a concepo introduzida por von Neumann limitada por problemas de comunicao entre a memria e as outras unidades. interessante notar que no documento em que descreve o EDVAC, o prprio von Neumann utiliza a palavra gargalo quando comenta as dificuldades de projeto e funcionamento de memria [Kow96].

122

7 A revoluo do hardware e do software


Os primeiros computadores da dcada de 1940 possuam somente dois nveis de linguagem de programao: o nvel da linguagem de mquina, no qual toda a programao era feita, e o nvel da lgica digital, onde os programas eram efetivamente executados. Com Maurice V. Wilkes, em 1951, na Universidade de Cambridge, surgiu a idia de se projetar um computador de trs nveis, a fim de se simplificar o hardware. Essa mquina, conhecida como EDSAC (Electronic Delay Storage Automatic Calculator), tinha um programa denominado interpretador, armazenado permanentemente, cuja funo era executar os programas em linguagem de mquina. O hardware assim poderia ser simplificado: teria apenas que executar um pequeno conjunto de microinstrues armazenadas *, o que exigia menos circuitos eletrnicos. A partir da comearam a evoluir as linguagens e as arquiteturas das mquinas.

7.1 Da segunda gerao de grandes computadores aos dias de hoje


A segunda gerao (1956 - 1963) foi impulsionada pela inveno do transistor (1948) e em 1956 j se produziam computadores com esta tecnologia. Apareceram tambm os modernos dispositivos, tais como as impressoras, as fitas magnticas, os discos para armazenamento, etc. Os computadores passaram a ter um desenvolvimento rpido, impulsionados principalmente por dois fatores essenciais: os sistemas operacionais e as linguagens de programao. Os circuitos integrados propiciaram um novo avano e com eles surgiram os computadores de terceira gerao (1964 - 1970). As tecnologias LSI, VLSI e ULSI abrigam milhes de componentes eletrnicos em um pequeno espao ou chip, iniciando a quarta gerao, que vem at os dias de hoje. Os atuais avanos em pesquisa e o projeto de novas tecnologias para os computadores esto possibilitando o surgimento da quinta gerao. Dois avanos que configuram um divisor de guas so o processamento paralelo, que quebrou o paradigma de von Neumann, e a tecnologia dos supercondutores.

7.2 O desenvolvimento das linguagens


Vrias linguagens, muitas delas conceitualmente diferentes entre si, foram surgindo e sendo aprimoradas, incorporando-se umas em outras. Com algumas poucas excees, o projeto de cada linguagem foi influenciado pela experincia em linguagens anteriores. Merecem ateno especial, pelo seu pioneirismo e pelos novos paradigmas que introduziram, as linguagens alto nvel FORTRAN e LISP.

As instrues do programa em linguagem de mquina seriam convertidas em conjuntos dessas microinstrues, que ento so executadas. Large Scale Integration, Very Large Scale Integration, Ultra Large Scale Integration.

123

Com relao ao FORTRAN, em 1954 realizou-se um simpsio sobre computao automtica *, e seu maior evento foi a apresentao do compilador algbrico de Laning e Zierler (ver Os primeiros compiladores). Foi o primeiro software que permitiu como entrada de dados um cdigo algbrico elegante, embora limitado. Nesse meio tempo John Backus j montara um grupo de pesquisa dentro da IBM para trabalhar em um projeto sobre programao automtica, a fim de responder a uma questo fundamental: (...) pode uma mquina traduzir uma linguagem matemtica abrangente em um conjunto razovel de instrues, a um baixo custo, e resolver totalmente uma questo? [Wex80]. Em novembro de 1954 a equipe de Backus tinha criado o IBM Mathematical FORmula TRANslation System, o FORTRAN. O primeiro pargrafo da apresentao desse trabalho enfatizava que os sistemas anteriores ofereciam duas escolhas: ou uma fcil codificao e uma execuo lenta do programa ou uma laboriosa codificao com rpida execuo, mas o FORTRAN propiciava o melhor das duas opes [KP80]. Com o FORTRAN apareceram as expresses simblicas, subprogramas com parmetros, mas principalmente ocorreu a primeira tentativa de se definir rigorosamente a sintaxe de uma linguagem de programao. Um pouco mais tarde surgiu a notao BNF para a descrio sinttica de uma linguagem de programao. A histria do LISP remonta a Turing e Church. Pela anlise de Turing nos anos de 1936 e 1937, aps seu famoso artigo sobre o dcimo problema de Hilbert, o clculo-lambda de Church, apesar da sua sintaxe simples, era suficientemente poderoso para descrever todas as funes mecanicamente computveis, ou seja, pode ser visto paradigmaticamente como uma linguagem de programao. No clculo-lambda, muitos problemas de programao, especificamente aqueles referentes s chamadas de procedimento, esto em sua forma mais pura, e isto influenciar diretamente linguagens como LISP e Algol [Bar84]. Em 1955 e 1956 E.K. Blum, no U.S. Naval Ordinance Laboratory desenvolveu uma linguagem completamente diferente das demais, ADES (Automatic Digital Encoding System), baseada na teoria das funes recursivas e no esquema desenvolvido para elas por Kleene. Foi a primeira linguagem declarativa, no sentido de que o programador estabelece as relaes entre as variveis quantitativas sem explicitamente especificar a ordem de avaliao (mais frente se falar sobre este paradigma de programao). Aparece agora a figura de John McCarthy, matemtico, um dos primeiros a trabalhar no tema de Inteligncia Artificial. Juntamente com Marvin Minsky iniciou um grande projeto nessa rea. Estava procurando desenvolver uma linguagem algbrica para processamento de listas, preocupado com o problema de como representar informaes da realidade por meio de sentenas escritas em uma linguagem formal adequada, e de como criar um programa que executasse fazendo inferncias lgicas. Surgiu ento o LISP, uma linguagem que pode ser utilizada como um formalismo para descrio de algoritmos, para escrever programas e provar propriedades de algoritmos, sendo adequada computao simblica e inteligncia artificial. Sobretudo com LISP pode-se visualizar melhor um importante conceito na computao moderna que o uso de estruturas de dados como objetos abstratos. um dos
*

Aparece aqui novamente este termo, utilizado por Knuth [KP80] e John Backus [Wex80] e, de acordo com este ltimo significava naqueles primeiros tempos para muitos simplesmente escrever cdigos mnemnicos e endereo simblico, para outros o simples processo de acessar subrotinas de uma biblioteca e inserir nelas os endereos dos operandos. A maior parte dos sistemas de programao automtica eram programas de montagem ou conjuntos de subrotinas ou os sistemas interpretativos (...)[Wex80].

124

aspectos centrais dessa linguagem, comparada a como a Matemtica usa os nmeros naturais como entidades abstratas. Nos incios da dcada de 1960, fruto do trabalho de americanos e europeus, surgiu uma linguagem projetada para representar algoritmos ao invs de se escrever programas simplesmente, o Algol-60. Ela implementava o conceito de estrutura de blocos, onde variveis, procedimentos, etc., poderiam ser declarados onde quer que o programa os necessitasse. Algol-60 influenciou profundamente muitas linguagens que vieram depois e evoluiu para o Algol-68. PL/I surgiu como uma tentativa de se projetar uma linguagem de uso geral reunindo caractersticas de linguagens para aplicaes numricas como FORTRAN e Algol e para processamento de dados comerciais. Ela inovou ao permitir a construo de cdigo de baixo nvel para o controle de excees e o conceito de processamento concorrente, entre outros. O resultado foi algo anmalo, complexo e incoerente, de difcil implementao. Foi a linguagem Pascal entretanto que se tornou a mais popular das linguagens do estilo Algol, por ser simples, sistemtica e facilmente implementvel nos diferentes computadores. O Pascal, junto com o Algol-68, est entre as primeiras linguagens com uma ampla gama de instrues para controle de fluxo, definio e construo de novos tipos de dados. Ada, que veio depois do Pascal, introduziu o conceito de pacotes e permite a construo de grandes programas com estrutura modular. Podem-se discernir na histria das linguagens certas tendncias. A primeira foi a de perseguir altos nveis de abstrao. Os rtulos simblicos e mnemnicos das linguagens de montagem abstraem cdigos de operao e endereos. Variveis e atribuio abstraem acesso a um endereo de memria e atualizao. Estruturas de dados abstraem formas de armazenamento. Estruturas de controle abstraem desvios. Procedimentos abstraem subrotinas. E assim por diante. Outra tendncia foi a proliferao dos paradigmas. A maioria das linguagens mencionadas at agora so imperativas, caracterizadas por comandos que atualizam variveis. A estrutura das linguagens imperativas induzida pelo hardware, com preocupao de que os dados trafeguem o mais rapidamente possvel. Da alguns de seus aspectos relevantes: seqncia de comandos, atribuio, controles (loopings), etc. ainda o paradigma dominante. J as linguagens que seguem o paradigma funcional (tambm conhecidas como declarativas), como o LISP, tem como caractersticas a clareza e a busca de um maior poder expressivo, procurando manter a maior independncia possvel do paradigma de von Neumann, que caracteriza as linguagens imperativas *. Buscam uma transparncia referencial e a no ocorrncia de efeitos colaterais nas suas instrues. Em LISP no h o conceito de estado dado por uma atribuio , memria, seqncia de instrues, etc., procurando-se tornar mais visvel o uso das funes. Nas linguagens imperativas as funes dependem de estados internos, fora de seu contexto ( x := x + argumento), com a produo de efeitos colaterais (alterao de valores, impresso, etc.). LISP foi a ancestral das linguagens funcionais que
*

O paradigma ou arquitetura de von Neumann refere-se ao conceito de programa armazenado, conforme documento apresentado por Neumann em junho de 1945 sobre o EDVAC. As linguagens imperativas, preocupadas com performance de execuo, tm em em conta o trnsito dos dados entre a unidade central de processamento e os dispositivos onde esto armazenadas instrues e informaes .

125

culminaram atualmente em linguagens como Miranda, ML e Haskell, que tratam funes como valores de primeira classe.

Figura 39: Gargalo de von Neumann

Smalltalk uma linguagem baseada em classes de objetos. Um objeto uma varivel que pode ser acessada somente atravs de operaes associadas a ele. Smalltalk um exemplo de uma linguagem que segue o paradigma de orientao a objeto. Simula foi um ancestral de tais linguagens. importante reparar que a notao matemtica em sua generalidade no facilmente implementvel. No entanto muitos projetistas de linguagens quiseram explorar subconjuntos da notao matemtica em linguagens de programao. Surgiram ento tentativas de se construir uma linguagem lgica, isto , baseada em um subconjunto da lgica matemtica. O computador programado para inferir relacionamentos entre valores, ao invs de computar valores de sada a partir de valores de entrada. Prolog popularizou a linguagem lgica. Em sua forma pura fraca e ineficiente, tendo sido alterada para incluir caractersticas no lgicas e tornar-se mais amigvel como linguagem de programao. No incio da dcada de 1990 ocorreu uma difuso intensa do paradigma da orientao * a objeto . Este paradigma esteve em gestao por cerca de 30 anos e as novas tecnologias como a Internet, as necessidades geradas pela novas arquiteturas, tais como a de cliente-servidor e a do processamento distribudo, coincidiam com o paradigma da orientao a objeto: encapsulamento, mensagem, etc. O crescimento da Internet e o comrcio eletrnico introduziram novas dimenses de complexidade no processo de desenvolvimento de programas. Comearam a surgir linguagens que buscam superar esses novos desafios de desenvolvimento de aplicaes em um contexto heterogneo ( arquiteturas de hardware incompatveis, sistemas operacionais incompatveis, plataformas operando com uma ou mais interfaces grficas incompatveis, etc.). Apareceram C++ e linguagens como Eifell, Objective C, Cedar/Mesa (elaborada pela Xerox, para fazer pesquisa de dados), Delphi (uma evoluo da linguagem Pascal) entre outras. E, o prximo passo ou um paradigma completamente novo [GM95], surge a linguagem JAVA.
*

Falando de uma maneira mais tcnica e bastante genrica, significa que o foco da ateno do programador recai mais nos dados da aplicao e nos mtodos para manipul-los do que nos estritos procedimentos. Em termos gerais significa o partilhamento de uma aplicao em duas. A interface do usurio e a maioria dos programas executada no cliente, o qual ser provavelmente uma estao de trabalho ou um PC de alta performance. Os dados da aplicao residem no servidor, provavelmente em um banco de dados de um computador de grande porte. Desta maneira mantm-se os dados onde podem ser melhor protegidos, atualizados, salvos, enquanto que o poder computacional fica distribudo diretamente pelas mesas de trabalho dos clientes.

126

A origem da Java est ligada a um grupo de pesquisa e desenvolvimento da Sun Microsystems formado em 1990, liderado por Patrick Naughton e James Gosling, que buscava uma nova ferramenta de comunicao e programao independente da arquitetura de qualquer dispositivo eletrnico. Em 1994, aps o surgimento do NCSA Mosaic e a popularizao da Internet, a equipe redirecionou os seus esforos a fim de criar uma linguagem para aplicaes multimdia on line. Conforme Linden [Lin96], Java foi inspirada por vrias linguagens: tem a concorrncia da Mesa, tratamento de excees como Modula-3, linking dinmico de cdigo novo e gerenciamento automtico de memria como LISP, definio de interfaces como Objective C, e declaraes ordinrias como C. Apesar dessas qualidades, todas importantes, na verdade duas outras realmente fazem a diferena e tornam Java extremamente atrativa: sua portabilidade e o novo conceito de arquitetura neutra. Portabilidade significa que Java foi projetada objetivando aplicaes para vrios sistemas heterogneos que podem compor uma rede como a Internet, por exemplo, e as diferentes caractersticas dessa rede. Java procura obter os mesmos resultados de processamento nas diferentes plataformas. Por arquitetura neutra entende-se que programas em Java so compilados para se obter um cdigo objeto (byte code na terminologia Java) que poder ser executado em um Power PC que use o sistema operacional OS/2, ou em um sistema baseado no chip Pentium debaixo do Windows 95 ou em um Macintosh usando MacOs, ou em uma estao de trabalho Sparc rodando Unix. Ou seja, em qualquer computador, desde que tal computador implemente o ambiente necessrio para isso, denominado conceitualmente de Mquina Virtual Java. Com a linguagem Java se comeou a superar barreira que impedia que a Internet se tornasse um computador: a barreira que impedia o uso de um software utilizado em um determinado lugar, executando-o em qualquer plataforma.

7.3 Arquiteturas de computadores e sistemas operacionais


O termo arquitetura de computador vem da possibilidade de se visualizar uma mquina como um conjunto hierrquico de nveis que permite entender como os computadores esto organizados. Os primeiros computadores digitais por exemplo somente possuam dois nveis. O primeiro chamado o nvel da lgica digital, formado no incio por vlvulas e depois por transistores, circuitos integrados, etc. O segundo chamado de nvel 1, tambm chamado de nvel de microprograma, que o nvel da linguagem da mquina, onde toda a programao era feita, atravs de zeros e uns, e que posteriormente seria o responsvel por interpretar as instrues do nvel 2. Com Maurice Wilkes em 1951 surgiu outro nvel, onde as instrues eram escritas de um modo mais conveniente para o entendimento humano: a tcnica consistia em substituir cada instruo desse novo nvel por um conjunto de instrues do nvel anterior (nvel da mquina) ou examinar uma instruo de cada vez e executar a seqncia de instrues equivalentes do nvel da mquina. Denominam-se estes procedimentos por traduo e

127

interpretao. Isto simplificou o hardware que agora somente tinha um conjunto mnimo de instrues e portanto menos circuitos eram necessrios. A partir da a evoluo do hardware avana juntamente com as novas descobertas cientficas: quase na mesma poca do aparecimento dos transistores, por exemplo, surgiu o conceito de barramento de dados, que acelerou a velocidade dos computadores. Ao mesmo tempo apareceram os grandes sistemas operacionais, (simplificadamente, um sistema operacional um conjunto de programas mantidos no computador durante todo o tempo, liberando o programador de tarefas relacionadas diretamente com o funcionamento da mquina), como o DOS e OS, da IBM. Estes evoluram possibilitando novos conceitos que melhoraram a performance das mquinas, como por exemplo os sistemas de multiprogramao, isto , a possibilidade de vrios programas serem executados em paralelo em uma mesma da mquina. Se um destes programas tiver origem em um terminal remoto, tal sistema ser chamado de tempo compartilhado. Um importante marco que possibilitou esses avanos foi a introduo de processadores de entrada e sada, tambm chamados de canais. Isso motivou o aparecimento dos conceitos de concorrncia, comunicao e sincronizao: uma vez que dois processadores esto operando simultaneamente, surge a necessidade de prover mecanismos para sincronizlos e estabelecer um canal de comunicao entre eles. a era das arquiteturas mainframes: o suporte s tarefas computacionais e o desenvolvimento das aplicaes so feitos numa rea central, denominada centro de computao. Terminais conectados diretamente mquina so utilizados somente por pessoas relacionadas s aplicaes disponveis. Nos anos 70 surgiram os supercomputadores, mquinas que inovaram na arquitetura. At o momento, o crescimento da eficincia dos computadores estava limitado pela tecnologia, mais especificamente pelo processamento escalar que exigia que o processador central de um computador terminasse uma tarefa para comear a realizar outra, produzindo o gargalo de von Neumann. Um avano significativo veio com o supercomputador Cray-1, da Cray Research *, em 1971. Foi a primeira mquina pipeline, cujo processador executava uma instruo dividindo-a em partes, como na linha de montagem de um carro. Enquanto a segunda parte de uma instruo estava sendo processada, a primeira parte de outra instruo comeava a ser trabalhada. A evoluo seguinte foi a denominada mquina vetorial, ou mquina SIMD (single instruction multiple data) cujo processador trabalhava com mais de um conjunto de dados ao mesmo tempo. Um pouco depois surgiu a arquitetura MIMD (multiple instructions multiple data) e apareceram mquinas com mltiplos processadores como a Connection Machine, com 65.536 processadores .

Muito da histria dos primeiros tempos dos supercomputadores coincide com a histria daquele que considerado o pai dos supercomputadores, Seymour Cray (1926-1996), fundador da Cray Research, que liderou a construo dos computadores mais rpidos do mundo durante vrios anos. Seymour Cray inventou ou contribuiu diretamente na criao de mltiplas tecnologias usadas pela indstria dos supercomputadores, entre as quais est: a tecnologia de vetor de registradores no CRAY-1, a tecnologia do semicondutor de glio arsnico e a arquitetura RISC (Reduced Instruction Set Computing). Deve-se observar que apesar da capacidade de execuo paralela de centenas de tarefas, dependendo de como feita a comunicao entre os processadores, a eficincia de tais mquinas pode ser frustrante e as pesquisas continuam em busca do aumento dessa eficincia.

128

H primariamente trs limites para a performance dos supercomputadores: a velocidade do processador, o gasto de tempo (o termo tcnico, amplamente utilizado na Computao, overhead), que envolve fazer um grande nmero de processadores trabalharem juntos em uma nica tarefa, e a velocidade de entrada e sada entre os processadores e entre os processadores e a memria *. A velocidade dos processadores aumenta a cada dia, mas a um alto custo de pesquisa e desenvolvimento, e a realidade que se est alcanando os limites dos processadores baseados em silcio. Seymour Cray demonstrou que a tecnologia de glio arsnico poderia ser a soluo, mas muito difcil trabalhar com ele e poucas indstrias estariam aptas a desenvolver processadores desse tipo. A soluo, como se falar mais adiante caminha para o uso de um maior nmero de processadores, dando maior velocidade ao computador pelo emprego do processamento paralelo. Com a tecnologia VLSI (Very Large Scale Integration, quarta gerao de computadores) surgiram os minicomputadores, o que possibilitou muitas empresas e universidades informatizarem seus departamentos. Os grandes usurios interligavam os minicomputadores para enviar tarefas aos seus mainframes. A arquitetura principal continuava no entanto estabelecida no centro de computao. Do minicomputador para o computador pessoal foi somente um passo, e no incio da dcada de 1980 apareceram os primeiros PCs. Ainda nos anos de 1980 apareceram as arquiteturas RISC (Reduced Instruction Set Code), com a promessa de ganho de desempenho pela eliminao do conceito de microprograma. De qualquer maneira essas mquinas ainda so mquinas de von Neumann tradicionais, com todas as suas limitaes, a maior delas a velocidade dos circuitos que no pode crescer indefinidamente. As tentativas de quebrar o gargalo de von Neumann e o incio da descentralizao dos sistemas, com o surgimento das arquiteturas de rede que possibilitaram a universalizao do uso da tecnologia da Computao, fizeram emergir e desenvolver as arquiteturas paralelas de hardware. A idia de incluir paralelismo nos computadores to antiga quanto os prprios computadores. Trabalhos desenvolvidos por von Neumann na dcada de 1940 j discutiam a possibilidade de algoritmos paralelos para a soluo de equaes diferenciais. O sistema Model V, desenvolvido entre 1944 e 1947 por G. R. Stibitz e S. B. Willians nos laboratrios da Bell Telephone um exemplo tpico de mquina paralela. Constitudo por dois processadores e com trs posies de entrada e sada, esse multiprocessador primitivo tanto era capaz de executar dois programas distintos quanto era possvel que os dois processadores ficassem alocados para um mesmo programa. Posteriormente foi desenvolvido o Illiac IV, na dcada de 1960, constitudo por 64 processadores. Como foi citado, a partir da dcada de 1970 comearam a ser produzidos supercomputadores baseados em arquiteturas paralelas. Juntamente com as arquiteturas evoluram os sistemas operacionais e a evoluo das linhas de processadores de uma empresa como a Intel servem para refletir a evoluo da indstria dos computadores em um determinado perodo. Como destaque podem-se citar o
*

A velocidade de entrada/sada entre a memria principal (tecnicamente conhecida como RAM) e os dispositivos de armazenamento um problema que afeta todos os tipos de computadores. Mas como os supercomputadores tem uma grande quantidade de memria principal, esse problema pode ser resolvido facilmente com um gasto mais generoso de dinheiro.

129

MS-DOS, o OS/2 e o UNIX. Especialmente este ltimo, que surgiu como fruto dos trabalhos de um engenheiro da Bell Labs, Ken Thompson, foi popularizado nos meios universitrios que usavam computadores PDP-11/45, durante a dcada de 1970. A palavra UNIX espalhou-se rapidamente por todo o mundo e no incio de 1980 este sistema operacional estava disponvel em mais mquinas do que qualquer outro sistema operacional da poca, continuando hoje ainda a ser amplamente utilizado. A mais recente evoluo da Computao foi o resultado da rpida convergncia das tecnologias de comunicao de dados, de telecomunicao e da prpria informtica. a Internet, ou o modelo computacional baseado em uma rede, que teve suas origens nos anos da dcada de 1970, como um esforo do Departamento de Defesa dos EUA para conectar a sua rede experimental, chamada ARPAnet, a vrias outras redes de rdio e satlites. Espalhouse logo em seguida nos meios acadmicos e est bastante popularizada.

7.4 Uma nova mentalidade


A partir de 1975, com a disseminao dos circuitos integrados, a Computao deu um novo salto em sua histria, proporcionado pelo surgimento e desenvolvimento da indstria dos computadores pessoais e, principalmente, pelo aparecimento da computao multimdia. Com o aparecimento dos microcomputadores, rompeu-se a barreira de deslumbramento que cercava as grandes mquinas e seu seleto pessoal que as manipulava, e surgiu a possibilidade da transferncia do controle do computador para milhares de pessoas, assistindo-se sua transformao em um bem de consumo. Em 1975 a revista americana Popular Eletronics anunciou a chegada do Primeiro kit de minicomputador do mundo a rivalizar com os modelos comerciais . Tratava-se do Altair 8800, construdo com base no chip 8080 da Intel por H. Edwards Roberts, oficial da Fora Area americana, graduado em engenharia eltrica. O sucesso foi imediato: 4.000 unidade vendidas em trs meses. Impulsionados pelo sucesso, um jovem programador, Paul Allen, associa-se a um estudante de Harvard, Willians Gates, com o objetivo de escrever uma verso popular de uma linguagem computacional, o Basic, para o Altair. Mais tarde ambos fundaram a Microsoft, que se tornou na dcada de 1990 a mais bem sucedida empresa de software da histria dos microcomputadores. Outro grande sucesso dos primeiros anos dos computadores pessoais foram os microcomputadores lanados pela Apple, nascida em 1976, fundada pela dupla Steve Jobs e Stephen Wozniac, que foi um sucesso total naqueles primeiros anos. Mas realmente essa nova onda s foi possvel graas entrada da IBM na competio, quando, em 12 de agosto de 1981, em Nova Iorque, executivos da big blue , como conhecida, apresentaram o novo computador do momento, o IBM PC (Personal Computer). Talvez o fato mais importante, que afetaria pelos prximos anos o panorama da indstria dos microcomputadores foi a deciso da IBM de utilizar uma arquitetura aberta : selecionar os componentes bsicos e o sistema operacional de fontes externas IBM. Contando um pouco dessa histria. A fora-tarefa que a IBM tinha designado para a criao do computador pessoal decidiu que queria um computador de 16 bits, mais potente e mais fcil de programar que as mquinas de oito bits ento existentes. A Intel havia anunciado, ento recentemente, o chip 8086 de 16 bits, mas a IBM, temendo que fizesse 130

sombra aos demais itens j comercializados por ela, escolheu o 8088, uma verso do chip com barramento de 8 bits e estrutura interna de 16 bits. Tal tecnologia proporcionava ainda a vantagem de trabalhar com as placas de expanso de oito bits existentes no mercado e com dispositivos de oito bits relativamente baratos, como os chips controladores. Na busca pelo software a IBM foi s portas da Digital Research para ver a possibilidade de portar seu sistema operacional de grande sucesso! CP/M para a arquitetura 8086, mas esta rejeitou o contrato de exclusividade apresentado pela IBM. Assim, a equipe da IBM rumou para os escritrios da Microsoft, de quem esperavam obter uma verso do BASIC e acabaram assinando um contrato no s deste software mas tambm sobre o sistema operacional. A Microsoft adquiriu e incrementou um sistema operacional 8086 da Seattle Computer Products o QDOS licenciando-o para a IBM, que comeou a comercializ-lo com o nome de PC-DOS. Os anos da dcada de 1980 poderiam ser caracterizados pelo aperfeioamento de softwares tanto sistemas operacionais como utilitrios: planilhas, editores de texto, e outros mais para o padro DOS e o desenvolvimento de um mercado de clones de diferentes tipos de mquinas que seriam capazes de executar os programas elaborados para o padro. A Apple continuava a fazer sucesso com sua famlia Apple II, embora fracassando na introduo do Apple III e do formidvel LISA, a primeira tentativa de popularizar a combinao de mouse, janela, cones e interface grfica com usurio. Mas o preo de US$10.000,00 assustou e espantou o mercado. O prximo passo a ser dado sem contar a evoluo e aprimoramento do hardware sem o qual isso no seria possvel seria a gradual passagem dos aplicativos para ambiente DOS verdadeiro mar de produtos para um novo padro de ambiente, que comeava a ganhar contornos definitivos, e que protagonizou o incio de uma nova idade na histria dos microcomputadores: o do sistema operacional Windows, que tornou-se padro dominante para os aplicativos para PC, tornando a Microsoft lder na definio de especificaes multimdia. importante no entanto fazer-se justia: o padro Windows inspirou-se no padro Macintosh, lanado pela Apple em 1984: um computador que era capaz de oferecer mais de um prompt de DOS e uma interface baseada em caracteres; ele podia ter vrias janelas, menus suspensos e um mouse. Infelizmente o Macintosh no era compatvel com os programas e aplicativos j existentes e no era expansvel.

7.5 A Computao como Cincia


Ao lado dessa evoluo do hardware e do software, a Computao abriu-se em leque e novas tendncias surgiram dentro dela, incorporando estas duas entidades. A Inteligncia Artificial, a Teoria da Complexidade Computacional * e a Teoria de Bancos de Dados abriram novos campos de estudo. Na dcada de 1960 a Cincia da
*

A Teoria da Complexidade Computacional um ramo da Computao que estuda o grau de dificuldade envolvido na resoluo algortmica de classes de problemas. Um dos principais tpicos abordados diz respeito eficincia (em termos de tempo) envolvida na execuo de um algoritmo.

131

Computao tornou-se uma disciplina verdadeira. A primeira pessoa a receber um ttulo de Ph. D. de um departamento de Cincia da Computao, foi Richard Wexelblat, na Universidade da Pensilvnia , em 1965. Consolidaram-se os estudos sobre a Teoria dos Autmatos e a Teoria de Linguagens Formais, principalmente com Noam Chomsky e Michael Rabin. O nascimento do ramo das especificaes formais, que introduziu um novo paradigma no desenvolvimento de sistemas computacionais, veio dentro dessa dcada, com o incio das buscas pela corretude de programas atravs do uso de mtodos formais. R. W Floyd, em 1967, props que a semntica de linguagens de programao fosse definida independentemente dos processadores especficos a que se destina aquela linguagem. A definio pode ser dada, segundo Floyd, em termos do mtodo para a prova de programas expresso na linguagem. O seu trabalho introduziu o que passou a ser conhecido como o mtodo das anotaes (assertivas) indutivas para a verificao (prova) de programas e uma tcnica envolvendo conjuntos com ordenao bem fundada para provar o trmino de um programa *. Uma extenso das idias de Floyd foi proposta por C. A. Hoare em 1969. Hoare formulou uma teoria axiomtica de programas que permite a aplicao do mtodo das invariantes de Floyd a textos de programas expressos em linguagens de programao cuja semntica precisamente formulada. Este trabalho tornou-se ainda um dos fundamentos do que se chamou mais tarde programao estruturada. Dijkstra desenvolveu a idia de que a definio (no estilo proposto por Hoare) pode ser usada para a derivao (sntese) de um programa e no apenas para sua verificao [Luc82]. A partir dessas pesquisas surgiu a Engenharia de Software, que busca garantir a corretude na construo de sistemas. O desenvolvimento de sistemas computacionais at ento era feito de uma maneira quase que artesanal. No havia critrio orientativo algum durante o processo. Isso acabou sendo fatal, como o revelaram certos estudos, elaborados na dcada de 1970, sobre o desenvolvimento de sistemas: ausncia de corretude e consistncia, baixa qualidade, manuteno extremamente custosa em funo de problemas no detectados por ausncia de uma validao de requisitos mais rigorosa, no reaproveitamento de cdigo, prazos de implementao no cumpridos em conseqncia de erros detectados ao longo dessa mesma fase de implementao, etc. Obedecendo a um grau de formalizao maior, apareceram como primeira reao a essa abordagem informal modelos e mtodos de desenvolvimento de sistemas chamados estruturados, que na verdade so conjuntos de normas e regras que guiam as vrias fases de desenvolvimento de sistemas e as transies entre elas. a abordagem sistemtica. Ainda aqui no est presente um formalismo definido com regras precisas. A prototipao e a orientao a objeto so abordagens que podem ser consideradas sistemticas. A abordagem rigorosa j apresenta um sistema lingstico formal para documentar as etapas de desenvolvimento e regras estritas para a passagem de uma etapa a outra. No se exige que as demonstraes de corretude das transformaes realizadas sejam feitas
*

O objetivo escolher essas proposies de tal forma que elas sejam satisfeitas cada vez que o fluxo de controle do programa passe pelo ponto anotado e de maneira que cada ciclo do fluxograma seja cortado (anotado) por uma proposio. Para estabelecer uma distino entre as vrias espcies de abordagem vamos seguir uma classificao sugerida por Bjorner [Tan92], de acordo com o grau de formalizao.

132

formalmente, bastando uma argumentao intuitiva *. E finalmente a abordagem puramente formal, rigorosa, com a exigncia de que todas as demonstraes necessrias para garantir a corretude do processo sejam realizadas formalmente. necessrio notar que essas duas ltimas abordagens exigem um conhecimento mais profundo do raciocnio lgico formal e de um sistema lingstico formal adequado. Embora a abordagem formal se apresente como nico meio de se dar uma garantia real atividade de construo de sistemas, muitos autores mostram-se cticos quanto ao verdadeiro impacto que ela venha a ter na prtica, devido dificuldade de aprendizado do necessrio arcabouo matemtico.

Figura 40: Donald E. Knuth

Donald E. Knuth iniciou nos fins dessa dcada um rigoroso tratado sobre as bases matemticas para a anlise de algoritmos, produzindo os trs conhecidos volumes do The Art of Computer Programming [Knu69], que propiciaram a base para o amadurecimento dos estudos da complexidade de algoritmos. Pode-se dizer que o trabalho de Knuth um dos grandes marcos da Computao no sculo XX: antes de Knuth no havia um corpo sistemtico do estudo da programao e dos algoritmos. Ainda no campo da Complexidade Computacional novos avanos se deram a partir de 1971, com o trabalho de Steve Cook e Richard Karp sobre problemas NP-completos e os estudos sobre criptografia de Ronald Rivest, Adi Shamir e Leonard Adleman. Em 1977 H.J. Bremermann desenvolveu alguns trabalhos pioneiros dentro da teoria da complexidade, mostrando os limites fsicos na arquitetura de computadores de qualquer tipo e que estes
*

importante notar que a prova formal pode ser feita. Um problema dito P (de polinomial) executado em um computador com um nmero de passos dado pela frmula Ank ( A e k so inteiros fixos e n o nmero de dados de entrada). Algoritmos NP (de tempo no determinstico polinomial) executam em tempo exponencial, em um nmero de passos 2n ou n! (problema do caixeiro viajante por exemplo, a soluo de alguns teoremas lgicos de primeira ordem, o problema da torre de Hani, etc.).

133

limites fsicos atuam como fatores restritivos para a computao de determinados problemas. De acordo com ele, existe um tempo chamado limite fundamental para a velocidade dos computadores que no pode ser ultrapassado. Tal limite deriva-se da idia de que a velocidade mxima de transmisso de sinal entre os componentes internos da mquina limitada pela velocidade da luz. Mesmo que se pudessem construir mquinas muito pequenas, otimizandose a trajetria de transmisso de sinais, esse limite no pode ser ultrapassado. E ainda que se chegue a uma mquina cuja velocidade de transmisso seja prxima da luz, existem problemas computacionais que so intratveis, como por exemplo os problemas NP: mesmo com a velocidade da luz tais problemas poderiam levar a idade do universo para serem processados [Tei97].

7.6 A inteligncia artificial


um dos ramos da Cincia da Computao merecedor de especial destaque, pela sua gama de influncia nas pesquisas e novas reas que se abriram a partir do seu incio. aquela rea da Computao, em termos mais gerais, voltada para o estudo de tcnicas de construo de programas que permitam ao computador simular aspectos do comportamento da inteligncia, tais como jogar xadrez, provar teoremas lgicos, compreender partes especficas de uma linguagem natural como, por exemplo, o portugus, etc. Os primrdios da Inteligncia Artificial (IA a partir de agora) remontam dcada de 1940. Comeou a predominar nesses anos o movimento ciberneticista, que acreditava entre outras coisas que a atividade humana poderia um dia ser estudada por meio de modelos matemticos, como se faz com outros tantos fenmenos da natureza. Seguindo os trabalhos de Gdel, muitos matemticos imburam-se do objetivo de formalizar a noo de procedimento e definir o que poderia ser feito atravs de um algoritmo, e vieram a tona os trabalhos de Turing, Church, Kleene e Post *. Os resultados desses esforos acabaram por ser equivalentes e se estabeleceram os limites do que computvel. No ano de 1943 foram publicados os trabalhos de Warren McCulloch e Walter Pitts, que propuseram um modelo de neurnios artificiais, onde cada neurnio era caracterizado como sendo on ou off, e era representado por uma chave onde on seria a resposta a estmulos por um dado nmero de neurnios vizinhos. Eles mostraram que qualquer funo computvel poderia ser processada por algum tipo de rede de neurnios conectados e que os conectivos lgicos poderiam ser implementados atravs de estruturas de rede simples [MP43]. Esto presentes aqui as pesquisas de Claude Shannon, que entre outras coisas descreveu em termos lgicos o funcionamento de certos sistemas fsicos, e vice-versa: sistemas fsicos que poderiam representar um raciocnio lgico. A fuso das idias de Shannon e Boole, associadas a um tratamento simplificado do neurnio do crebro humano,
*

Como foi visto, Turing desenvolveu a Mquina de Turing, Church desenvolveu o clculo-lambda (que forneceu a base para a linguagem LISP, desenvolvida por McCarthy, uma das favoritas do pessoal da IA), Kleene desenvolveu a teoria das funes recursivas, enquanto Emil Post introduziu sistemas para reescrita de cadeias de smbolos (a gramtica de Chomsky um caso particular disso). Como um dos subprodutos do trabalho de Church, ficou estabelecido que tudo aquilo que um ser humano possa fazer manipulando smbolos, seguindo um finito e bem definido conjunto de regras, uma mquina equipada com o conveniente programa tambm poder faz-lo.

134

tornou possvel o trabalho de McCulloch e Pitts, que propuseram um modelo de neurnio artificial (h um trabalho sobre este assunto em [Arb87]). Queriam esses dois pesquisadores mostrar que se os neurnios artificiais pudessem efetuar computaes lgicas, estaria aberto o caminho para simular o raciocnio humano. Os trabalhos de Warren McCulloch e Walter Pitts tiveram grande sucesso e outros trabalhos apareceram, mas logo foram objeto de fortes crticas. Frank Rosemblatt e seus colegas da Universidade de Cornell projetaram uma mquina parecida com o modelo de MccUlloch e Pitts, denominada Perceptron *. Marvin Minsky e Seymour Papert mostraram algumas limitaes dos perceptrons, como por exemplo a impossibilidade de executarem operaes lgicas do tipo ou exclusivo. De qualquer maneira surgiu uma primeira vertente da emergente IA: a que buscava a simulao do crebro humano do ponto de vista fsico, para simular a atividade mental, e que far surgir anos mais tarde, na dcada de 1970, a Cincia Cognitiva ou Conexionismo, que est apoiada em um paradigma da IA de processamento serial da informao e no approach da manipulao simblica para a lingstica. Outra vertente por onde se encaminharam os estudos da IA foi a chamada Inteligncia Artificial simblica, que buscava a representao e a simulao dos estados e do comportamento mentais atravs de programas computacionais. A representao e simulao da inteligncia no estaria na construo de um determinado tipo de hardware, mas no desenvolvimento de um software que opere sobre dados. Isto teve profundos reflexos nas pesquisas posteriores e suscitou inmeros debates, sobretudo na filosofia, sobre as relaes entre a mente e o crebro . Em [Tei97], h um captulo sobre as grandes objees levantadas ao termo IA no sentido forte, o qual diz que um computador adequadamente programado uma mente e reproduz estados mentais. Em 1950 Turing introduziu atravs de um artigo, Computing Machinery and Intelligence, o chamado Turing Test , considerado tambm um dos primeiros esforos no campo da Inteligncia Artificial [RN95]. Mais tarde o prprio Turing (1953) escreveu um programa de xadrez para computadores que tinham a arquitetura de von Neumann. Ao mesmo tempo, Marvin Minsky e Deam Edmonds, do Departamento de Matemtica de Princeton, construram o primeiro computador baseado em rede neural, em 1951, o SNARC. Era um computador analgico para simular uma rede de 40 neurnios [RN95]. John McCarthy, outra figura influente da IA, aps formar-se em Princeton, dirigiuse ao Dartmouth College e convenceu Minsky, Shannon e Nathaniel Rochester, um pesquisador da IBM, a ajud-lo a trazer pesquisadores interessados em teoria dos autmatos, redes neurais e no estudo da inteligncia. Allen Newell e Herbert Simon, da Carnegie Mellon

Pode-se imaginar um Perceptron como um dispositivo para o reconhecimento de um conjunto de padres, no especfico, isto , com capacidade de aprender a reconhecer os padres de um conjunto aps um nmero finito de tentativas. Na verdade tais indagaes remontam ao filsofo Ren Descartes que introduziu a primeira fissura no pensamento filosfico de at ento, ao cavar um fosso profundo entre a matria e o esprito humano. Ele props uma definio de pensamento usando um jogo: um homem teria de decidir, baseado em uma conversa via teletipo, se a entidade que estava na sala ao lado, respondendo a um teste, era um ser humano ou um computador. Se a distino no pudesse ser feita, ento poderia ser dito que o computador estava pensando [Tur36].

135

University elaboraram o LT (Logic Theorist) *, um programa capaz de trabalhar nonumericamente e que provou a maioria dos teoremas do segundo captulo do Principia Mathematica, de Russell e Whitehead. Em 1952, Arthur Samuel mostrou que os computadores no fazem somente o que se lhes pede, mas so capazes de aprender. Outros programas provadores de teoremas se seguiram ao LT e em 1958, com McCarthy surgiu o LISP, que se tornou a linguagem de programao predominante para IA a partir da. McCarthy seguiu para Stanford na busca da representao do raciocnio atravs da lgica formal (seu trabalho recebeu grande impulso quando J. A. Robinson elaborou um algoritmo completo para a prova de teorema na lgica de primeira ordem). Estas aplicaes da lgica incluam robtica e um projeto para demonstrar a completa integrao entre raciocnio lgico e atividade fsica. Minsky estava mais interessado em descobrir programas para resolver problemas que exigiam inteligncia para serem solucionados: problemas de analogia geomtrica que aparecem nos testes de QI, problemas de lgebra, etc. Os anos de 1966 a 1974 foram marcados por um certo ceticismo diante das dificuldades que comearam a ser encontradas, como por exemplo a no tratabilidade de muitos problemas de IA, acentuada pelos primeiros estudos dos problemas no-polinomiais determinsticos, NP, e pelas limitaes das estruturas bsicas usadas para gerar comportamento inteligente, como por exemplo os algoritmos de aprendizado por backpropagation [RN95]. A dcada de 1970 marcou a busca pelos sistemas baseados em conhecimento e pelos sistemas especialistas, protagonizada inicialmente por Ed Feigenbaum, Bruce Buchanan e Joshua Lederberg. Os sistemas especialistas so solucionadores de problemas acoplados a grandes bancos de dados onde o conhecimento humano especfico sobre determinado assunto encontra-se armazenado. O sistema dever fornecer respostas a consultas, dar conselhos a um leigo sobre um determinado assunto, auxiliar especialistas, ensinar, etc. A idia subjacente que a inteligncia no somente raciocnio mas tambm memria. A grande meta a preservao do conhecimento de especialistas aps a morte destes. O problema, ainda em aberto, a difcil tarefa de se representar o conhecimento, alis nome de uma nova rea surgida dentro da IA para solucionar os inmeros problemas surgidos, principalmente os de como representar o senso comum, o sexto sentido ou ainda a intuio, termos que resistem a uma conceituao clara. Ou ainda qualquer tipo de conhecimento no representvel por uma expresso simblica como ensinar algum a jogar bola. Como formalizar estas coisas? Mais ainda: at que ponto a formalizao um instrumento eficiente para a representao do conhecimento? De qualquer maneira surgiram os sistemas especialistas para diagnstico mdico, manipulao de linguagens, etc. Lembrando o trabalho de H.J. Bremermann citado no item anterior (A Computao como Cincia), sobre os limites fsicos que impedem a construo de um dispositivo com velocidade ilimitada (maior que a da luz por exemplo), deve-se reparar que esses mesmos limites esto presentes tambm dentro das reaes qumicas e nos impulsos eltricos que se do nas complexas conexes dos neurnios do crebro. Se a mente humana consegue resolver determinados problemas intratveis (o problema da parada na mquina de Turing
*

Newell e Simon tambm inventaram a linguagem IPL, para processamento de listas, para escrever o LT. Como no tinham compilador, traduziram manualmente para o correspondente cdigo de mquina.

136

por exemplo) e funciona de maneira algortmica (como pensa determinada corrente de estudiosos da simulao da mente por computador), as operaes mentais tem algo a mais do que as caractersticas fsicas do crebro humano. Ou ento h processamentos mentais no algortmicos, e se cai no problema da impossibilidade de uma representao formal disso. So debates em aberto e que geram um saudvel intercmbio de idias entre a Computao e outras reas do conhecimento humano como a Psicologia, Biologia e Filosofia. Tambm a robtica demandou estudos da rea de IA, principalmente no que se refere Viso Computacional. Os anos da dcada de 1980 foram os da introduo da IA na indstria e um retorno ao uso de redes neurais. De 1987 para c houve uma mudana tanto no contedo quanto na metodologia das pesquisas em IA. Agora mais comum trabalhar em teorias existentes do que a proposio de novas, e basear-se em teoremas rigorosos ou em fortes evidncias experimentais do que sobre intuio. O campo do reconhecimento da voz um exemplo disto.

7.7 Uma nova disciplina: a ciberntica


O nascimento da ciberntica como cincia est associado aos trabalhos de Norbert Wiener (1894-1964). Na II Guerra Mundial ele foi encarregado pelo governo norte-americano de resolver os problemas de controle automtico da direo do tiro, na artilharia antiarea. Wiener desenvolveu suas investigaes no MIT e idealizou um sistema mediante o qual o erro, ou diferena entre o objetivo que se pretendia alcanar e o efeito real alcanado, era medido e utilizado para regular o prprio sistema, corrigindo as variveis de velocidade, ngulo de tiro, etc. Ao procurar resolver o problema, e encontrar algumas solues, Wiener tentou construir uma conceituao geral das questes com que lidava. Em contato com outros cientistas, como o fisilogo Cannon, pode comprovar que, alm da parte automtica, esse tipo de problemas de controle e comunicao se aplicavam a muitos outros mbitos. Por isso ampliou paulatinamente sua teoria de forma que abrangesse os seres vivos e as mquinas, ou, mais em geral, a todo corpo com dinmica organizada pela informao. Wiener alcunhou o termo ciberntico tomando diretamente o vocbulo grego kybernetik, que significa a arte de governar um barco. Este termo tinha um amplo uso no pensamento grego, em referncia precisamente a fenmenos muito similares ao estudado pelo engenheiro norte-americano. Assim ele prprio define a ciberntica como controle e comunicao no animal e na mquina, como aparece no ttulo de seu livro Cybernetics [Wie70]. A Ciberntica uma teoria formada pelos aspectos relevantes de outras quatro teorias: da informao, dos jogos, do controle e do algoritmo. Esto diretamente relacionados com essa teoria os trabalhos de:
Alan M. Turing em seus estudos sobre a possibilidade lgica das mquinas; Claude E. Shannon na Teoria da Informao; Ludwig Von Bertalanffy, bilogo que, em resultado de 30 anos de trabalhos, publicou a famosa obra intitulada Teoria Geral dos Sistemas; James Watt (1736-1819), inventor do regulador centrfugo de presso nas mquinas a vapor, germe da automatizao via feedback negativo;

137

John von Neumann com sua Teoria Matemtica dos Jogos.

Com a ciberntica surge uma disciplina que estuda a evoluo temporal dinmica dos sistemas com capacidade de auto-regulao e auto-manuteno ao interagir com o meio que o circunda. De maneira breve pode-se afirmar que as contribuies de Wiener podem resumir-se em dois pontos [Ara78]: Sublinhou a importncia dos estudos interdisciplinares, mostrando o grande interesse que apresentam para cada uma das disciplinas consideradas Percebeu a presena de processos realimentados de controle em uma ampla classe de sistemas, tanto naturais como sociais. Embora a ciberntica como cincia no tenha como objetivo o computador para ela apenas mais uma das muitas estruturas existentes no universo , ela criou, juntamente com a teoria da informao de Shannon, um novo caminho para tentar entender o homem e as mquinas. Ao se ocupar das estruturas e funes lgico-matemticas de auto-regulao, independentemente de que estejam inscritas e se cumpram em um organismo vivo, ou em uma populao humana ou em um computador eletrnico, acabou tomando parte indiretamente no desenvolvimento do hardware e do software. A idia de informao como uma das caractersticas fundamentais do universo levou Wiener e Shannon, separadamente, a demonstrarem que muitas coisas, desde o movimento aleatrio de partculas subatmicas at o comportamento de redes baseadas em chaveamentos eltricos ou alguns aspectos do discurso humano, esto relacionados de tal modo, que podem ser expressos atravs de algumas equaes matemticas bsicas*. Estas equaes foram teis na construo de computadores e redes telefnicas: muitos conceitos elaborados e delineados pela ciberntica e teoria da informao tornaram-se centrais no projeto lgico de mquinas e na criao do software. A ciberntica no conseguiu estabelecer-se com um objeto e mtodo unificados na tradio acadmica, e o termo se utilizou cada vez menos. Seus acahados foram integrados dentro da Teoria Geral dos Sistemas , no que se refere aos aspectos mais tericos. Seu lado mais prtico e utilitrio foram assimilados dentro da robtica. Somente em pases europeus constituiu-se como uma cincia amplssima que engloba aspectos to diversos como a teoria da informao, comunica~ao, computadores, sistemas de controle, robtica, modelagem econmica, sociologia, etc. Independente da evoluo acadmica que tenha a ciberntica como disciplina, necessrio referir-se a uma srie de conceitos que com ela se puseram em andamento e so de uso comum em muitos mbitos [Tir2002].

Sobre estas idias to sumariamente enunciadas ver o livro Ciberntica, captulo introdutrio [Wie70]. A Teoria Geral dos Sistemas um completo paradigma, uma forma de pensar muito fecunda para entender a complexidade que engloba tanto os campos j citados acima que se relacionam com a Ciberntica e ainda: Teoria dos Conjuntos (Mesarovic), Teoria das Redes (Rapoport), Dinmica de Sistemas (Forrester), cfr. Bertalanffy, L. von Teoria Geral dos Sistemas [Tir2002] As noes de feed-back negativa ou realimentao, homostasis (permanecer igual a si mesmo), feed-before (comportamento predictivo e por estratgia), etc.

138

8 A disseminao da cultura informtica


Quando a Histria olhar para trs e estudar os anos do sculo XX, entre outras coisas, perceber que, do ponto de vista cientfico, eles esto caracterizados como tempos em que se produziu uma acelerao tecnolgica e um avano nas comunicaes sem precedentes. No fcil encontrar situaes histricas anlogas expanso tecnolgica que se assistiu nestes ltimos cinqenta anos do sculo. Aps as revolues do ferro, da eletricidade, do petrleo, da qumica, veio a revoluo apoiada na eletrnica e no desenvolvimento dos computadores. A partir dos anos setenta iniciou-se a integrao em grande escala da televiso, telecomunicao e informtica, em um processo que tende a configurar redes informativas integradas, com uma matriz de comunicao baseada na informao digital, com grande capacidade de veicular dados, fotos, grficos, palavras, sons, imagens, difundidos em vrios meios impressos e audiovisuais. Pode-se at dizer que, em certo sentido, as mdias esto sendo suprimidas, pois tudo est se tornando eletrnico. A integrao dos meios de comunicao gera tambm uma progressiva fuso das atividades intelectuais e industriais do campo da informao. Jornalistas das redaes dos grandes jornais e agncias de informao, artistas, comunidade estudantil, pesquisadores trabalham diante de uma tela de computador. Em algumas sociedades, como a norteamericana por exemplo, quase 50% (dados de 1955) da populao economicamente ativa est dedicada a atividades industriais, comerciais, culturais, sociais e informacionais relacionadas com coleta, tratamento e disseminao da informao. H um aumento da eficincia informacional a cada dia, e se barateiam cada vez mais os custos tecnolgicos. No esquecendo que o computador, diferentemente das outras mquinas (que manipulam, transformam ou transportam matria e energia) manipula, transforma e transporta um elemento muito mais limpo e menos consumidor de energia e matria prima. Abre-se portanto uma porta para um crescimento da informao praticamente ilimitado. J que se est tratando principalmente neste livro sobre a evoluo das idias e conceitos que levaram ao surgimento e desenvolvimento da Cincia da Computao, pode-se falar agora de um supra-conceito maior, conseqncia que a Computao ajudou a catalisar: o surgimento da Sociedade da Informao. Sem querer adentrar no tema, merecedor de um trabalho exclusivo e com implicaes histricas, antropolgicas, sociolgicas e at psicolgicas que fogem ao presente escopo, duas consideraes sero feitas: o problema do excesso de informao e o perigo do empobrecimento que pode ser causado pelo uso indevido do computador.

8.1 O domnio e o controle das informaes


Existe no mundo da pintura uma expresso que se refere ao acmulo de cores que acaba por no permitir uma clara distino do objeto: infopoluio. Esta possibilidade comea a fazer-se realidade no mbito da Sociedade da Informao. A informao est expandida no mundo de hoje, resultado da exploso de fontes que incluem as agncias comerciais de notcias, os sistemas comerciais de satlites transmissores de imagens, a World 139

Wide Web, etc. H um otimismo que leva muitos a se alegrarem com essa invaso vertiginosa de palavras, imagens e smbolos, dos quais muito poucos so controlados, de um ponto de vista semntico. Faz tempo que soam os alarmes: Os usos normais da fala e a escrita nas sociedades ocidentais modernas esto fatalmente enfermos. O discurso que se faz nas instituies sociais, o dos cdigos legais, o debate poltico, a argumentao filosfica e a elaborao literria, o leviat retrico dos meios de comunicao: todos estes discursos so clichs sem vida, jargo sem sentido, falsidades intencionadas ou inconscientes. O contgio se estendeu aos centros nervosos do falar privado. Em uma infecciosa dialtica de reciprocidade, as patologias da linguagem pblica, especialmente as do jornalismo, a fico, a retrica parlamentar e as relaes internacionais, debilitam e adulteram cada vez mais as tentativas de psique particular dse comunicar a verdade [Ste91]. A superabundncia de informao tende a mudar a natureza de cada mensagem concreta. s vezes, a maneira mais prtica de no informar dar uma enxurrada de informaes. Pode-se chegar at a privar de significado, ou tornar insignificante, a prpria mensagem. A informao converte-se, nessa perspectiva, em simples rudo de fundo. Isto j ocorre, especialmente com os informes publicitrios. uma acumulao de dados no s pela densidade de informaes bem como pela sucesso rpida com que chega. Se no passado o problema era o de acesso e coleta, agora est sendo o da seleo e avaliao. A possibilidade de recolher, processar, difundir e recuperar informao de maneira quase instantnea implica numa certa desvalorizao da notcia. A informao em doses exageradas acaba por tornar-se rudo. Por muita informtica que exista, se no se tem capacidade de tratamento que a converta em significativa rudo: nos tornamos incapazes de assimilar e tratar tanta abundncia informativa. necessrio que se enfatize cada vez mais a anlise da informao e que se encorajem as inovaes tcnicas nesse campo. J surgem os grandes sistemas de manipulao de dados, gigantescos depsitos de dados com seus Data Minds, softwares usando tcnicas de IA que trazem, por mecanismos de inferncia, a informao desejada ou a possvel informao desejada. As possveis reaes ante esse fenmeno da poluio informativa ocorreriam em trs direes [Sor92]. Uma primeira via seria a seleo da informao, sem redundncias nem repeties, como se mencionou algumas linhas acima. A outra seria a reduo da informao, acomodando-a em funo de interesses especficos e especializados do pblico e a terceira via a fuga da informao. A fuga da informao seria o florescimento de ideologias simplificadoras, a semeadura do irracional, o voluntarismo irreflexivo, o empobrecimento das relaes sociais e o desenvolvimento do mais passivo consumismo. uma hiptese reducionista, somente esboada em determinados nichos sociais. Uma futura linha de fuga seria a explorao atravs da venda e compra da informao, das mensagens informativas, a um determinado custo (como avaliar?), orientando-se a radioteleviso ao volume de informao e tipo de informao que o assinante deseja.

8.2 O equilbrio entre o toque humano e a tecnologia

140

As citaes e consideraes deste captulo esto baseadas em uma palestra do prof. Dr. Valdemar Setzer, do Instituto de Matemtica e Estatstica da USP, em 03-IV-96, no Museu de Arte Contempornea da USP. Como citado anteriormente, o computador tambm exerce aquelas trs aes das demais mquinas, isto , transformar, armazenar e transportar, mas no mais matria ou energia, e sim dados. Dados podem ser considerados abstraes do mundo real, no fceis de se estabelecer muitas vezes. Como traduzir em smbolos uma personalidade, ou um sentimento? Para serem processados por um computador eles tero que ser tratados como smbolos formais (que j um empobrecimento), por exemplo, introduzindo-se uma gradao numrica: tal intervalo entre nmeros x e y representar uma gradao da intensidade de um determinado sentimento, o que um empobrecimento ainda maior. Conforme o prof. Setzer: importante fazer aqui uma distino necessria entre o armazenamento de textos, imagens e som, que so pura e simplesmente reproduzidos, talvez com alguma edio da sua forma (por exemplo, alinhamento de pargrafos, salincia de contrastes em fotos, eliminao de rudos), e o processamento de dados. Este ltimo o tratamento que se d aos dados, transformando seu contedo, isto , a semntica que se associa aos mesmos. Por exemplo, traduzir textos de uma lngua para outra, extrair caractersticas de estilo de autores em pesquisas de lingstica computacional, gerar desenhos a partir de programas como no conhecido caso dos fractais, etc.. De onde provem o empobrecimento da informao? Do fato de que os dados no tm nada a ver com a realidade, sendo na verdade representaes simblicas de pensamentos abstratos formais, lgico-simblicos, e como tal eles no precisam ter consistncia fsica. Alis, justamente a imponderabilidade dos dados e sua alienao em relao ao fsico que permitiu que os computadores fossem construdos cada vez menores, o que no pode acontecer com todas as outras mquinas. De fato, estas podem ser caracterizadas como mquinas concretas, ao passo que os computadores so mquinas matemticas, e portanto abstratas, virtuais. Assim, todo processamento de dados deve utilizar-se exclusivamente de pensamentos formais expressos sob a forma de um programa de computador. Esse processamento lgico-simblico, por ser extremamente restrito e unilateral, acaba por restringir enormemente o espao de tratamento das informaes, que devem ser expressas sob forma de dados; da o empobrecimento das informaes que so representadas por esses dados. Note-se que essa restrio at de natureza matemtica: no possvel colocar no computador as noes de infinito e de contnuo, apenas aproximaes das mesmas. A caracterizao do computador como mquina abstrata fica mais clara ao notar-se que todas as linguagens de programao so estritamente formais, isto , passveis de serem descritas matematicamente. O prprio funcionamento lgico do computador pode ser descrito por formulaes lgico-matemticas. As outras mquinas no tm essa caracterstica, pois atuam diretamente na matria (a includa a energia), e esta escapa a uma descrio matemtica. Mas no so s as linguagens de programao que so formais. Qualquer linguagem de comandos, mesmo icnica, de um software qualquer, tambm matematicamente formal. Por exemplo, qualquer comando de um editor de textos produz 141

uma ao do computador que uma funo matemtica sobre o texto sendo trabalhado ou sobre o estado do computador. Portanto, para se programar ou usar um computador, necessrio formular os pensamentos dentro de um espao estritamente abstrato, matemtico, apesar de aparentemente no ser o tradicional, pois os smbolos e as funes so em grande parte diferentes. Programar ou usar um computador so funes estritamente matemticas, como fazer clculos ou provar teoremas. Assim, a programao ou uso de um computador exigem o mesmo grau de conscincia e abstrao que a atividade matemtica. Isso no se passa com todas as outras mquinas, que exigem uma certa coordenao motora automtica, semiconsciente (por exemplo, s se aprende a andar de bicicleta quando no mais necessrio pensar sobre os movimentos e o equilbrio). Como uma das conseqncias dessas afirmaes, pode-se propor que o uso do computador deva estar acompanhado de um novo tipo de educao, seja no mbito da famlia ou das escola, das universidades ou das empresas, que aponte para uma abertura maior do entendimento humano. E esse saber vital, que faz com que um homem se sinta interiormente livre porque tem respostas s questes da vida , e que tenha uma viso mais ampla da realidade, a cultura, a literatura, a filosofia, a histria, etc., ou seja, as humanidades ou artes liberais, como antes eram chamadas algumas cincias humanas. Nas cincias tcnicas e para os profissionais da Computao isto mais premente. O maior problema que a especializao das cincias tcnicas trouxe foi essa perda do sentido de conjunto. Continuando com as consideraes da citada palestra: Um empobrecimento que tambm pode dar-se em outro sentido que o uso da computao na arte. H um elemento informal e intuitivo na arte que leva a dizer que na criao artstica deve haver um elemento inconsciente, que nunca poder ser conceituado totalmente. J a criao cientfica deve poder ser expressa por meio de pensamentos claros, universais e no-temporais, isto , independentes da particular interpretao do observador, talvez at certo ponto (dependendo da rea) formais, matemticos. Imagine-se uma descrio do Altar de Isenheim atravs dos seus pixels e seus comprimentos de onda: ele perderia totalmente o senso esttico e no produziria mais a reao interior provocada no observador pelas cores, formas e motivos, isto , no teria o efeito teraputico para o qual foi criado por Grnewald. O elemento emocional foi realado por Freud, quando afirmou em sua Introduo Psicanlise, Aula 23, e no ensaio Alm do Princpio do Prazer, que a arte emoo ou expresso subconsciente e no imitao ou comunicao (dentro de seu tpico raciocnio unilateral da teoria da sublimao da emoo e do desejo atravs da arte). Comparando-se com a arte como comunicao de uma realidade espiritual, de Kandinsky, v-se bem o contraste entre materialismo e espiritualismo; neste pode haver algo superior a ser comunicado. Apesar de que a idia expressa em um objeto de arte seja de contedo objetivo, a sensao e emoo que ela desperta subjetiva. Por exemplo, oua-se uma tera maior seguida de uma menor, ou uma stima seguida de uma oitava. Estamos seguros que qualquer pessoa ter sensaes diferentes em cada caso, que ficam claras pelo contraste entre cada intervalo e o seguinte. Mas provavelmente quase todas as pessoas diro que a tera menor 'mais triste' e a stima produz uma tenso aliviada pela oitava. Cada um sente essas emoes 142

diferentemente, mas h claramente algo universal por detrs delas, como as sensaes que temos do amarelo limo (alegre, radiante, abrindo-se) e do azul da Prssia (triste, introspectivo, fechando-se) . necessrio considerar tambm uma distino essencial entre obra artstica e cientfica o fato da primeira dever sempre ter contextos temporais e espaciais ligados sua criao. Como contraste, uma teoria cientfica no depende do tempo, desde que seja consistente e corresponda s observaes, se for o caso. Um exemplo simples o do conceito de uma circunferncia, como por exemplo o lugar geomtrico dos pontos eqidistantes de um ponto. Essa definio formal no dependeu das condies de seu descobridor. Ela impessoal e eterna. O fato de podermos capt-la com nosso pensamento levou Aristteles a conjeturar, por um raciocnio puramente lgico (precursor de nossa maneira de pensar hodierna), que temos dentro de ns tambm algo de eterno, e que no poderia ter ocorrido em Plato, pois este tinha sido um iniciado nos Mistrios (em A Escola de Atenas, de Rafael h uma representao da diferena entre os dois *). A dependncia espao-temporal da criao artstica aliada ao elemento de expresso individual semiconsciente do artista faz com que haja sempre um elemento de imprevisibilidade na criao. O artista deve observar sua obra durante o processo de criao, para influir no mesmo e chegar a algo que no podia inicialmente prever. Isso pode ser um processo puramente interior, como no caso de um compositor que no precisa ouvir os sons de sua obra; no entanto, a sensao auditiva ao ouvi-la tocada nunca a mesma que a que pode imaginar interiormente. Poder-se-ia argumentar que a pesquisa cientfica tambm tem elementos de imprevisibilidade. Isso pode ocorrer at na matemtica: um teorema pode ser descoberto, e o seu autor ou outros ainda no saberem como se poder prov-lo (um exemplo recente foi a prova do ltimo teorema de Fermat, formulado no sculo XVII). Uma grande diferena reside no fato do resultado ser de um lado um conceito e de outro um objeto. Alm disso, uma vez estabelecido um conceito cientfico, toda vez que se refizer a experincia ou a teoria correta o resultado ser o mesmo (dentro das eventuais aproximaes experimentais); no caso da criao artstica, o objeto de arte dever sempre mudar, pois a sua simples presena deve influenciar o criador, que ter outras inspiraes na hora de repetir a criao (lembremos da frase de Freud de que simples imitao no arte). D-se a esse fator o nome de dinamismo da criao artstica. Portanto o uso do computador para fazer arte, sem considerar sua grande utilidade como banco de dados das obras artsticas, pode ser empobrecedor. Como instrumento passivo na criao artstica, como o caso do uso de uma ferramenta CorelDraw, existe o problema do usurio fazer uso de um raciocnio formal ao utilizar os comandos do computador submetendo a criao artstica a uma consciencializao e formalizao e o problema da ausncia do elemento inconsciente, assim como do contato fsico que desperta diferentes reaes, como por exemplo, no pintor com seu pincel, no pianista ao dedilhar o piano.

O autor se refere ao famoso quadro onde vrios filsofos gregos aparecem, e, caminhando lado a lado, esto Plato e Aristteles, um apontando o dedo para cima e outro para baixo, respectivamente, indicando o mundo das idias e o mundo real.

143

Uma outra forma de usar um computador em arte fazer um programa para gerar imagens ou sons (quem sabe, no futuro, at fazer uma escultura ou construir uma casa). Um exemplo conhecido disso so os fantsticos desenhos produzidos por funes fractais; programas para produzir desenhos com essas funes provavelmente estaro logo no mercado. Nesse caso, no h apenas a substituio de um instrumento informal por outro formal; o prprio processo de criao torna-se totalmente formal. A criao deve ser expressa de maneira estritamente matemtica, como o caso de um programa. Com isso, elimina-se totalmente o elemento inconsciente. tambm eliminado o elemento individual, no sentido de qualquer pessoa poder entender totalmente como a obra foi produzida - basta examinar detalhadamente o programa. eliminado ainda o elemento temporal e espacial ligado criao. Em outras palavras, a atividade artstica tornou-se atividade cientfica. A propsito, muito importante compreender-se o que significa produzir um programa para fazer uma obra de 'arte' segundo um certo estilo. Um computador pode produzir desenhos e msica que se assemelham aos de Mondrian e de J.S.Bach, mas estes tiveram que desenvolver seus estilos para poder ser depois analisados e expressos em elementos puramente formais e programados em um computador, para gerar algo que aparentemente semelhante. Sem Bach, no haveria programas que imitam sua msica. Alm disso, a criao do computador no exprime nenhuma idia alm da contida no estilo, desde que este seja expresso matematicamente, o que representa um empobrecimento. Encerradas as consideraes, o que se deseja chamar a ateno a mentalidade do uso do computador sem o correspondente desenvolvimento de outros aspectos da inteligncia do homem. Depois de tudo o que foi dito, seria redundante e suprfluo falar das vantagens desse instrumento de trabalho que potencializou e impulsionou o desenvolvimento das cincias em geral. Mas bom lembrar que os computadores no inovam, no se relacionam, no so flexveis e no sabem tomar iniciativas diante de situaes no prdeterminadas por algoritmos internos. A imerso na informtica traz o risco de se deixar de lado o cultivo ou mesmo a perda de aptides fundamentais como a leitura, a reflexo, a criatividade, etc. Ser tarefa primordial principalmente nos estabelecimentos de ensino, onde o computador se faz cada vez mais presente, preocupar-se em dar ao lado dos conhecimentos tcnicos e informticos, uma slida formao humanstica que garanta o exerccio integral da inteligncia humana em seus vrios mbitos.

144

9 Concluso
Voltando a algumas das primeiras observaes feitas no captulo introdutrio, foi dito que a exposio histrica no apenas a narrativa de acontecimentos, cronolgica e tematicamente ordenados. Esses so somente a ponta do iceberg, pois escondem motivaes, esforos, entrelaamentos e a prpria evoluo anterior. A tarefa do historiador no se conclui com a obteno de dados fidedignos, depurados e exatos, bem como o estabelecimento de sries desses fatos de maneira coerente e significativa. So somente pontos de partida para se inquirir e perguntar sobre o prprio homem, o verdadeiro protagonista da Histria. Esse saber histrico produz assim um enriquecimento da experincia humana, permite enfrentar o desafio dos novos problemas com melhores recursos. H mais possibilidades de crescimento e criao de coisas novas quando se possui uma herana. A criatividade no se faz sobre o nada. Ao jovem que o procurou dizendo que queria fazer versos livres, Manuel Bandeira recomendou que estudasse a fundo poesia clssica, metrificada: e que s ento estaria apto a fazer versos livres. A criatividade antes extrapolar e reorganizar dados j incorporados, numa configurao nova. Mas, para extrapolar ou reorganizar dados, preciso, antes de mais nada, t-los. Ao lado disso, uma aspirao constante de qualquer cultura entender o momento presente, formar uma imagem coerente, selecionando os fatos do passado que afetaram a evoluo do ser humano, que permitam construir uma explicao. Essa idia pode ser levada tambm a qualquer campo do conhecimento humano e tcnico. Quando se abandona o conhecimento histrico, uma cincia, uma comunidade social, o homem, ou qualquer outro mbito, ficam privados de uma dimenso essencial na ordem do tempo: o entrelaamento entre presente e passado em uma unidade lgica. A Computao atravessa um tempo de expanso em vrias direes, tornando-se uma tarefa necessria guardar seu patrimnio, discernindo as realidades e conceitos mais importantes. Tudo isso importante para o ensino, pois a Computao no surgiu do nada: h uma histria por trs de cada conceito. Cada conceito tem o seu lugar, a sua importncia e a sua histria que necessrio ser ensinada Este trabalho sobre Histria da Computao, um entre outros que esto surgindo e alguns que j existem, faz uma retrospectiva enfatizando as idias, os paradigmas, pretendendo apenas ser uma pontualizao, visando uma futura expanso, sobre alguns aspectos abstratos do desenvolvimento dos computadores. Ele e sua futura expanso so apenas um comeo, porque a rea sobre a qual se falou continua em constante evoluo e mudana. O campo de estudo ainda tem uma histria muito recente e por demais voltil, no se podendo chegar a algo definitivo. Apesar dessas dificuldades, deve-se continuar a chamar a ateno sobre a importncia de se registrar e estudar o desenvolvimento dos computadores eletrnicos e a conseqente evoluo dos temas anexos: Linguagens de Programao, a Teoria da Computao, estudo da Complexidade dos Algoritmos, etc., assim como a importncia decisiva do fator humano. Quando tantos se maravilharam com a derrota do campeo mundial de xadrez Kasparov para o computador da IBM, o Deep Blue, (abril/maio de 1997), surpreende a pouca ateno dada equipe de tcnicos que construiu e programou a mquina, 145

s heursticas utilizadas e aos objetivos que esto por detrs desse novo engenho, como se algum ficasse maravilhado com o quadro e os pincis de uma obra de arte e se esquecesse do artista. A histria tem o dom de focalizar com especial nitidez aquele que o seu personagem principal: o homem.

146

10 Referncias bibliogrficas
[AG81] Anawati, M-M & Gardet, Louis. Introduction a la Thologie Musumane. Paris: Vrin, 1981, apud [Lau97]. Agazzi, Evandro. La logica simbolica. Barcelona: Herder, 1986. Aracil, J. Introduccin a la dinmica de sistemas. Madrid: Alianza, 1978, apud [Tir2002]. Arbib, Michael A. Brain, Machines and Mathematics. New York: Spring-Verlag, 1987. Artigas, Mariano. El desafio de la racionalidad. Barcelona: EUNSA, 1994.

[Aga86] [Ara78]

[Arb87]

[Art94]

[Asp90]

Aspray, Willian. John von Neumann and the origins of modern computing. New Baskerville: Massachusetts Institute of Technology, 1990.
Barker, Stephen F. Filosofia da matemtica. Rio de Janeiro: Zahar, 1969. Barendregt, H.P. The lambda calculus, its syntax and semantics. Amsterdan: Elsevier Science Publishers B.V., 1984. Berg, H.K. & Boebert, W.E & Franta, W.R. & Moher, T.G. Formal methods of program verification and specification. New Jersey: Prentice-Hall, Inc., 1982. Bell, E. T. Men of Mathematics. New York: Simon & Schuster, Inc, 1937. Brained, W. & Landweber. Theory of computation. New York: Wiley-Interscience Publication, 1974. Bochenski, J. M. Historia de la logica formal. Madrid: Biblioteca Hispnica de Filosofia, 1966. Bolter, J. David. Turings man, western culture in the computer age. Carolina do Norte: Universidade da Carolina do Norte, 1984. Boole, George. El analises matematico de la lgica. Madrid: Catedra, 1984. Bowen, Jonathan P. A brief history of algebra and computing: an ecletic oxonian view. Oxford: Librarian, Oxford University Computing Laboratory, 1994. Boyer, Carl B. Histria da Matemtica. So Paulo: Edgard Blucher, 1974. 147

[Bar67] [Bar84]

[BBF82]

[Bel37] [BL74]

[Boc66]

[Bol84]

[Boo84] [Bow94]

[Boy74]

[Bri79a]

Encyclopedia Britannica The New, Macropaedia. USA: Helen Hemingway Benton, 1979. Encyclopedia Britannica The New, Micropaedia. USA: Helen Hemingway Benton, 1979. Burks, Arthur W. [1951]. An intermediate program language as an aid in program synthesis. Engineering Research Institute, Report for Burroughs Adding Machine Company, 1951. Burks, Arthur W. [1980]. From de ENIAC to the stored-program computer, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980. Burke, Peter. A escola dos annales, 1929-1989-A revoluo francesa da historiografia. So Paulo: Editora UNESP, 1992. Burke, Peter. A escrita da histria-novas perspectivas. So Paulo: Editora UNESP, 1992. Casti, John L. Five golden rules-great theories of 20th-century Mathematics and why they matter. Canad: John Wiley Sons, Inc., 1997. Carvalho, Roberto Lins de & Oliveira, Cludia Maria G.M. de. Modelos de computao e sistemas formais. Rio de Janeiro: DCC/IM, COPPE/Sistemas, NCE/UFRJ, 11a Escola de Computao, 1998. Coelho, Clarimar J. Monografia: apresentao das bases tericas para o desenvolvimento de um sistema de apoio a deciso utilizando resoluo de equaes booleanas. Gois: Depto. Matemtica e Fsica da Universidade de Gois, 1995. Coffa, J. Alberto Wessels. The semantic tradition from Kant to Carnap. Cambridge: Cambridge University Press, 1991. Cohen, Daniel E. Computabilty and logic. England: Ellis Horwood Series in Mathematics and Its Aplications, 1987. Costa, Newton C. A. Introduo aos fundamentos da Matemtica. So Paulo: Editora Hucitec, 1977. Dantzig, T. Number, the language of science. New York: Doubleday Anchor Books, 1954.

[Bri79b]

[Bur51a]

[Bur51b]

[Bur92a]

[Bur92b]

[Cas97]

[CO98]

[Coe95]

[Cof91]

[Coh87]

[Cos77]

[Dan54]

148

[Die81]

Dieudonn, J. Von Neumann, Johann (or John), in Gillespie, Charles C., Dictionary of Scientific Biography. New York: Charles Scribner's Sons, 1981. Fernandez, Luiz Soares. Historia Universal, Volume 1. Pamplona: Edies Universidade de Navarra, 1985. Gates, Bill. A estrada do futuro. So Paulo: Companhia das Letras, 1995. Gosling, James & McGilton, Henry [1995]. The Java language environment- a white paper. California: Sun Microsystems, Inc, 1995. Le Goff, Jacques & Nora, Pierre. Histria: novos problemas. Rio de Janeiro: Livraria Francisco Alves Editora, 1988. Le Goff, Jacques. Histria e memria. Campinas: Editora da UNICAMP, 1994. Goldstine, Herman H. The computer from Pascal to von Neumann. New Jersey: Princeton University Press, 1972. Gomes, Nelson Gonalves. Lgica Matemtica, Curso de Lgica da Faculdade de Filosofia da UnB, apostila para apontamentos de aula, 1997. H.W.B., Joseph [1916|1930]. Introduction to Logic. Oxford: Clarendon Press, 1930. Harrison, John, The history of formal logic.. Revista Mathesis Universalis, 1996, no 2, Formalized Mathematics. Disponvel na internet http://saxon.pip.com.pl/MatUniversalis/2/harrison/jrh03.html. Hermes, Hans. Enumerability, decidability, computability-an introduction to the theory of recursive functions. New York: Springer-Verlag, 1969. Hodges, Alan. Alan Turing: the Enigma. New York: Simon & Schuster, 1983. Hurd, Cuthbert. Computer Development at IBM, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980.

[Fer85]

[Gat95] [GM95]

[GN88]

[Gof94] [Gol72]

[Gom97]

[H30]

[Har96]

[Her69]

[Hod83] [Hur80]

[IEEE95] IEEE Computer Society, Edio comemorativa dos 50 anos da revista. Disponvel na Internet, http://www.computer.org/50. [Ifr89] Ifrah, Georges. Os nmeros, a histria de uma grande inveno. Rio de Janeiro: Globo, 1989. 149

[Kah67] [Kar61] [Kne68]

Kahn, D. The Code Breakers. New York: Macmillan, 1967. Karlson, Paul. A magia dos nmeros. Rio de Janeiro: Editora Globo, 1961. Kneale, Willian & Kneale, Martha O desenvolvimento da lgica. Lisboa: Fundao Calouste Gulbenkian, 1968. Knuth, D. E. The Art of Computer Programming, volume 1. Massachusetts: AddisonWesley, 1969. Knuth, D. E. Ancient babylonian algorithms. In Comm. ACM 15, 671-677(1972); Errata, Comm. ACM 19, 108, 1976. Kowaltowski, Tomasz. Von Neumann: suas contribuies Computao, in Estudos Avanados 10(26). Campinas: UNICAMP, 1996. Knuth, D. E. & Pardo, L. T. The early development of programming languages, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980. Lauand. Luis Jean. tica e antropologia: estudos e tradues. So Paulo: Mandruv, 1997. Lee, J. A. N., Relatrio preparatrio sobre o estudo da Histria da Computao, e propostas preliminares para incluso de aspectos da Histria da Computao curriculum das universidades e colgios, apresentado no Grupo de Trabalho 9.7 (Histria da Computao), do IFIP (International Federation for Information Processing), 24 a 29 de julho de 1995. Lee, John A. N. Annals of the History of Computing, Volume 18, no 2. EUA: Institute of Electrical and Electronics Engineers, Inc., 1996. Lilley, S. Machinery in Mathematics, a historical survey of calculating machines. London: Discovery, 1945. Linden, Peter van der. Just Java. California: The Sunsoft Press, 1996. Lucchesi, C. L. & Simon, I. S. I. & Simon, J. & Kowaltowski, T. Aspectos Tericos da Computao. Rio de Janeiro: Livros Tcnicos e Cientficos S.A., 1979. Lucena, Carlos J.P. Anlise e sntese de programas de computador. Braslia: Editora Universidade de Braslia, 1982.

[Knu69]

[Knu76]

[Kow96]

[KP80]

[Lau97]

[Lee95]

[Lee96]

[Lil45]

[Lin96] [LSSK79]

[Luc82]

150

[May80]

May, Kenneth O. Historiography: a perspective for computer scientists, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980. Moore, Doris Langley. Ada, countess of Lovelace: Byrons legitimate daughter. New York: Harper and Row, 1977. Morrison, Philip & Morrison, Emily. Charles Babbage and his calculatings engines. New York: Dover, 1961. Mosses, Peter D. Action Semantics. Cambridge: Cambridge University Press, 1992. Motoyama, Shozo. In Histria da tcnica e da tecnologia no Brasil. So Paulo: UNESP, 1996. McCulloch , Warren & Pitts, Walter. A logical calculus of the ideas immanent in nervous activity, Bulletin of Mathematical Biophysics, volume 5, 1943. Michelson, A..A.. & Stratton, S.W. A New Harmonic Analyzer. American Journal of Science, 4a srie, vol V, 1898. Naur, P. Randell B. Software Engineering. Rept. NATO Sci. Comm., 1969. Needham, Joseph. Science and civilization in China, volume 3. Cambridge: Cambridge University Press, 1959. Newman, J. R. The world of mathematics. New York: Simon & Schuster, 1956. Nagel, Ernest & Newman, J. R. Gdels Proof, the world of mathematics. New York: Simon e Schuster, 1956. Prez, Rafael Gomes. Histria bsica da filosofia. So Paulo: Nerman, 1988. Realle, G. & Antisseri, Dario. Histria da Filosofia. So Paulo: Edies Paulinas, 1991. Rheingold, Howard. Tools for thought: the people and Ideas of the next computer revolution. New York: Simon & Schuster, 1985. Russell, Stuart & Norvig, Peter. Artificial Intelligence, a modern approach. New Jersey: Prentice Hall Series in Artificial Intelligence, 1995.

[Moo77]

[Mor61]

[Mos92] [Mot96]

[MP43]

[MS98]

[Nau69] [Nee59]

[New56] [NN56]

[Per88] [RA91]

[Rhe85]

[RN95]

151

[Roc81]

Roces, Wenceslao. Lecciones sobre la historia de la filosofia, III. (trad. Vorlesungen ber die Geschichte der Philosophie. Karl Ludwig Michelet, 1842). Mxico: Fondo de Cultura Econmica, 1981. Ryder, John D. Engineering Electronics with Industrial Applications and Control. Toquio: McGraw-Hill Kogakuska, Ltd., 1967. Sanguineti, Juan Jose. Lgica. Pamplona: EUNSA, 1982. Scholz, H.. Abriss der Geschichte, apud [Aga86], pag. 61 Shoenfield, Joseph R. Mathematical logic. Massachusetts: Addison-Wesley Publishing Company, 1967. Singh, Simon. O ltimo teorema de Fermat. Rio de Janeiro: Record, 1999. Shoenfield, Joseph R. Degrees of Unsolvability. Amsterdam: North-Holland Publishing Company, 1971. Steiner, George. Presencias reales. Barcelona: Destino, 1991. Soria, Carlos. De la metfora del cuarto poder a la sociedad de la informacin, in Veinte claves para la nueva era. Madrid: Ediciones Rialp S/A, 1992. Stibitz, George R. Early computers, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980. Tanenbaum, A. S. Organizao Estruturada de Computadores. Rio de Janeiro: Prentice-Hall do Brasil, 1992. Teixeira, Joo de Fernandes Teixeira Mentes e Mquinas. Porto Alegre: Artes Mdicas, 1997. Andrs, Tirso de. Homo cybersapiens, la inteligncia artificial y la humana. Pamplona: EUNSA, 2002. Toynbee, Arnold. Um estudo da histria. Braslia: Martins Fontes & Editora Universidade de Braslia, 1987. Turing, A. M., On computable numbers, with an aplication to the Entscheidungsproblem. Proceedings of the London Mathematical Siciety, volume 42, Londres, 1936.

[Ryd67]

[San82] [Sch31] [Sho67]

[Sin99] [Sho71]

[Ste91] [Sor92]

[Sti80]

[Tan92]

[Tei97]

[Tir2002]

[Toy87]

[Tur36]

152

[Tur50]

Turing, A. M. Computing machinery and intelligence. England: Mind, volume 59, no 236, 1950. Ulam, S. M. Von Neumann: The Interaction of Mathematics and Computing, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980. Veyne, Paul M. [1982]. Como se escreve a histria. Braslia: Editora Universidade de Braslia, 1982. Watt, David A.. Programming language concepts and paradigms. Cambridge: Prentice Hall, 1990. Wexelblat, R. L. [1980]. ACM History of programming language conference, Los Angeles. New York: ACM Monograph, Academic Press, 1980. Wiener, Norbert. Ciberntica. So Paulo: Editora da Universidade de So Paulo e Editora Polgono, 1970. Wilder, Raymond L. Introduction to the foundations of Mathematics. Tquio: John Wiley & Sons, Inc., 1965. Willians, Michael R. History of computing technology. California: IEEE Computer Societ Press, 1997. Zuse, Konrad [1980]. Some remarks of the history of computing in Germany, in A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980.

[Ula80]

[Vey82]

[Wat90]

[Wex80]

[Wie70]

[Wil65]

[Wil97]

[Zus80]

153

Anexo Cronologia (at o ano 2007) *


DATA EVOLUO CONCEITUAL EVOLUO TECNOLGICA

4000 aC 3000 aC 1800 aC 1650 aC 500 aC Aristteles: incio da cincia lgica (Organon, 384 aC cj. de obras editadas posteriormente: lgica formal e filosfica) Euclides, em sua obra Elementos, mtodo 330 aC 250 aC 79 aC 830 1000 Raymundus Lullus, Ars magna: o 1300 de sentenas logicamente corretas 1o Abu Jafar Muhammad ibn Musa axiomtico: teoremas Crivo de Eratstenes para nmeros primos postulados, proposies, Babilnia, mtodos para resolver problemas numricos Rhind Papyrus: palavra lgebra (al-jabr, reunio de partes separadas)

Registros de transaes comerciais em pequenas tbuas Provvel aparecimento do BACO

Egito, baco com fios

Dispositivo Antikythera, para clculo de calendrio lunar alKhwarizmi, lgebra Gerbert de Aurillac ou Papa Silvestre II, baco mais eficiente dispositivo de texto ocidental para produo al-Kashi: Tabac al-Manatec - dispositivo para

1445 John Napier, ponto decimal, tabela de 1614 logaritmos dispositivo que usa ossos para demonstrar a diviso atravs de subtraes e

simplificar clculos de importantes tempos associados aos eclipses lunares John Napier, dispositivo que usa ossos para demonstrar a diviso atravs de subtraes e multiplicao por adies

Esta cronologia vai at o ano 2007 somente, e no sei se sero feitas novas atualizaes, ao menos por esse autor. A histria segue, a tecnologia avana, talvez novos paradigmas alterem rotas, enquanto ns, pobres homens, ficamos... Espero que os interessados no assunto prossigam com a divulgao de novos aspectos ou aprofundamentos da Histria da Computao, proporcionando tambm melhores tabelas (e mais atualizadas!).

154

multiplicao por adies 1622 William Oughtred, rgua de clculo circular baseada nos logaritmos de Napier Wilhelm Schickard, relgio de calcular para multiplicao de grandes nmeros Blaise Pascal, 1a mquina numrica de calcular Leibniz: De Arte Combinatoria; Leibniz, dispositivo mecnico de calcular que multiplica, divide, soma e subtrai Arteso suio cria autmatos com mecanismos 1750 1780 1801 de trabalho temporais para bater teclas e escrever letras Benjamin Franklin, eletricidade. Joseph-Marie Jacquard, cartes perfurados para automatizar seus teares J.H.Herman, primeiro planmetro, dispositivo 1814 Charles Babbage, projeto Engenho Willian Austin Burt, EUA, 1a mquina de escrever Charles Babbage, projeto Mquina Analtica, 1833 cartes perfurados: 1o modelo terico de um computador. 1838 1842 Samuel Morse e Alfrdd Vail demonstram os elementos do sistema de telgrafo Lady Ada Byron, 1o programa para a mquina de Babbage George Boole, The Mathematical Analysis of 1847 Logic - nasce a Lgica Simblica; sistema binrio 1854 1855 1855 1858 George Boole, An Investigation of the Laws of Thougt James Clerk Maxwell: planmetro rotacional George e Edvard Scheutz de Estocolmo, 1o computador mecnico, baseados no trabalho de Babbage. Jako Amsler: planmetro polar (pr-computador analgico para medir rea coberta por uma curva em um grfico 1822 1829 Diferencial para calcular logaritmos characteristica universalis

1624 1642 1666 1673

155

analgico) 1876 O telefone inventado por Alexander Graham Bell Sir Willian Thomson (Lord Kelvin): analisador harmnico (pr-computador analgico) Gottlob Frege: Begriffsschrift (Ideografia ou Conceitografia) - rigor formal Cantor - desenvolvimento da Teoria dos Conjuntos William Burroughs, 1a mquina mecnica de calcular Herman tabuladora Herman Hollerith, mquina eletromecnica, cartes perfurados, censo EUA Gottlob 1893 Frege: Grundgesitze da (Leis Fundamentais Aritmtica, Hollerith, patente de mquina

1878 1879 1874- 97 1886 1889 1890

Ideograficamente deduzidas) - reduo da aritmtica logica, teoria da linguagem Guglielmo Marconi transmite um sinal de rdio Hilbert, 10o problema: existe procedimento de deciso para soluco das equaes diofantinas? Hollerith funda a Tabulating Machine Co. e constri um dispositivo classificador Nikola Tesla, patenteia um circuito lgico

1895 1900

1903 1904 G. 1908 Peano: Formulrio Matemtico,

eletrico chamado porta ou chave John A. Fleming patenteia um tubo de diodo a vcuo (vlvula) simbolismo conectado com estrutura das linguagens naturais Bertrand Russell e Whitehead: Principia

1913

Mathematica, dedues matemticas a partir do clculo lgico Kamerlingh Onnes, fsico, na Universidade de Leiden descobre a supercondutividade Computer-Tabulating-Recording Company formada da unio de Tabulating Company, Computing Scale Company, e International Time Recording Company

1911

1911

156

O uso de microchips prefigurado pelo fsico 1915 Manson Benedicks que descobre que o cristal de germnio pode ser usado para converter corrente alternada para corrente direta Eccles e Jordan, fsicos americanos, inventam o 1919 A palavra robot usada pela 1a vez por 1921 Karel Cpek, em seu trabalho Rossums Universal Robots Computing-Tabulating-Recording 1924 Machines Vannevar 1925 em MIT 1927 Radio-telefonia torna-se operacional entre Londres e Nova Iorque Powers Accounting Machine Company torna-se 1927 1928 1928 Tabulating Machines Division da RemingtonRand Corp. Aparece o relgio de cristal de quartzo Vladimir Zworykin, inventa o tubo de raios catdicos O 1930 1930 Gdel: Teorema da Incompletude Reynold B. Johnson, professor em Michigan, inventa um processo de marcar em uma folha de 1931 respostas atravs de uma caneta sensvel condutividade. A IBM comprou mais tarde esta tecnologia 1931 1o computador mecnico construido na Alemanha, por Konrad Zuse 1a mquina eletrnica que se comunica, Voder, 1933 Konrad Zuse compreende que programas compostos de combinaes de bits podem construda por Dudley, que seguiu em 1939 com o Vocoder (codificador de voz) 1936 Analisador Diferencial, inventado por Vannevar Bussh e colegas, no MIT, resolve inmeras equaes diferenciais Bush, inicia a construo de dispositivo para resolver equaes diferenciais, Company muda seu nome para International Business chaveamento eletrnico flip-flop, crtico para altas velocidades

157

ser armazenados 1936 1936 1937 1937 Claude Shannon: princpios para um somador eletrnico de base 2 Howard Aiken submete IBM proposta de 1937 mquina calculadora digital, capaz de fazer as 4 operaes fundamentais e operar mediante instrues sequenciais 1937 John Vincent Atanasoff elabora os princpios para um computador eletrnico digital Zuse 1938 Z2 1938 1938 Isaac Asimov: termo robot Trabalhando de outubro a novembro, John 1939 Vincent Atanasoff com Clifford E. Berry, controem um prottipo de computador eletrnico digital que usa aritmtica binria 1940 1940 1940 1940 Colossus projetado por Alan M. Turing e iniciada a sua construo por M.H.A. 1941 Neuman e Tommy Flowers, Universidade de Manchester, 1o dispositivo de calcular Konrad Zuse constri o computador Z3 a 1a 1941 mquina de calcular com controle automatico de suas operaes 31-V, comea a construo do ENIAC, na 1943 Moore Filadelfia School of Electrical Engineering, eletrnico(participao de Alan Turing) Bell Labs, George Stibitz, Calculador de Nmeros Complexos, computador digital TV a cores Bell Laboratories, 1o terminal. Konrad Zuze completa o Z2 Hewlett-Packard Co. fundada para fazer equipamentos eletrnicos completa o Z1, computador eletromecnico binrio e o refina desenhando o Alonso Church: funces computveis, indecidibilidade da lgica de 1a ordem Alan M. Turing, Universidade de Princeton: computabilidade e Mquina de Turing George Stibitz, 1o circuito binrio baseado na lgebra booleana, Bell Telephone Laboratories

158

1943 Post: 1o sistema gerativo para computao simblica

Dezembro, Colossus, torna-se operacional em Bletchley Park

1943

Mark I (IBM Automatic Sequence Controlled 1944 Calculator) terminado pelo prof. Howard H. Aiken em Harvard junto IBM: baseado em rels 1944 1945 J. Presper Eckert e John Mauchly assinam contrato 1945 para construir o EDVAC (Electronic Discrete Variable Automatic Computer). John von Neumann introduz o conceito de programa armazenado, no rascunho do projeto do EDVAC 1945 Na primavera deste ano ENIAC es pronto e executando Trabalhando em um prottipo do Mark II, 1945 Grace Murray Hopper encontra o 1o bug, uma mariposa que causou uma falha em um dos rels Binac 1946 1946 Wiener: ciberntica ENIAC (Electronic Numerical Integrator and 1946 Computer), J. Presper Eckert e John Mauchly, 18.000 vlvulas, Universidade de Pensilvnia. 5.000 adies e 360 multiplicaes por segundo Arthur Burks, Herman Goldstine, e John von 1946 Neumann escrevem Preliminary Discussion of the Logical Design of an Electronic Computing Instrument Eckert-Mauchly 1946 1946 1947 1947 John Tukey, conceito de bit Alan M. Turing, artigo sobre Mquinas Inteligentes, incio da IA Association for Computing Machinery Computer Corporation constituida como Electronic Control Co., Universal Automatic Computer (Univac). (Binary Automatic Computer), computador para operar em tempo real, iniciado por Eckert and Mauchly; completado em 1949 Grace Murray 1o programador do Mark I Z4 de Zuze sobrevive II Guerra

159

(ACM) constituida 1947 Howard Ayken e equipe completam o Harvard Mark II EDSAC (Electronic Delay Storage Automatic 1948 1948 1948 Calculator), na Universidade Cambridge, por Maurice V. Wilkes IBM introduz o computador eletrnico 604 IBM constri o Selective Sequence Electronic Calculator (SSEC), computador com 12,000 vlvulas 1948 Inveno do Transistor, William Bradford Shockley e John Bardeen e Walter H. Brattain Manchester Mark I, ou baby machine, 1948 Claude E. Shannon publica A Mathematical 1948 Theory of Communication, formulando as bases para uma moderna compreenso dos processos de transmissao de informao Richard Hamming encontra e corrige erros 1948 em blocos de dados. O cdigo Hamming usado posteriormente em computadores e chaveamentos telefnicos EDVAC 1949 (Electronic Discrete Variable Automatic Computer) discos magnticos 1949 Computador Whirlwind, MIT: 1o computador de tempo-real, Jay Forrester e Ken Olsen EDSAC (Electronic Delayed Storage Automatic 1949 Computer), computador com programa armazenado, Maurice Wilkes, Universidade de Cambridge, faz seu 1o calculo dia 6 de maio Short Order Code, desenvolvido por John 1949 Mauchly, a 1a linguagem de programao de alto nvel 1949 Claude Shannon inventa a 1a mquina de jogar xadrez Claude Shannon inventa a 1a mquina de jogar xadrez Jay Forrester inventa a memria de ncleos magnticos Maurice V. Wilkes, universidade de testado com os 1os computador digital operacional, com programa armazenado

1949 1950

160

Cambridge, usa uma linguagem simblica de montagem(assembler) no EDSAC SEAC (Standards Eastern Automatic Computer) 1950 1951 1951 1951 1951 1951 1o manual de computador, Fred 1a conferncia V. internacional Wilkes, conceito sobre de computadores Maurice microprogramao IEEE Computer Society constituida UNIVAC I instalado no Bureau of Census americano, usando fita magntica como um buffer de memria 1952 1952 1952 1952 1952 1952 Gruenberger. Kleene: teorema da forma normal, funes recursivas Computador IAS (von Neumann): a maioria das mquina atuais utiliza este projeto IBM 701 Nixdorf Computer i fundada na Alemanha RCA desenvolve o Bizmac, com memria de ncleos magnticos e um tambor magntico para o 1o banco de dados 1953 Burroughs Corp. instala o Universal Digital 1953 Electronic Computer (UDEC) na Remington-Rand, para uso no Univac, 1a impressora de alta velocidade 1o dispositivo de fita magntica, o IBM 726, 100 1953 caracteres-por-polegada de densidade e 75 polegadas por segundo de velocidade 1954 FORTRAN desenvolvido por John Backus, 1954 1954 IBM. Harlan Herrick executa com sucesso o 1o programa em FORTRAN Gene Amdahl, 1o sistema operacional, IBM 704 Earl Mastersons Uniprinter, ou impressora de linha, desenvolvida para computadores, 600 lpm universidade de Wayne State 1953 1o computador da IBM para grandes massas de dados: utilizando tambores magnticos desenvolvido para o National Bureau of Standards William Shockley inventa o transistor de juno

161

1954 1956 APT (Automatic Programmed Tool) desenvolvido por D.T. Ross Edsger Dijkstra: algoritmo eficiente para 1956 caminhos curtos em grafos e minimizar expanso de rvores 1956 A. Newell, D. Shaw e F. Simon inventam o IPL (Information Processing Language.) Logic Theorist: dispositivo baseado em IA 1956 capaz de provar prpoposies lgicas (Dartmouth College) John McCarthy e Marvin Minsky renem-se 1956 em Dartmouth College onde o conceito de inteligncia artificial desenvolvido 1956 O termo Inteligncia Artificial usado por John McCarthy.

Univac 1103a: a 1a mquina comercial com memria de ncleos de ferrite

Control Data Corporation formada por 1957 Ford e Fulkerson: avanos na combinatria e 1957 algoritmos eficientes para cculo de fluxo mximo em redes 1957 Digital Equipment Corporation fundada por Ken Olsen William C. Norris e grupo de engenheiros da Sperry-Rand

John Backus e colegas da IBM desenvolvem 1957 o 1o compilador FORTRAN para a Westinghouse ALGOL, primeiramente chamado IAL 1958 (International Algebraic Language), A 1a mquina de memria virtual, Atlas, 1958 instalada na Inglaterra por Ferranti. Desenvolvida ne Universidade de Manchester por R.M. Kilburn 1958 1os computadores eletrnicos no Japo: NEC1101 e -1102 Frank Rosenblatt contri o Perceptron Mark I 1958 usando uma CRT (character caracter recognation) como dispositivo de sada apresentado em Zurich

162

LISP, IBM 704, MIT, John McCarthy: 1958 processamento de listas, recursividade, Seymour Cray constri o 1o supercomputador 1958 19581959 1958 1958 1959 1959 1959 Jack S. Kilby na Texas Instruments arquiva uma patente para o 1o circuito integrado Robert Noyce da Fairchild Semiconductor 1959 desenvolve a idia de um bloco de circuitos integrados 1960 1960 1960 1960 1960 1960 Mtodos heursticos para problemas Benjamin Curley, 1o minicomputador, o PDP-1, na Digital Equipment Corporation Control Data Corporation, CDC 1604, 1o computador cientfico intratveis: Karp e Kernigan Hoare, Dijkstra, Bobo Floyd: mtodos formais para corretude de programas Inst.Pesq.Stanford & Univ. Edimburg: equipe de IA para projetar robot com viso Algol 60 desenvolvido por cientistas da computao americanos e europeus O 1961 conceito de multiprogramao implementado no IBM 7030. Time-sharing implementado no MIT no IBM 709 and 7090 por F. Corbato. IBM desenvolve o IBM 7030 para Los Alamos: 1961 1962 APL (A Programming Language), Ken transistorizado, 64-bit data paths, 1o de byte de 8 bits; em uso at l971 COBOL definido pela Conference on Data System Languages (Codasyl) IBM monta seus 1os computadores transistorizados: 1620 e 1790 N. Chomski, M. Rabin: especificaes formais Ultimate, 1o robot, F.Engleberger e George C. Devol, na Gen.Motors, controlar mq. trmicas Jack Kilby da Texas Instruments elabora o 1o circuito integrado totalmente transistorizado para a Control Data Corp., o CDC 1604 lambda calculus, acelerao pesquisas IA

163

Iverson, Universidade de Harvard University e IBM Linguagens de simulao de uso geral: (1) 1962 1962 1962 1963 1963 Cdigo ASCII padro para troca de B5000 (Burroughs): primeira mquina projetada para uma linguagem de alto nvel Consoles grficas, General Motors (DAC-1) e 1963 MIT Lincoln Laboratories (Sketchpad), resultando em computer-aided design (CAD). 1a light-pen, desenvolvida por Ivan Sutherland 1963 1964 DEC, PDP-5 minicomputador IBM System 360, 1a famlia de computadore compatveis (circuto integrado) Control Data Corporation, CDC 6000, palavra 1964 de 60 bits, processamento paralelo. CDC 6600, o mais poderoso computador por longos anos. Projetado por Seymour Cray BASIC (Beginners All-purpose Symbolic 1964 Instruction Language) criado por Tom Kurtz e John Kemeny of Dartmouth Universidade de Belgrado, Rajko Tomovic 1965 faz uma das 1a tentativas de desenvolver um mecanismo artificial sensvel ao toque Robin M., Yamada, Edmond, Hartman & 1965 Stearns: Teoria da Complexidade Texas Instruments oferece a 1a calculadora de mo baseada em estado slido A.H. Bobeck, na Bell Laboratories desenvolve a 1a memria de bolha magntica Computacional 1966 1967 SIMSCRIPT, por Rand Corporation; (2) GPSS por IBM IBM 1311 discos removveis H. Ross Perot funda EDS (Electronic Data Systems), Dallas, TX. informaes entre computadores

164

Ole-Johan Dahl e Kristen Nygaard, no 1967 Norwegian Computing Centre terminam uma verso da linguagem de uso geral Simula, a 1a orientada a objeto

Donald Knuth: The Art of Computer 19681973 Programming, algoritmos e estruturas de dados como entidades separadas dos programas 1968 1968 Edsger Dijkstra escreve sobre programao estruturada Dendral, 1o programa de diagnstico mdico, Joshua Lederberg, Universidade de Stanford Edson de Castro deixa a DEC to comear a 1969 1a Confer. Internacional sobre Inteligncia Artificial IBM abre hardware e software; introduz linha de minicomputador, Sistema /3 Complilador PASCAL, by Nicklaus Wirth, instalado no CDC 6400 Shakey, desenvolvido na SRI International, o 1o 1970 1970 1970 1970 1971 1971 1971 Cook, Levin: problemas NP-completos Intel Corporation anuncia o 1o microprocessador, o Intel 4004, equipe liderada por Marcian E. Hoff. 1971 John Blankenbaker, 1o computador pessoal, Kenbak I 1a calculadora eletrnica, por Jack Kilby, Jerry Merryman, e Jim VanTassel, da Texas 1o torneio de xadrez entre mquinas da ACM IBM monta o 1o Sistema 370, computador de 4a gerao Floppy disks so introduzidos para carregar o microcdigo do IBM 370 robot que usa inteligncia artificial para se deslocar DEC, PDP-11/20, 1o mini de 16 bits IBM abre hardware e software; introduz linha de minicomputador, Sistema /3 Data General Corp. e introduz o Nova, 1o minicomputador de 16 bits 1969 1969 1969

1972

165

Gary Kildall, Naval Postgraduate School 1972 escreve o PL/1, a 1a linguagem de programao para o microprocessador Intel 4004 1972 1972 1972 Dennis Ritchie desenvolve a linguagem C nos Bell Labs Teorias 1972 de anlise de complexidade desenvolvem a idia da incompletude dos problemas NP, mostrando a intratabilidade de determinados problemas computacionais como o do caixeiro viajante 1973 1973 Linguagem PROLOG, Alain Comerauer, Universidade de Marseilles-Luminy, Frana R2E comercializa o MICRAL, 1o microcomputador da Frana Winchester disk drives, pela IBM, nome usado 1973 para seu dispositivo de acesso direto memria, Modelo 3340 1974 1974 1975 1975 1975 1975 Intel 8080, microprocessador de 8 bits, usado em muitos microcomputadores Zilog formada Cray-1, supercomputador Impressora laser (IBM) MITS, computador pessoal Altair, Ed Roberts and Bill Yates. Cincinnati Milacron T3, 1o robot da indstria aeroespacial Microsoft formada aps Bill Gates e Paul Allen 1975 1976 1976 1976 1976 MYCIN, expert system, Stanford, por E. Shortliffe NEC System 800 e 900, mainframes Seymour Cray desenvolve o Cray 1 com 100 milhes de operaes de ponto flutuante por segundo (MFLOP) adaptarem e venderem um BASIC para o Altair PC da MITS Impressoras jato de tinta (IBM) SIRCH, dispositivo capaz de reconhecimento e orientao, Universidade de Nottingham Intel 8008, microprocessador de 8 bits

166

1976 1976 1976 1977 1977 1977 1978 1978 1978 1979

Kernigan: algoritmos aproximativos; Solovai e Strassen: algoritmos randomizados Superminicomputadores so apresentados por Perkin-Elmer e Gould SEL. Zilog Z-80 chip Apple Computer formada e apresenta o computador pessoal Apple II DEC, supermini VAX-11/780, 32 bits Datapoint , sistema ARC system, a 1a rea de rede local Popularizao da anlise estruturada (Tom de Marco) Texas Instruments, brinquedo educacional Speak-and-Spell, sntese de voz 1a COMDEX Linguagem Ada, CII-Honeywell Bull (Frana), Jean Ichbiah Benoit Mandelbrot continua sua pesquisa sobre z(n) - (0) fractais, gerando o conjunto

1979

Mandelbrot, derivado de z(n + 1) = z(n) * VisiCalc, software de planilha eletrnica Wordstar, software de processamneto de texto, Micropro (agora Wordstar International). Control Anlise probabilstica de algoritmos Microsoft licencia o sistema operacional UNIX, da Bell Laboratories e aprsenta sua adaptao, o XENIX Criptografia: protocolos de chave pblica, baseados na gerao de nmeros primos Commodore, VIC-20 computador domstico IBM entra no mercado de computadores pessoais Osborne Computer, Osborne 1, o 1o laptop Linguagens robticas para facilitar gargalos de programao John Warnock desenvolve o PostScript, para uso Data Corporation, Cyber 205 supercomputador

1979 1979 1980 1980 1980

1980-90 1981 1981 1981 1981 1982

167

linguagem para definio de pginas e com Charles Geschke funda a Adobe Systems. 1982 1982 1983 At AT&T Bell Labs, Bjarne Stroustrup 1983 1984 1984 1984 1984 1984 1985 1986 1986 Aldus apresenta o PageMaker, para o Macintosh: incio da era da edio desktop Incio da popularizao da palavra e conceito Case Compaq, srie Fortune 500; 1o based PC HP, 1986 1986 1987 1987 1987 1987 Watts Humphrey e William Sweet, Instituo de Engenharia de Software, EUA, publicam 1987 uma estrutura de processos que se torna um modelo para ajudar desenvolvimento de software confivel 1987 1987 1988 Aldus, PageMaker para IBM PC e compatveis Texas Instruments: 1o chip microprocessador baseado em IA Cray Research, Cray Y-MP, supercomputador de 20 milhesde dlares Eiffel, linguagem orientada objeto IBM PS/2 Cray Research, Cray 2S, 40% mais rpido que Cray 2 ETA Systems, ETA-10, supercomputadores Sun Microsystems, 1a workstation baseada microprocessador RISC linha Spectrum, RISC computadores instruction com set tecnologia computers) (reduced Intel 80386Programao Linear: algoritmo de Karmakar Linguagem funcional Standard ML CD-Rom, Sony e Philips continua seu trabalho sobre o C++, uma extenso orientada a objeto para C Apple, computador Macintosh IBM introduz o PC AT Sun Microsystems formada Microsoft, MS-DOS Cray 2, 1 bilho de FLOPs (floating point operations per second)

168

1988 1988 1988

IBM, sistema operacional MVS/ESA Motorola, 88000, um microprocessador RISC O 1o supercomputador para aplicaes grficas, por Apollo, Ardent e Stellar AT&T anuncia plano de adquirir 20% da Sun Microsystems, que ir ajudar no Sun Microsystems 80386-based workstations Next workstation computer: 1o computador usando discos ticos apagveis Internet network Barry Boehm publica uma descrio do modelo espiral para desenvolvimento de software DEC workstation usando computadores com tecnologia RISC Intel 80486 microprocessador e I860 RISC/coprocessador. Chips com mais de um milho de transistores. Sun Microsystems, SPARCstation Cray se reestrutura em duas cias: Cray Research e Cray Computer Corp., esta liderada por Seymour Cray, o qual desenvolver um supercomputador baseado em glio-arsnio Mais de 100 milhes de computadores no mundo Pocket anuncia o 1o computador de pequeno porte com MS-DOS Grid introduz um laptop sensvel ao toque, que reconhece escrita a mo Notebook com bateria: LTE e LTE/286 da Compaq DEC mainframe VAX 9000 O 1o computador pessoal com tecnologia EISA O 1o computador baseado no chip 80486 Berners-Lee escreve um prottipo inicial para a World Wide Web, que usa suas outras criaes: URLs, HTML, e HTTP Motorola microprocessador 68040 Internet network

1988 1988 1988 1988 1988

desenvolvimento de nova verso para UNIX

1989

1989 1989

1989

1989 1989 1989 1989 1989 1989 1989 1990 1990

169

1990 1990 1990 1990 1990 1990 1990 1990 1990 1990 1990 1990 1991 1991 1991 1991 1991 1991 1991 1991 SunSoft, subsidiria da Sun Microsystems 1991 anuncia o Solaris, sist.operacional UNIX para SPARC workstations e 386/486 PCs. 1991 1992 1992 1992 1992 1992 1992 1992 Haskell, a ltima evoluo das linguagens funcionais, para uso geral Microsoft Windows 3.0 IBM PS/1

IBM RISC Station 6000 DEC VAX tolerante a falhas Cray Research, supercomputador, Y-MP2E

IBM PS/1 IBM System 390, mainframe dos ano 90 Microsoft Windows 3.0 Apple, Classic, LC e IISI Intel i486 e iPSC/860 e Motorola 68040 Sun Microsystems SPARCstation 2 As primeiras estaes SPARC compatveis Advanced Micro Devices, microprocessador AMD 386 microprocessor, para competir com chip Intel 386 Notebook PCs HP, srie 700 RISC-based 9000 Intel 486SX, NCR assumida pela AT&T Sistema operacional Apple 7.0 Microsoft DOS 5.0 Borland compra Ashton-Tate

Wavetracer, Zephyr, computador paralelo com 8192 processadores IBM OS/2 2.0 Microsoft Windows 3.1 Sun Microsystems lana famlia SPARCstation Digital Equipment anuncia sua prxima gerao de computadores com arquitetura baseada tecnologia RISC, o Alpha Microsoft Windows for Workgroup Intel Pentium Hewlett-Packard LaserJet 4, de alta resoluo (600 x 600)

170

1992

Novell adquire UNIX Systems Laboratory Estudante e o staff do Centro de Aplicaes Supercomputadores, Universidade na de

1993

Illinoiscriam, criam uma interface grfica para usurio para navegao INTERNET chamada NCSA Mosaic

1993 1993 1993 1993 1993 1993 1993 1993 Sun Microsystems licensia NextStep Leonard Adleman, da Universidade de 1994 Southern California demonstra que o DNA pode ser usado como um medium para computadores O 1o browser para o Netscape torna-se 1994 disponvel e possibilta o rpido crescimento de surfistas WEB Em abril, Jim Clark e Marc Andreesen 1994 1994 Linguagem de programao Java, apresentada 1995 em maio, possibilita desenvolvimento de aplicaes com independncia de plataforma fundam a Netscape Communications (originalmente Mosaic Communications)

CARMEL, robot de Univ. de Michigan, robtica auxiliada por computador Novell NetWare 4.0 Motorola PowerPC, microprocessador Microsoft Windows NT Microsoft Plug and Play e Microsoft at Work (MAW) IBM workstation baseada em chip PowerPC IBM OS/2 para Windows

Intel introduduz o 486DX4

Em

julho

de

1995,

pesquisadores

da

Universidade de Tokyo quebram a barreira do 1 1995 teraflop com o processador 1.692-GRAPE4(GRAvity PipE nmero 4), computador para aplicaes especiais: simulaes astrofsicas, especialmente os problemas gravitacionais 1995 1996 Windows 95 lanado dia 24 de agosto O Intel Pentium Pro anunciado

171

1996 1997 1997 1997

CRAYT3E-900, computador de uso geral com 1.8 teraflop Sistema StarMax 6000 da Motorola Lanamento do Windows NT 5.0 Seagate Technology lana drive rgido para disco de 3,5 de 2,5 Gigabytes: o Seagate Medalist Verso 333 Mhz do processador Intel II. Nomeado Deschutes, este processador usa o novo processo industrial que o torna mais rapido, gerando menos calor que antes Nova verso do Windows 98 Nova verso do kernel do Linux, a 2.2.0. O nmero de pessoas que usam Linux calculado em mais de 10 milhes Nova verso do processador AMD Athlon: 750 Mhz MS Windows 2000 Novas verses dos processadores AMD Athlon e Intel Pentium III: 1 GHz Compaq iPAQ, para a plataforma DEC Itsy Mac OS X da Apple. Sistema operacional com interface grfica baseada em Unix Polmica do bug do milnio (Y2K Bug) Lanamento do Kernel do Linux 2.4 Lanamento do primeiro iPod da Apple MS Windows XP Lanamento do Lindows Lindows alia-se Microtel Lanamento do Kernel do Linux 2.6 Microsoft Office 2003 2003 Motherboard Intel Canterwood Surge o vrus Worm Blaster 2003 Intel Prescott Multithreading Comunicaes WiFi Mozilla Firefox 1.0 nVidia releases GeForce 6800 Windows Vista Migrao da plataforma processadores Intel Macintosh para

1998

1998 1999

1999 2000 2000 2000 2000 2000 2001 2001

2002

2003 2003 2003 2003 2003 2003 2004 2004 2005 2005

172

2006 2006 2007

Web 2.0 Apple lana o iPod Nano, o menor iPod com tela LCD e o iPod Video, com capacidade de armazenamento de at 80GB Maio: novo sistema Cray XT4 parapreviso de tempo instalado no CSCS-Swiss National Supercomputing Centre: 2.6 GHz, 4.5 Tflops.

Nota: de autoria individual a separao da evoluo conceitual e tecnolgica, observando-se que h casos onde difcil se estabelecer uma distino rgida entre idia e equipamento. Saliente-se tambm que algumas das datas indicadas so conjeturais e, freqentemente, controversas, e que, dada a multiplicidade das reas e eventos dentro destas, muito possivelmente o quadro estar incompleto.

173

Anexo O mtodo axiomtico e as cincias dedutivas *


O problema do mtodo axiomtico para Aristteles surge da anlise da estrutura de uma demonstrao. Esta consta de trs partes fundamentais: o que se quer demonstrar (ou seja, a concluso), os axiomas (as premissas verdadeiras de que se parte) e um gnero cujas propriedades so objeto de demonstrao (Analticos II, A, VII, 75a, 39 75b,2). Que toda demonstrao tenha que partir de premissas que no podem ser objeto de demonstrao e que qualquer definio deva se ater a uns poucos termos tomados como primitivos e no definveis por seu lado, dentro do sistema, provado por Aristteles de maneira bastante clara. Sustentamos, no entanto, que nem toda cincia demonstrativa, mas sim que a do imediato no se constitui por demonstrao. ( evidente que deve ser assim, pois se os antecedentes a partir dos quais se estabelece a demonstrao devem ser conhecidos e se o processo demonstrativo deve terminar em proposies imediatas, necessrio que estas sejam indemonstrveis). evidente tambm que no possvel em absoluto demonstrar mediante um processo circular, visto que a demonstrao parte de premissas prvias e mais conhecidas que a concluso, e visto que uma coisa no poder ser ao mesmo tempo antecedente e conseqente sob o mesmo aspecto, se bem possa ser prvia para ns enquanto posterior em si mesma, como ocorre quando se conhece por induo... queles que afirmam que possvel estabelecer demonstraes de carter circular, pode-se objetar no somente pelo dito acima, mas tambm que se limitam a dizer que, se algo , ento ... (Analticos II, A, III, 72b, 18ss). Neste texto, junto a uma considerao de carter gnoseolgico (isto , relativo a nossa maneira de conhecer) que o reconhecimento de que as premissas imediatas devem ser evidentes, h uma pontualizao de carter claramente lgico-metodolgico: a de que no pode haver demonstraes com um regresso ao infinito, e nem um processo circular, de modo que todo sistema dedutivo deve partir de axiomas. Como um complemento, mais notvel ainda do que apontar o mtodo axiomtico como o mais adequado para as cincias dedutivas ter aplicado o mtodo prpria lgica. Porque isso implica considervel dificuldade conceitual: axiomatizar uma teoria dedutiva significa essencialmente estabelecer certas premissas (os axiomas) e no admitir nela seno proposies (ou teoremas) deduzidas desses axiomas mediante o uso da lgica. Como poder ento pensar-se em axiomatizar a prpria lgica? Porque para faz-lo seria necessrio adotar novos axiomas (os princpios lgicos) e depois fazer dedues a partir deles mediante o emprego da ... lgica! Ou seja, usar a lgica para a lgica. No possvel aqui estudar isso, mas a grosso modo a soluo e foi o que Aristteles fez para sua silogstica consiste em admitir que tambm na lgica possvel adotar certas estruturas consideradas como primitivas e, depois, extrair outras delas mediante determinados procedimentos ou regras de transformao, que no tm por sua vez carter de estruturas, mas sim o de operaes verificveis sobre estruturas. Na matemtica, uma axiomatizao da teoria dos nmeros havia sido oferecida desde 1888 pelo matemtico alemo Richard Dedekind, em seu revolucionrio tratado Os
*

Baseado em [Aga86] e em artigo da Scientific American Brasil, edio Gnios da Cincia Matemtica: A vanguarda matemtica e os limites da razo

174

nmeros: o que so e para que servem?, no qual buscava estabelecer as propriedades da sucesso dos nmeros naturais que sejam independentes, vale dizer, no se possam deduzir umas das outras, mas a partir das quais se possa construir todas as outras. Assim, ele construiu a teoria dos nmeros com base nos seguintes axiomas: 1) 1 um nmero; 2) o sucessor de todo nmero um nmero; 3) nmeros distintos tm sucessores distintos; 4) 1 no sucessor de nenhum nmero; 5) o conjunto dos nmeros naturais o menor conjunto S tal que 1 pertence a S e o sucessor de todo elemento de S tambm pertence a S. Esse ltimo axioma, fundado no princpio de induo (ou de recorrncia), havia permitido a Dedekind excluir da classe de modelos para sua teoria todas as estruturas que contivessem, para alm dos nmeros naturais, elementos estrangeiros (nmeros que, depois, sero nomeados no-standard), e, assim, demonstrar a possibilidade de definir exatamente a estrutura dos nmeros naturais. No entanto, para construir seu sistema de axiomas, Dedekind havia utilizado de maneira informal a teoria dos conjuntos. Mais especificamente, ele colocara no mesmo nvel objetos, expresses referidas a objetos e expresses referidas a outras expresses (ver o axioma 5): sua aritmtica era de segunda ordem. Deve-se ao matemtico italiano Guiseppe Peano a etapa seguinte, decisiva para a axiomatizao da matemtica. Em sua obra Arithmetices principia nova methodo exposita, publicada um ano depois dos trabalhos de Dedekind, Peano apresentou um sistema de axiomas para os nmeros naturais que lembrava de maneira espantosa o sistema de Dedekind, apesar de concebido de modo independente. O matemtico italiano, contudo, no construra sua teoria dentro do contexto conjuntista, e introduziu uma notao (que, com uma ou outra modificao, tornou-se padro) destinada a contornar certas ambigidades inerentes linguagem natural. Seu objetivo era captar, com o maior rigor possvel, a natureza lgica do princpio de induo, ou seja, a lgica de segunda ordem. Ver anexos Deduo e Induo na Matemtica e A Aritmtica de Peano.

Anexo Deduo e Induo na Matemtica *

Baseado em [Sho67], [Dan54] e [CO98]

175

Uma das principais caractersticas da cincia Matemtica, ao contrrio das demais cincias, o uso de provas em vez de observaes. Um fsico deve provar as leis fsicas a partir de outras leis fsicas, mas ele normalmente decide via observao: a prova final de uma lei fsica. Um matemtico eventualmente usa a observao. Por exemplo: ele pode medir os ngulos de vrios tringulos e concluir que a soma dos ngulos sempre 180. Entretanto, ele somente aceitar isto como uma lei matemtica quando estiver logicamente provado dentro de um sistema axiomtico. As leis que regem este tipo de raciocnio so antigas. Embora formuladas sistematicamente por Aristteles, eram j conhecidas muito antes dele. Elas so uma espcie de espelho do intelecto humano: todo homem inteligente aplica de algum modo essas leis para alcanar os seus objetivos no dia a dia. Sabe que para raciocinar corretamente deve antes escolher algumas premissas sem ambigidades, e ento seguir passo a passo uma seqncia lgica de aes. Assim dever chegar a uma nica conseqncia, de acordo com o processo lgico seguido. Caso no chegue, ir provavelmente rever se aplicou corretamente as regras lgicas do processo, e se tudo foi aplicado corretamente, significar que h algo de errado em suas premissas. Mas no fcil estabelecer o conjunto de premissas para um determinado domnio de conhecimento: exige-se no s um juzo crtico apurado mas grande habilidade tambm, assim como imperativo que cada premissa seja independente da outra e que todo o sistema esteja abrangendo a questo investigada. O campo da matemtica que lida com tais problemas chamado de axiomtica e foi cultivado por homens do calibre de Peano, Russell e Hilbert. No anexo sobre A concepo formalista da matemtica desenvolvem-se um pouco mais estas idias. Por ora basta saber que esse processo acima descrito chamado de dedutivo e caracteriza o pensamento matemtico. Ele encontrou sua completa realizao na geometria, e por esta razo a estrutura lgica da geometria tornou-se modelo das cincias exatas. De diferente natureza outro mtodo usado nas investigaes cientficas: a induo. Geralmente descrito como o mtodo que vai do particular para o geral. o resultado de observaes e experincias. Para se descobrir uma propriedade de uma certa classe de objetos, repetem-se testes tantas vezes quanto possvel, sob circunstncias semelhantes. Se uma determinada resposta tende a acontecer na maioria das vezes, tal tendncia aceita como uma propriedade daquela classe de objetos. Porm na matemtica tal processo no pode ser utilizado, pois bastaria uma nica resposta diferente das demais para negar uma determinada assertiva *. No entanto, algumas propriedades da aritmtica, como a associativa, comutativa, etc., podem ser demonstradas por um mtodo dedutivo chamado de raciocnio por recorrncia, muitas vezes tambm denominado induo matemtica ou induo finita ou ainda induo completa. Foi introduzido na teoria dos nmeros pelo matemtico italiano Giuseppe Peano, e desde ento vem sendo vastamente aplicado na matemtica e, em particular, na teoria dos conjuntos. Abaixo segue uma breve explicao desse procedimento, que est formalizado no anexo A Aritmtica de Peano.
*

Considere por exemplo a expresso n2 n + 41. Para n = 1,2,3,...40, gera-se em todos os casos um nmero primo. Seria um erro primrio dentro da matemtica pensar que tal expresso sempre gerar um nmero primo...

176

As propriedades principais do conjunto dos nmeros naturais so: 1. Os nmeros naturais podem ser gerados a partir do nmero natural 0 (zero) via a operao do sucessor: o sucessor de um nmero natural n n+1, que tambm natural. 2. Quando uma determinada propriedade de nmeros ocorre para um nmero natural e para o prximo nmero natural na gerao, ento a propriedade acontece para todos os nmeros naturais. Esta segunda propriedade conhecida por princpio da induo finita e assim enunciado: Seja P uma propriedade de nmeros naturais. Se 0 tem a propriedade P, e quando n tem a propriedade P, n+1 tambm tem a propriedade P, ento todo natural tem a propriedade P. O princpio da induo usado para demonstrar asseres, digamos P, sobre os nmeros naturais e o procedimento de demonstrao tem os seguintes passos: (a) Base de induo: mostrar que 0 satisfaz a assero P; (b) Hiptese de induo: supor que o nmero natural k satisfaz a assero P, e demonstrar que: (c) Passo de induo: k+1 satisfaz a assero P; (d) Concluso da induo: de (a), (b), (c) concluir que todo natural n satisfaz a assero P. Exemplo: Provar que 0 + 1 + 2 + 3 + ... + k =

k (k + 1) 2

Base de induo: se k = 0, ento 0 =

0(0 + 1) 2

Hiptese de induo: suponha vlido para k = n, ou seja, 0 + 1 + ... + n =

n(n + 1) 2

Passo de induo: para k = n + 1 tem-se n(n + 1) + (n+1) (por hiptese de induo) 0 + 1 + 2 + ... + n + (n+1) = 2 n(n + 1) 2(n + 1) = + 2 2 (n + 1)(n + 2) = 2 (n + 1)((n + 1) + 1) = 2 Concluso de induo: a propriedade vlida

177

A possibilidade de usar induo finita para nmeros naturais s possvel porque este conjunto indutivo, isto , existe um elemento inicial (no caso o 0) e todos os outros elementos so gerados pela aplicao da funo sucessor, como segue abaixo: Definio: O conjunto dos nmeros naturais N indutivo em A, onde A = {0}, e a funo geradora a operao de sucessor, que soma 1 a um nmero natural: 1. 0 um nmero natural; 2. Se a um nmero natural, ento o sucessor de a um nmero natural. 3. Os nicos nmeros naturais so os objetos satisfazendo os itens 1 e 2 acima Isto abre uma srie de novas possibilidades de definies indutivas principalmente para conjuntos. possvel definir indutivamente conjuntos que possuam um conjunto de elementos iniciais e possuam um conjunto de funes geradoras. A importncia capital da induo matemtica foi ressaltada, sobretudo, pelo grande pensador francs Henri Poincar, no princpio do sculo XX. Poincar fez ver que toda cincia matemtica seria mera e estril tautologia, redutvel ao princpio da identidade, A = A, se o nico modelo ali aplicado fosse o da inferncia silogstico-dedutiva. Segundo Poincar a prova por induo completa que ele chamou de dmonstration par rcurrence conteria uma virtude criadora, capaz de possibilitar, de modo finito, a formulao de uma infinidade de juzos matemticos.

178

Anexo - A aritmtica de Peano*


Em 1889, o matemtico italiano Giuseppe Peano resumiu as caractersticas estruturais dos nmeros naturais em uma lista de axiomas enunciados em lgica simblica. Esta ltima era uma linguagem de primeira ordem (ou seja, uma linguagem na qual aparecem somente predicados aplicados aos objetos da linguagem, mas no predicados aplicados aos predicados, nem proposies acerca de proposies), com identidade. A identidade (cujo smbolo =) fica definida por duas propriedades: 1) a = a; a= b b = a; (a = b b = c) a = c a igualdade uma relao reflexiva, simtrica e transitiva 2) a1 = a2 (a1) = (a2) para dois objetos idnticos, sempre que um deles possuir uma propriedade , o outro tambm a possuir O conceito central da aritmtica de Peano o de sucessor: todo nmero natural x tem um sucessor. Esse sucessor no pode ser escrito como x + 1, pois a adio ainda no foi definida. Peano indica ento com s(x) (sucessor de x) o nmero que segue a x e especifica que a funo s est definida para todo nmero natural x. Ele formaliza assim uma propriedade importante dos nmeros naturais (pode-se contar sempre um a mais) e que, depois de especificada sua estrutura particular, servir para estabelecer tacitamente que existem infinitos nmeros. As constantes da linguagem aritmtica de Peano so as seguintes: 0 (o nmero zero), s (a funo sucessor), + e , as operaes de adio e multiplicao. O significado destas constantes fica definido pelos seguintes axiomas: 1) x ( s(x) = 0) 0 (zero) no sucessor de nmero algum 2) x y (s(x) = s(y) x = y) nmeros distintos tm sucessores distintos 3) ( (0) x ( (x) ( s (x) ) ) x (x) ) esse o princpio da induo matemtica completa: se uma propriedade verdadeira para o zero e verdadeira a frase se verdadeira para x, ento verdadeira para o sucessor de x, ento verdadeira para qualquer x, isto , para todo nmero natural. 4) x y (x + 0 = x) x + s(y) = s(x+y) 5) x y (x 0 = 0) x s(y) = x y + x estes dois ltimos axiomas definem, por induo, a adio e multiplicao

A maior parte do texto vem de artigo publicado na revista Scientific American Brasil, edio Gnios da Cincia Matemtica: A vanguarda matemtica e os limites da razo

179

Anexo - O Mtodo das Diferenas


Se uma funo, como por exemplo f(x) = 2x + 3, avaliada para sucessivos valores de x e anotarmos as diferenas entre cada valor de f(x), encontraremos: x 0 1 2 3 4 5 6 f(x) 3 5 7 9 11 13 15 1a diferena 2 2 2 2 2 2

Para se achar o valor de f(x) para x = 7, sem fazer nenhuma multiplicao, basta tomar a constante de diferena e somar a f(6) j calculado, portanto f(7) = 15 + 2 = 17. Se a funo fosse um pouco mais complexa, como por exemplo f(x) = x2 + 2x + 3, ento seria necessrio obter as diferenas das diferenas (ou segundas diferenas) antes de se chegar ao valor constante. Por exemplo: x 0 1 2 3 4 5 6 f(x) 3 6 11 18 27 38 51 1a diferena 3 5 7 9 11 13 2a diferena

2 2 2 2 2

Vamos agora encontrar o valor de f(x) para x = 7. O valor da constante de diferena 2 que dever ser somado ao valor 13, encontrando-se assim o valor da coluna da 1a diferena para x = 7. Logo, f(7) ser 15 + 51 = 66. Em geral, se a equao polinomial a ser avaliada tem um termo de aridade n, ento ser necessrio ser tomada a n-sima diferena antes de uma constante ser encontrada. Se preciso avaliar uma equao polinomial para vrios valores de x, tal como quando se est computando uma tabela, mais fcil faz-lo adicionando a diferena diferena de cima, para ento adicionar aquela diferena de cima, e assim por diante at a o valor da funo ser encontrado. Isto resulta em um procedimento no qual somente adies so exigidas se a prpria funo fosse ser avaliada para cada valor de x. Embora todas as polinomiais tenham uma constante de diferena, funes logartmicas e trigonomtricas no tm, em geral, essa propriedade. Assim, para se poder usar o mtodo das diferenas quando da produo de tabelas de tais funes, necessrio aproximar a funo com uma polinomial e ento avaliar essa polinomial. 180

Uma Mquina de Diferenas simplesmente uma mquina com a capacidade de armazenar uma srie de nmeros e executar adies com eles. Os nmeros iro representar os valores da funo, sua primeira diferena, segunda, terceira, e assim por diante. Em funo da mquina poder adicionar as diferenas inferiores s superiores e finalmente chegar ao valor da funo, possvel gerar sucessivos valores da funo. A mquina projetada por Babbage era capaz de trabalhar com polinomiais de grau seis [Wil97] [Gol72].

181

Anexo - A concepo formalista da Matemtica *


Antes das consideraes mais tcnicas sobre o formalismo na Matemtica, oportuno fazer alguns comentrios sobre o conceito forma (com o aberto), do ponto de vista da Lgica, mais especificamente de um dos seus ramos, que a Lgica Matemtica ou tambm Lgica Simblica. Ainda que o sentido mais intuitivo do termo forma relacione-se com a configurao externa dos objetos materiais, tambm costume, na linguagem ordinria, falar de forma em um sentido mais amplo, como por exemplo, quando se comenta que uma composio potica est em forma de soneto, ou que uma composio musical est em forma de sonata. O que se pensa nesse momento nas propriedades estruturais que so observveis, sem ter em conta o significado dos versos ou dos motivos que inspiraram a msica. Da mesma maneira usa-se o termo estrutura no s para indicar a constituio de um corpo slido, mas tambm se referindo estrutura de uma sociedade, de um discurso, e assim por diante. Do mesmo modo pode-se pensar em estruturas lgicas ou formas lgicas, e, dentro da cincia Lgica, tais expresses representam um aspecto que se reveste de capital importncia: o aspecto formal. A lgica formal um tipo de investigao sobre a linguagem que simplesmente analisa as estruturas desta, prescindindo de contedos concretos que posteriormente sejam dados a estas estruturas (gerando proposies concretas de um discurso falado ou escrito). Por exemplo: todos os A so B, todos os B so C, e portanto todos os A so C. De tal tipo de estrutura surgem argumentos vlidos, quaisquer que sejam os termos usados para substituir A, B ou C (embora a concluso possa ser falsa se uma das premissas for falsa ). A forma lgica diz respeito ao contedo dos nexos que organizam uma demonstrao (um raciocnio dedutivo), prescindindo-se dos contedos semnticos do discurso. A lgica, nesse caso, somente se ocupa do problema do desenvolvimento dessa demonstrao. O fato de prescindir dos contedos tem, entre outras conseqncias, a de que possvel utilizar-se de estruturas dedutivas mediante smbolos, e isso permite uma exatido da anlise estrutural que seria muito mais difcil de conseguir sem o auxlio do simbolismo [Aga86]. A computao sobretudo a cincia do formal. Os computadores seguem fielmente regras e no admitem excees. O programa no funciona quando se troca um 0 (zero) por O (letra ), engano de natureza apenas formal. A Matemtica tambm formal, a mais formal de todas as cincias (pois todos os seus resultados so baseados em regras e
*

Este resumo baseia-se nas exposies feitas em [NN56] e [Cos77]. O ponto de vista da correo e da verdade de um raciocnio distinto dentro da Lgica, embora voltem a unir-se principalmente considerando-se que as regras lgicas permitem obter de premissas verdadeiras somente concluses verdadeiras. De qualquer maneira, no preciso reduzir o horizonte conceitual da lgica simblica a este simples aspecto instrumental que, apesar de ser o mais facilmente compreendido de incio, tem o risco de fazer perder de vista a verdadeira natureza dos problemas abordados pela moderna logstica. De fato, os desenvolvimentos desta ltima ultrapassam amplamente a tarefa no fundo bastante modesta de proporcionar instrumentos mais precisos para o estudo da deduo. Com efeito, a Lgica j uma verdadeira cincia por si mesma, que estudada e desenvolvida com o mesmo interesse puramente especulativo que move as investigaes das matemticas puras ou da lgebra abstrata [Aga86].

182

apresentados por frmulas), e sua linguagem formal utilizada por todas as outras. No entanto os formalistas, escola fundada pelo prof. David Hilbert, so apenas um dos grupos dentro da Matemtica e seus resultados foram e so fortemente questionados *. Hilbert, diferentemente dos matemticos da escola logicista, no tinha pretenses de reduzir a matemtica lgica, mas fundamentar conjuntamente ambas. Ele e os outros seguidores da escola formalista viam na matemtica a cincia da estrutura dos objetos. Os nmeros so as propriedades estruturais mais simples desses objetos e por sua vez constituem-se tambm em objetos, com novas propriedades. O matemtico pode estudar as propriedades dos objetos somente por meio de um sistema apropriado de smbolos, reconhecendo e relevando os aspectos destitudos de importncia dos sinais que utiliza. Uma vez que se possua um sistema de sinais adequados, no mais necessrio se preocupar com seus significados: os prprios smbolos possuem as propriedades estruturais que interessam. Aqui devemos atentar para o fato de que a formalizao no deve ser confundida com este aspecto no essencial que a simbolizao. O matemtico deve apenas investigar, segundo os formalistas, as propriedades estruturais dos smbolos, e portanto dos objetos, independentemente de seus significados. Assim como na geometria ou na lgebra, para simplificar e uniformizar determinadas questes, so introduzidos conceitos no reais ponto do infinito, nmeros ideais, etc. que so apenas convenes lingsticas, tambm se justifica a introduo, na matemtica, de conceitos e princpios sem contedo intuitivo. Desse modo, as leis da lgica clssica permanecem vlidas. Ponto chave na metamatemtica de Hilbert que o sistema estudado no encerre contradio, isto que no se possa provar uma proposio e ao mesmo tempo a sua negao. Ele procurou estabelecer um mtodo para se construir provas absolutas de consistncia (ausncia de contradio) dos sistemas, sem dar por suposta a consistncia de algum outro sistema. O primeiro passo a completa formalizao de um sistema dedutivo. Isto implica tirar todo significado das expresses existentes dentro do sistema, isto , devem ser consideradas puros sinais vazios. Expresso o nome que se d s palavras do sistema, que por sua vez so compostas de smbolos abstratos, tambm chamados alfabeto do sistema. A forma como se devem combinar essas expresses deve estar plasmada em um conjunto de regras de formao e regras de inferncia enunciadas com toda preciso, que especificam como uma expresso pode ser formada ou transformada em outra. A finalidade desse procedimento construir um clculo que no oculte nada e que somente contenha o que expressamente se tenha colocado nele. Em um sistema formal um nmero finito de expresses tomado como sendo o conjunto de axiomas do sistema. A idia de prova num sistema formal consiste em comear com um dos axiomas e aplicar uma seqncia finita de transformaes, convertendo o axioma em uma sucesso de novas expresses, onde cada uma delas ou um dos axiomas do sistema ou derivada deles pela aplicao das regras de formao. A totalidade dos teoremas constitui o que pode ser provado no sistema. Os axiomas e os teoremas de um

Na verdade, a maioria dos matemticos desenvolve seus resultados dentro de um esprito mais informal, intuitivo, mais geomtrico do que algbrico, e quando algbrico, no muito formal. Quando a Matemtica fala da Matemtica

183

sistema completamente formalizado so portanto sucesses de comprimento finito de smbolos sem significado. Especificando um pouco melhor (baseado em [CO98]):

Definio 1: Um sistema formal uma tupla <,L,A,R>, onde: 1. um alfabeto; 2. L um conjunto recursivo * em , chamado de linguagem do sistema formal; 3. A um subconjunto recursivo de L, chamado de Axiomas; 4. R um conjunto recursivo de relaes em L.

Exemplo: seja um sistema formal, onde o alfabeto, as palavras, os axiomas e as relaes estejam definidas abaixo:

= {+,*}, L = {*}, A = {+,*}, R = {r1,r2}, onde: r1 = {<x+,x*> | x *} r2 = {{<x+*,x*+> | x *} U {<x+**,x*++> | x *} U {<x*,x++> | x *}}

As relaes r1 e r2 so binrias, e seus pares ordenados possuem uma lei de formao bem definida. Definio 2: seja =<,L,A,R> um sistema formal e seja o conjunto L. Uma deduo ou derivao de a partir de em uma seqncia 1, 2,... n de palavras de L, tal que: 1. n ; e 2. para todo j, 1 j< n, (a) ou j U A (b) ou existem j1, j2, ... jk , ji {1,..., j-1}, 1 i<k, tais que <j1, j2, ... jk> r, com r R Se existir uma deduo de a partir de dizemos que dedutvel ou derivvel, a partir de em . Isto denotado por |.
Exemplo: no sistema formal do exemplo acima, uma deduo de *+ : + ( A)

* (<+,*> r1) ++ (<*,++> r2) +* (<++,+*> r1) *+ (<+*,*+> r2)

No aprofundando muito na questo, que entra na rdua teoria da recurso: um conjunto A contido em X recursivo se e somente se h um procedimento pelo qual, dado um x pertencente a X, pode-se computar sobre x, pertena x a A ou no. Exemplo: o conjunto dos primos em N (o procedimento o crivo de Eratstenes)[Sho71].

184

{}|*+.

portanto a seqncia *,++,+*,*+ uma deduo de *+ onde = {}; assim

Uma axiomtica formalizada converte-se, em resumo, em uma espcie de jogo grafo-mecnico, efetuado com smbolos destitudos de significado e regulado por meio de regras determinadas. E isso tem uma valiosa finalidade: revelar com clareza a estrutura e a funo, similarmente ao manual esquemtico e de funcionamento de uma mquina. Quando um sistema est formalizado, tornam-se visveis as relaes lgicas existentes entre as proposies matemticas, como se combinam, como permanecem unidas, etc. Uma pgina inteira preenchida com os sinais sem significado no afirma nada: simplesmente um desenho abstrato de um mosaico que possui determinada estrutura. No entanto perfeitamente possvel descrever as configuraes de um sistema assim especificado e formular declaraes acerca das configuraes e das suas diversas relaes mtuas. Hilbert observou que tais declaraes pertencem metamatemtica, isto , declaraes a respeito dos smbolos e expresses existentes dentro de um sistema matemtico formalizado. Para cada sistema formalizado procura-se provar sua consistncia, evidenciando-se que jamais se poder chegar a arranjos simblicos contraditrios. Os mtodos utilizados foram denominados por Hilbert de mtodos finitsticos: procedimentos elementares e intuitivos de tipo combinatrio, utilizados para manipular um nmero finito de objetos e funes bem determinadas *. A quantidade de axiomas e regras do sistema tinha de ser construtvel com um nmero finito de passos e que os enunciados passveis de prova tinham de ser provados com um nmero finito de passos. Como um sistema formal sinttico se relaciona com um mundo de objetos matemticos aos quais esto associados significados? Esta relao se d atravs da noo de interpretao . Desta forma todos os teoremas do sistema formal podem ser interpretados como enunciados verdadeiros acerca desses objetos matemticos. O sonho de Hilbert era encontrar um sistema formal no qual todas as verdades matemticas fossem traduzveis, mediante algum tipo de interpretao, para teoremas e vice-versa. Tal sistema denominado completo. O teorema de Gdel veio a destruir esse sonho.

Como se pode notar Hilbert utiliza-se da intuio, mas no como os intuicionistas no sentido de estabelecer as propriedades de determinados entes matemticos, mas referindo-se unicamente efetuao de operaes muito simples, to seguras e elementares a ponto de serem aceitas na base de qualquer pesquisa terica. Uma interpretao a descoberta de um isomorfismo entre duas estruturas: no caso ela confere significado aos objetos e entidades matemticas, tais como linha, ponto, smbolos abstratos, etc.

185

Anexo - O problema da deciso na Matemtica *


Os casos mais conhecidos e elementares do problema da deciso pertencem aritmtica. Por exemplo, dados dois inteiros a e b, como descobrir se a exatamente divisvel por b? Para responder a tal questo no necessria uma especial intuio, j que existe um procedimento de clculo, puramente mecnico (no caso executar a conhecida operao matemtica da diviso aritmtica de a por b), que permite chegar ao trmino da operao aps um nmero finito de passos, obtendo um quociente e um resto, depois do qual s so possveis dois casos: ou o resto zero e ento se diz que a divisvel por b, ou o resto diferente de zero, e ento a no exatamente divisvel por b. Existem ainda casos que envolvem um procedimento decisrio mais simples como o que responde pergunta se um nmero divisvel por 2. No , nesse caso, necessrio executar a operao de diviso, bastando ver se a expresso decimal de a termina em 0, 2, 4, 6 ou 8. Da mesma forma existe um procedimento mais simples para ver se a divisvel por 3, por 9 e alguns outros nmeros. Nesses casos, o problema da deciso relativo s perguntas simples colocadas solucionvel, pois existe um procedimento decisrio, que de maneira aritmtica e finita, oferece a possibilidade de responder afirmativamente ou negativamente s perguntas citadas. No entanto, existem na aritmtica elementar perguntas tambm simples, para as quais no existe ainda um procedimento decisrio, como por exemplo, se os pares de nmeros primos que se sucedem imediatamente na srie dos nmeros mpares so finitos ou infinitos em nmero. Quer dizer, se pares como 11-13, 17-19, 41-43, ... so finitos ou infinitos. Como no h um procedimento de clculo que oferea uma, por assim dizer, 'lei de gerao' para o conjunto dos nmeros primos, no se est em condio de responder a essa pergunta .

Conforme [Aga86]

Ao que parece, conforme vo se gerando maiores nmeros primos, esses pares vo escasseando. Mas se deixaro de aparecer no se sabe.

186

Anexo - O Teorema da Incompletude de Gdel *


A numerao de Gdel Para conferir metamatemtica o rigor necessrio, Gdel tenta formaliz-la por meio de uma teoria com duas caractersticas essenciais: por um lado, uma teoria poderosa o suficiente para expressar a metateoria sinttica; por outro, uma teoria que pudesse ser construda em um nmero finito de etapas, de acordo com a exigncia finitista. A aritmtica de Peano, que apresenta essas duas propriedades, ser essa teoria. O desafio, assim, est em traduzir os enunciados da metalinguagem da aritmtica de Peano na linguagem-objeto da aritmtica. Os objetos da linguagem-objeto so nmeros; os da metalinguagem so afirmaes acerca dos nmeros: Gdel precisa encontrar um modo de expressar tais afirmaes por meio dos prprios nmeros. Ele procede assim: a cada smbolo da aritmtica de Peano, ele atribui de maneira unvoca um nmero, chamado seu nmero de Gdel. A partir da, possvel atribuir, tambm de maneira unvoca, um nmero de Gdel para todas as outras expresses da aritmtica de Peano, bem como para todas as suas frmulas e todas as suas seqncias finitas de frmulas. A eficcia desse mtodo fica garantida pelo fato de que essa aritmetizao da linguagem (como o processo designado) acontece em duas etapas: toda funo da aritmtica pode ser deduzida com auxlio de certas funes bsicas chamadas de funes recursivas primitivas , as quais so sempre calculveis por construo. Por meio de uma tabela de correspondncia, Gdel atribui a cada smbolo da aritmtica de Peano um nmero mpar: 0 traduzido por 1; o sucessor s por 3; a negao por 5; o smbolo por 7; por 9; ( por 11; ) por 13; e as variveis de tipo n por nmeros da forma pn, em que p um nmero primo superior a 13. Uma frmula da aritmtica de Peano, que uma seqncia desses smbolos, levada, portanto, em uma correspondente seqncia de nmeros mpares: nl, n2, ..., nk Essa seqncia, por sua vez, transformada em um nmero nico m, por meio da seguinte instruo (que uma funo recursiva primitiva): m =2n1 3n2 ... p k n k Em que p k o k-simo nmero primo (em outras palavras, o segundo membro a decomposio de m em fatores primos). O nmero m o nmero de Gdel da frmula. Assim, n1, n2, ... nk so os nmeros de Gdel dos smbolos de uma frmula da aritmtica de Peano, e m o nmero de Gdel dessa frmula. Esse processo pode ser repetido para uma seqncia de nmeros de Gdel associados a uma seqncia de frmulas da aritmtica de
*

A maior parte do texto vem de artigo publicado na revista Scientific American Brasil, edio Gnios da Cincia Matemtica: A vanguarda matemtica e os limites da razo e tambm tem como base [Cas97] Uma funo calculvel quando existe um algoritmo que, para todo argumento dado, fornece o valor da funo em um nmero finito de etapas. Para enfrentar a infinidade de algoritmos imaginveis, pode-se considerar uma classe das funes calculveis: as funes recursivas primitivas. Elas sempre tomam nmeros naturais por argumento, e so definidas da seguinte maneira: certas funes simples denominadas funes base - so declaradas, inicialmente, como recursivas primitivas. Chamam-se recursivas primitivas depois todas as funes que possam ser construdas, de acordo com certas regras, a partir das funes que j se saiba serem recursivas primitivas. A demonstrao do teorema da incompletude de Gdel baseia-se em uma srie de funes recursivas primitivas deduzidas umas a partir das outras.

187

Peano, o que resulta em um nmero de Gdel para essa seqncia de frmulas. Essa codificao para as seqncias de frmulas importante, pois as demonstraes nada mais so do que seqncias finitas de frmulas, em que cada uma ou um axioma, ou decorre das frmulas precedentes. Os teoremas da teoria dos nmeros asseguram que a enumerao de Gdel unvoca, vale dizer, que a cada smbolo, frmula ou seqncia de frmulas corresponde um nico nmero de Gdel, que lhe exclusivo. Em outras palavras, possvel saber, para cada nmero natural, a partir da unicidade de sua decomposio em fatores primos, se esse nmero um nmero de Gdel e, nesse caso, de qual elemento (seja smbolo, frmula ou seqncia de frmula) ele smbolo. O mtodo de Gdel (a aritmetizao), apresentado aqui para as frmulas e demonstraes do sistema formal da aritmtica de Peano, pode ser reproduzido de maneira semelhante para no importa qual linguagem (notadamente linguagens de programao). Atribuem-se nmeros aos elementos bsicos da linguagem (letras, palavras, caracteres especiais) e formam-se novos nmeros a partir das seqncias desses nmeros, de acordo com a instruo recursiva oferecida acima. Graas aritmetizao, os conceitos metalingsticos da sintaxe da aritmtica de Peano aparecem agora traduzidos como propriedades, funes ou relaes entre nmeros. Por exemplo, o conceito uma frmula corresponde propriedade um nmero cujos expoentes da decomposio em fatores primos so todos mpares. Analogamente (embora com um grau bem maior de dificuldade), o conceito metaterico x uma frmula demonstrvel, indicado pelo smbolo Dem (de demonstrvel), pode ser expresso com auxlio de relaes aritmticas. O Teorema de Incompletude Aps estabelecer, em quatro teoremas, um mtodo para a construo de funes recursivas, Gdel enuncia uma seqncia de 45 propriedades e funes, cada uma das quais definida com base nas precedentes por meio dos procedimentos dados nos teoremas I a IV. A funo nmero 45 uma funo D de duas variveis: yDx significa a seqncia de frmulas de nmero de Gdel y uma demonstrao para a frmula de nmero de Gdel x. Sob o nmero 46, ele define enfim a demonstrabilidade: Dem(x) ( y)yDx, e acrescenta entre parnteses: Dem(x) o nico conceito, entre todos os definidos, de 1 a 46, a respeito do qual no podemos afirmar que seja recursivo. A frmula 46 deve ser interpretada assim: A frmula x demonstrvel se, e somente se, existe uma seqncia q de frmulas que demonstra x. Existe, portanto, uma frmula para a frase x uma frmula demonstrvel, bem como para sua negao. Gdel mostra, alm disso, que a funo de substituio subst, que permite substituir uma varivel por um valor numrico dentro de uma frmula, uma funo recursiva primitiva. Subst de importncia capital para a demonstrao de Gdel, pois fornece a chave para a auto-referncia: permite inserir o nmero de Gdel da frmula a proposio x no demonstrvel no lugar da prpria varivel x.

188

Mais especificamente, chamemos de F(x) a frmula a proposio de nmero de Gdel x no demonstrvel; seja f seu nmero de Gdel. A funo de substituio permite substituir, na prpria frmula F(x), a varivel x por esse nmero de Gdel f Obtemos assim a frmula F(f): `A proposio de nmero de Gdel f no demonstrvel, ou seja, a proposio a proposio de nmero de Gdel x no demonstrvel no demonstrvel. Isso significa que, em um sistema no-contraditrio de axiomas, a frmula F(f) no formalmente demonstrvel. Em uma etapa seguinte, Gdel demonstra que a frmula F(f), ainda que formalmente no-demonstrvel, uma proposio aritmtica verdadeira para todos os nmeros inteiros. Como proposio verdadeira, sua negao (que falsa) tambm no pode ser formalmente demonstrada no sistema. Segue da que a proposio F(f) indecidvel - que no pode ser deduzida. A frmula F(f), portanto, ao mesmo tempo verdadeira e formalmente indecidvel. Uma vez atingido esse resultado, Gdel observa: O mtodo de demonstrao que foi exposto pode-se aplicar a todo sistema formal que, em primeiro lugar, interpretado como sistema de conceitos e proposies, oferea recursos expressivos suficientes para definir os conceitos que aparecem no raciocnio precedente (em particular, o conceito frmula demonstrvel), e no qual, em segundo lugar, toda frmula demonstrvel seja verdadeira na interpretao considerada. Gdel chega assim a seu teorema de incompletude, que pode ser enunciado da seguinte maneira: Toda teoria axiomatizada suficientemente poderosa para expressar a aritmtica incompleta. Em seu breve livro sobre Gdel, Jaako Hintikka sublinha que, ao contrrio do que levam a crer diversas vulgarizaes desse resultado revolucionrio, o primeiro teorema de incompletude de Gdel no demonstra que existem na aritmtica (ou em outro sistema) proposies verdadeiras, mas absolutamente indemonstrveis. Ele mostra, antes, que todas as proposies verdadeiras da aritmtica no podem ser demonstradas por meio de um nico sistema formal dado. Para Gdel, sistema formal e procedimento determinista e mecnico andam juntos. Assim, convencido de que as funes recursivas primitivas no do conta do conceito de procedimento mecnico de maneira satisfatria, ele tenta desenvolver uma verso generalizada da recursividade. Em 1936, o lgico americano Alonzo Church (1903-1995) demonstrar, a partir dessas pesquisas, a indecidibilidade da lgica de predicados de primeira ordem: impossvel obter, para a lgica de predicados de primeira ordem, um procedimento geral de clculo capaz de determinar, para toda frmula, se ela ou no vlida. Seu teorema, conhecido atualmente como teorema de Church, responde assim negativamente ao problema de decidibilidade proposto por Hilbert em seu programa: Um problema matemtico dado, pensava Hilbert, deve admitir, obrigatoriamente, uma soluo exata, seja sob a forma de uma resposta direta a uma questo colocada, seja pela demonstrao de seu carter insolvel e do fracasso inevitvel de toda tentativa nesse sentido. Baseados tambm nas pesquisas de Gdel, os trabalhos de Alan Turing (1912-1954) constituiro o corolrio do teorema de Church em informtica terica. De muitos modos o trabalho de Gdel aconteceu tambm em outras reas. Apenas quatro anos antes dele publicar o seu trabalho, o fsico alemo Werner Heisenberg descobriu o princpio da incerteza. Assim como existe um limite fundamental nos teoremas que os 189

matemticos poderiam provar, Heisenberg mostrou que havia um limite fundamental nas propriedades que os fsicos poderiam medir. Por exemplo, se eles queriam medir a posio exata de um objeto, ento s poderiam medir a velocidade do mesmo com uma preciso muito pobre. Isto acontece porque para medir a posio do objeto seria preciso ilumin-lo com ftons de luz, mas, para determinar a localizao exata, os ftons precisariam ter uma energia enorme. Contudo, se o objeto est sendo bombardeado com ftons de alta energia, sua prpria velocidade ser afetada e se tornar inerentemente incerta. Portanto, ao exigir o conhecimento da posio de um objeto, os fsicos teriam de desistir do conhecimento de sua velocidade. O princpio da incerteza de Heisenberg s se revela nas escalas atmicas, quando medidas de alta preciso se tornam crticas. Logo, uma boa parte da fsica pode ser realizada sem problemas enquanto os fsicos qunticos se preocupam com as questes profundas sobre os limites do conhecimento. O mesmo acontecia no mundo da matemtica. Enquanto os lgicos se ocupavam do debate altamente abstrato sobre a indecidibilidade, o resto da comunidade continuava seu trabalho sem preocupao. Gdel tinha provado que existiam algumas afirmaes at infinitas que no poderiam ser provadas, mas restava uma outra quantidade que podiam ser provadas e sua descoberta no invalidava nada que tivesse sido demostrado no passado. Alm disso, muitos matemticos acreditavam que as declaraes de indecidibilidade de Gdel seriam encontradas nas regies mais extremas e obscuras da matemtica e, portanto, talvez nunca tivessem de ser enfrentadas. Afinal, Gdel s dissera que essas afirmaes indecidveis existam; ele no pudera apontar uma. Ento, em 1963, o pesadelo terico de Gdel se tornou uma realidade viva. Paul Cohen, um matemtico de 29 anos, da Universidade de Stanford, desenvolvera uma tcnica para testar se uma afirmao particular indecidvel. A tcnica s funcionava para certos casos muito especiais, mas, de qualquer forma, ele foi a primeira pessoa a descobrir que havia questes de fato que eram indecidveis. Tendo feito sua descoberta, Cohen imediatamente voou para Princeton, com a demonstrao na mo, de modo que fosse verificada pelo prprio Gdel. Dois dias depois de receber o trabalho, Gdel deu a Cohen sua aprovao. E o que era particularmente dramtico que algumas dessas questes indecidveis estavam no centro da matemtica. Ironicamente Cohen provara que uma das perguntas que David Hilbert colocara entre os 23 problemas mais importantes da matemtica, a hiptese do continuum, era indecidvel.

190

Anexo - Mquinas de Turing


O processo computacional foi graficamente mostrado no artigo de Turing, On Computable Numbers with an aplication to the Entscheidungsproblem, quando ele pediu ao leitor que considerasse um dispositivo que pudesse ler e escrever smbolos em uma fita que estava dividida em quadrados. Uma cabea de leitura/gravao se moveria em qualquer direo ao longo da fita, um quadrado por vez, e uma unidade de controle poderia interpretar uma lista de instrues simples sobre leitura e gravao de smbolos nos quadrados, movendo-se ou no para a direita ou esquerda. O quadrado que "lido" em cada etapa conhecido como "quadrado ativo". A regra que est sendo executada determina o que se convencionou chamar 'estado' da mquina. A fita potencialmente infinita (ver figura).

h q2 q1

q0

Imagine os smbolos "A" e "#"(branco). Suponha que o dispositivo possa limpar qualquer um deles quando os l em um quadrado ativo e troc-lo por outro (i.., apagar "A" e substituir por "#" e vice-versa). Lembre-se que o dispositivo pode mover a cabea de leitura/gravao para a direita ou esquerda, de acordo com instrues interpretadas pela unidade de controle. As instrues podem limpar um smbolo, escrev-lo ou deix-lo como est, de acordo com o smbolo lido. Qualquer tipo de "jogo" pode ser elaborado usando estas regras, no tendo necessariamente algum significado. Uma das primeiras coisa que Alan Turing demonstrou foi que alguns "jogos" construdos sob essas regras podem ser sofisticados, em contraste com a simplicidade destas operaes primitivas. Dado um quadrado que seja uma posio inicial de uma seo da fita preenchida por quaisquer caracteres ou brancos, o dispositivo executa aes especificadas por uma lista de regras, seguindo-as uma por vez at chegar quela que force sua parada (se no h uma instruo explcita na tabela para uma determinada configurao da fita, ento no h nada que a mquina possa fazer quando alcana aquela configurao, encerrando a execuo portanto). Cada instruo ou regra estabelece uma ao a ser executada se houver determinado smbolo no quadrado ativo no tempo em que lido. No nosso caso vamos estabelecer 4 diferentes tipos de regra: 191

(a) (b) (c) (d)

Substituir #(branco) por smbolo Substituir smbolo por branco(#) Ir um quadrado para a direita Ir um quadrado para a esquerda

Um exemplo de instruo seria: Se houver um A no quadrado ativo, substitua-o por #. Esta instruo faz a mquina executar a segunda ao da lista acima. Para se elaborar um "jogo" preciso fazer uma lista que especifique o nmero da regra que se deve observar no momento atual, e, de alguma forma, qual ser a prxima. Cada regra desta lista ser composta pela seguinte seqncia: o nmero da regra estado da mquina , um caracter ou branco(#) para comparao, prximo estado e ao (novo smbolo que ir para o quadrado ou movimentar para direita(>)/esquerda(<) a cabea de leitura/gravao). Segue abaixo uma lista de regras cdigo e descrio que diro a uma mquina de Turing como desenvolver um determinado "jogo":
1A2# Estado 1: se h um A no quadrado ativo, substitua-o por # e v para estado 2; 2#3> Estado 2: se h um # no quadrado ativo, v para estado 3 e ande um quadrado a direita; 3A3> Estado 3: se h um A no quadrado ativo, v para estado 3 e ande um quadrado a direita; 3#4> Estado 3: se h um # no quadrado ativo, v para estado 4 e ande um quadrado a direita; 4A4> Estado 4: se h um A no quadrado ativo, v para estado 4 e ande um quadrado a direita; 4#5A Estado 4: se h um # no quadrado ativo, substitua-o por A v para estado 5; 5A5> Estado 5: se h um A no quadrado ativo, v para estado 5 e ande um quadrado a direita; 5#6A Estado 5: se h um # no quadrado ativo, substitua-o por A v para estado 6; 6A6< Estado 6: se h um A no quadrado ativo, v para estado 6 e ande um quadrado a esquerda; 6#7< Estado 6: se h um # no quadrado ativo, v para estado 7 e ande um quadrado a esquerda; 7A8<

192

Estado 7: se h um A no quadrado ativo, v para estado 8 e ande um quadrado a esquerda; 8I8< Estado 8: se h um A no quadrado ativo, v para estado 8 e ande um quadrado a esquerda; 8#1> Estado 8: se h um # no quadrado ativo, v para estado 1 e ande um quadrado a direita;

Note que se houver um # no quadrado ativo quando os estados forem 1 ou 7, ou se h um A no quadrado ativo quando o estado da mquina 2, ela pra, pois no saberia o que fazer. O jogo neste caso duplicar uma seqncia de A's que estejam na fita. Se a fita contiver AAAA, no final conter AAAAAAAA. Para se jogar (em termos mais tcnicos diramos executar o programa descrito na lista de regras) necessrio especificar uma configurao inicial na fita, qual o quadrado inicial ativo e o estado inicial da mquina. Quando a mquina comear a executar, ela, a partir do estado inicial e do quadrado ativo seguir a seqncia (lgica) de regras que daro o produto final. Provavelmente poder ser comentado que parecem coisas mecnicas demais, mas era precisamente isto o que Turing estava procurando. A lista de instrues pode ser seguida por um dispositivo mecnico. Em sua essncia, toda mquina de Turing move-se ou move smbolos, de uma posio para outra em uma fita, da mesma maneira que no exemplo dado acima. Nos dias de hoje estes smbolos podem ser impulsos eletrnicos em um microcircuito e a fita uma srie de endereos de memria em um chip, mas a idia a mesma. Turing provou que sua hipottica mquina uma verso automatizada de um sistema formal especificado por uma combinao inicial de smbolos (o conjunto de "A"s na fita no incio do processo) e as regras (aquelas instrues escritas). Os movimentos so mudanas de 'estado' da mquina que correspondem a especficos passos de computao. Os modernos computadores e inclusive este PC no qual est sendo escrito este livro parecem ser bem mais complicados na sua estrutura e muito mais poderosos computacionalmente do que uma MT. Mas no se trata de questo, pois o que Turing demonstrou que qualquer algoritmo (programa) executvel em qualquer computador, pode ser processado usando uma verso particular de sua mquina, conhecida como Mquina de Turing Universal. Exceto pela velocidade, que algo dependente do hardware, no h procedimento computacional que qualquer computador possa fazer que no possa ser feito por uma MTU, dados memria e tempo adequados. O que uma MTU? Turing a idealizou ao compreender que alm dos dados de entrada armazenados na fita, tambm o prprio 'programa' as regras do jogo poderia ser codificado para ser lido como uma entrada pela MTU. Com esta idia Turing construiu um programa que poderia simular a ao de qualquer programa P quando P colocado como parte da entrada. Isto , Turing elaborou uma MTU. Como funciona isto? Suponha que se tenha um programa P para uma mquina de Turing. O nico necessrio agora escrever este programa na fita da MTU, junto com os dados de entrada sobre os quais atuar o programa P. Em seguida a MTU ir simular a ao 193

de P sobre os dados. Isto quer dizer tambm que durante o processamento no haver diferena entre o que seria rodar o programa P na sua mquina original ou o atual processamento da MTU simulando P.

194

Anexo - Astrolbio

Figura 41: Astrolbio

Sua origem data de 200 a.C. na Grcia Clssica, e existem referncias de que Apollonius estudou os princpios da projeo estereogrfica (mtodo de representao espacial usado no astrolbio). Contudo, quem mais influiu na teoria da projeo espacial foi Hipparchus, nascido em Nicia, na sia Menor (agora Iznik na Turquia), aproximadamente 180 a.C. Ele, que teve grande influncia no desenvolvimento da trigonometria, redefiniu e formalizou a projeo como um mtodo para resolver problemas astronmicos. As primeiras evidncias do uso da projeo estereogrfica em uma mquina est na escritura do autor romano e arquiteto, Vitruvius (88 - 26 a.C.), o qual, na obra De architectura, descreve um relgio (provavelmente de gua) feito por Ctesibius em Alexandria. Aparentemente, o relgio de Ctesibius tinha um campo giratrio de estrelas atrs de uma armao de arame que indicava a hora do dia. A armao de arame foi construda com base na projeo estereogrfica. H suspeitas de que o primeiro astrolbio tenha sido construdo por Claudius Ptolomeu (150 d.C.), pois em diversas partes de seus escritos deixa a impresso de que possua um instrumento com as caractersticas de um astrolbio. Ptolomeu escreveu extensivamente sobre a projeo estereogrfica em seu trabalho conhecido como Planisferium. Contudo a primeira descrio de um astrolbio datada do sculo VI e foi feita por John Filoponos. Durante muito tempo o uso do astrolbio ficou restrito aos povos persas e islmicos. No sculo XI, foi introduzido na Europa atravs da Espanha, e no sculo XIII j se encontrava popularizado. O astrolbio s caiu em desuso a partir do sculo XVII, devido popularizao de instrumentos como o relgio e o telescpio. Funcionamento do Astrolbio O astrolbio baseia-se no princpio da projeo estereogrfica. Trata-se de um mtodo que permite traar o mapa do cu em um plano, sem perder suas informaes tridimensionais, processo anlogo criao de um mapa da Terra. Esta projeo 195

acompanhada de vrias linhas e eixos (ver a 2a figura) de referncia que determinam a direo (azimuth) e a altitude das estrelas (altitude, ngulo que fazem com o horizonte), o ngulo de viso do observador (horizonte) e posio em que este se encontra (Zenith). Partes do Astrolbio Os astrolbios mais recentes (ver a 1a figura abaixo) possuem a parte me (mater) na qual esto marcadas informaes temporais, zodiacais e espaciais, esta parte serve de suporte para todas as outras peas e funciona como um mostrador de clculo. Aps vrios ajustes, ponteiros exibem informaes computadas pelo astrolbio. Encaixados na face superior da parte me existem vrios pratos (ver a 2a figura abaixo) que trazem a projeo estereogrfica do cu para determinada latitude durante o dia ou noite. Alguns astrolbios possuem vrios pratos que podem ser trocados de acordo com a latitude em que o observador se encontra. Foram fabricados astrolbios com mecanismos que permitiam o ajuste da latitude, mas estes no se tornaram populares devido ao seu custo e complexidade de uso. Acima destes pratos estereogrficos est disposto um componente chamado rete (ver a a 3 figura baixo), que permite o ajuste do astrolbio ao movimento da Terra, atravs de setas que apontam para estrelas de referncias. Tambm encontramos no rete a projeo do caminho do sol. Atrs do astrolbio h uma rgua, utilizada para ver a altitude do objeto celeste. O astrolbio deve ser suspenso perpendicularmente ao solo, e a rgua posta na direo do objeto: uma escala exibe o ngulo deste com o solo. Muitos astrolbios foram feitos com escalas trigonomtricas para auxiliar os clculos astronmicos. Ajuste do Astrolbio Com o astrolbio na vertical, ajusta-se a latitude de uma das estrelas de referncia do rete com a rgua, localizada na parte de traz do astrolbio. Ento se dispe o astrolbio na horizontal, com o rete para cima, e orienta-se a seta correspondente estrela de referncia em sua direo. Desta forma, obtm-se o mapa estereogrfico do cu no momento. Alguns ponteiros marcam a hora e a data correspondentes ao ajuste. O processo inverso tambm pode ser efetuado, conhecendo-se a data e a hora configura-se o astrolbio para obter o mapa do cu. Usos do Astrolbio No sculo 10, Abd Al-Rahmn B. Umar Al-Suf escreveu um tratado no qual descrevia 1000 usos para o astrolbio. A partir desta informao pode-se ter idia da flexibilidade que fornece este instrumento. Muitos problemas que requerem matemtica sofisticada podem ser resolvidos apenas conhecendo-se o seu funcionamento. Dentre os usos mais simples, pode-se citar: determinao da hora; localizao de corpos celestes; clculo da durao do dia; etc. interessante lembrar que, durante a Idade Mdia, a Astrologia tinha grande influncia no cotidiano das pessoas e por este motivo a grande maioria dos astrolbios tinha funes 196

ligadas ao zodaco, para facilitar a criao de horscopos. Entre os Islmicos o astrolbio era muito utilizado para determinar o horrio das oraes, e a direo de Meca (as oraes Islmicas so feitas nessa direo), sendo que algumas variaes incluam funes e rguas que facilitavam estas determinaes. Por exemplo, para se determinar a hora atual: 1. A altitude do Sol ou de uma estrela determinada utilizando-se a rgua da parte de trs do instrumento. 2. A posio do Sol na elipse achada fixando a rgua angular mvel na data do dia e lendo a longitude do Sol na escala do zodaco. 3. Na frente do astrolbio, a rgua girada at que cruze a elipse na longitude atual do Sol. O ponto onde a rgua cruza a elipse a posio atual do Sol. 4. So girados o rete e a rgua at que o Sol ou ponteiro da estrela esteja na altitude medida. 5. A rgua aponta para a hora solar aparente no membro. Tempo solar aparente o tempo como mostrado em um relgio de sol e diferente para cada longitude.

Figura 42: Astrolbio - 1

197

Figura 43: Astrolbio - 2

Figura 44: Astrolbio - 3

198

Anexo - Turing e a Mquina Enigma *


Antes da guerra os alemes tinham dispendido um esforo considervel no desenvolvimento de um melhor sistema de codificao, e isto era motivo de grande preocupao para o Servio Secreto Britnico, que no passado conseguira decifrar as mensagens do inimigo com relativa facilidade. A histria oficial da guerra publicada, pelo HMSO (Servio Britnico de Informaes na Segunda Guerra Mundial), descreve a situao na dcada de 1930:
Por volta de 1937 ficou estabelecido que, ao contrrio dos japoneses e italianos, o exrcito alemo, sua marinha e provavelmente a sua fora area, junto com organizaes estatais, como as das ferrovias e a SS, usavam para tudo, exceto nas comunicaes tticas, diferentes verses do mesmo sistema cifrado. A mquina Enigma tinha sido colocada no mercado na dcada de 1920, mas os alemes a tinham tornado mais segura atravs de modificaes progressivas. Em 1937, a Escola de Cifras e Cdigos do Governo tinha quebrado o cdigo do modelo menos modificado e seguro dessa mquina, que estava sendo usado pelos alemes, italianos e pelas foras nacionalistas espanholas. Mas, fora isto, a Enigma ainda resistia ao ataque e parecia que ia continuar assim.

A mquina Enigma consistia de um teclado, ligado a uma unidade codificadora. O codificador tinha trs rotores separados e as posies dos rotores determinavam como cada letra no teclado seria codificada. O que tornava o cdigo da Enigma to difcil de quebrar era o enorme nmero de modos nos quais a mquina podia ser regulada. Em primeiro lugar, os trs rotores na mquina eram escolhidos de uma seleo de cinco que podia ser mudada e trocada para confundir os adversrios. Em segundo lugar, cada rotor podia ser posicionado em 26 modos diferentes. Isto significava que a mquina podia ser regulada em milhes de modos diferentes. E alm das permutaes permitidas pelos rotores, as conexes no quadro de chaveamento, na parte detrs da mquina, podiam ser mudadas manualmente para fornecer um total de 150 trilhes de regulagens possveis. E para aumentar ainda mais a segurana, os trs rotores mudavam de orientao continuamente, de modo que, cada vez que uma letra era transmitida, a regulagem da mquina, e portanto o cdigo, iria mudar de uma letra para outra. Assim, se algum batesse "DODO" no teclado iria gerar a mensagem FGTB: o D e o 0 eram transmitidos duas vezes, mas codificados de modo diferente a cada vez. As mquinas Enigma foram fornecidas ao Exrcito, Marinha e Fora Area da Alemanha, e eram at mesmo operadas pelas ferrovias e outros departamentos do governo. Mas, como acontecia com os sistemas de cdigo usados naquela poca, a fraqueza da Enigma consistia em que o receptor tinha que conhecer a regulagem da mquina que emitira a
*

Conforme [Sin99]

199

mensagem. Para manter a segurana os ajustes da Enigma eram mudados diariamente. Um dos meios que os transmissores de mensagens tinham de mudar a regulagem diariamente, enquanto mantinham os receptores informados, era publicar as regulagens num livro secreto de cdigos. O risco desta abordagem que os britnicos podiam capturar um submarino e obter o livro-cdigo com os ajustes dirios da mquina para o ms seguinte. A abordagem alternativa, que foi adotada durante a maior parte da guerra, consistia em transmitir a regulagem do dia no princpio da mensagem principal, usando o cdigo do dia anterior.

Figura 45: A mquina Enigma

A criptografia uma batalha intelectual entre o criador do cdigo e aquele que tenta decifr-lo. O desafio para o codificador misturar a mensagem at um ponto em que ela seja indecifrvel se for interceptada pelo inimigo. Contudo, existe um limite na quantidade possvel de manipulao matemtica devido necessidade de enviar as mensagens de modo rpido e eficiente. A fora do cdigo alemo da Enigma consistia em que a mensagem passava por vrios nveis de codificao a uma velocidade muito alta. O desafio para o decifrador do cdigo era pegar uma mensagem interceptada e quebrar o cdigo quanto o contedo da mensagem ainda fosse relevante. Turing liderou uma equipe de matemticos que tentou construir rplicas da mquina Enigma. Ele incorporou nesses engenhos as suas idias abstratas, anteriores guerra. A idia era verificar todos os ajustes possveis da Enigma at que o cdigo fosse descoberto. As 200

mquinas britnicas tinham dois metros de altura e eram igualmente largas, empregando rels eletromecnicos para verificar todos os ajustes possveis da Enigma. O constante tiquetaquear das mquinas deu-lhes o apelido de bombas. Apesar da sua velocidade, era impossvel que as bombas verificassem cada uns dos 150 trilhes de ajustes possveis da Enigma dentro de um tempo razovel. Por isso a equipe de Turing teve de procurar meios de reduzir significativamente o nmero de permutaes extraindo toda a informao que pudesse das mensagens enviadas. Um dos grandes saltos em direo ao sucesso aconteceu quando os britnicos perceberam que a mquina Enigma no podia codificar uma letra nela mesma. Ou seja, se o emissor teclasse R, ento, dependendo do ajuste, a mquina poderia transmitir todo tipo de letra, menos R. Este fato, aparentemente incuo, era tudo o que necessitavam para reduzir drasticamente o tempo necessrio para decifrar as mensagens. Os alemes contra-atacaram limitando o comprimento das mensagens que enviavam. Todas as mensagens, inevitavelmente, continham indcios para a equipe de decifradores do cdigo, e quanto maior a mensagem, mais pistas ela continha. Ao limitar as mensagens a um mximo de 250 letras, os alemes esperavam compensar a relutncia da Enigma em codificar uma letra como a mesma. Com o fim de quebrar os cdigos, Turing freqentemente tentava adivinhar palavras chaves nas mensagens. Caso acertasse, isto aceleraria enormemente a decodificao do resto da mensagem. Por exemplo, se os decodificadores suspeitavam de que uma mensagem continha um relatrio meteorolgico (um tipo freqente de relatrio codificado), ento eles supunham que a mensagem conteria palavras como neblina ou velocidade do vento. Se estivessem certos, podiam decifrar rapidamente a mensagem e, portanto, deduzir o ajuste da Enigma para aquele dia em particular. E pelo resto do dia outras mensagens, mais valiosas, seriam decifradas facilmente. Quando fracassavam na adivinhao de palavras ligadas ao tempo, os britnicos tentavam se colocar na posio dos operadores alemes da Enigma para deduzir outras palavras chaves. Um operador descuidado poderia chamar o receptor pelo primeiro nome ou ele poderia desenvolver idiossincrasias conhecidas pelos decifradores. Quando tudo o mais falhava e o trfego alemo de mensagens flua sem ser decifrado, a Escola Britnica de Cdigos podia at mesmo, dizem, recorrer ao recurso extremo de pedir RAF (Fora Area Britnica) para que minasse um determinado porto alemo. Imediatamente o supervisar do porto atacado iria enviar uma mensagem codificada que seria interceptada pelos britnicos. Os decodificadores teriam certeza ento de que a mensagem conteria palavras como "mina", evite" e "mapa de referncias". Tendo decodificado esta mensagem, Turing teria os ajustes da Enigma para aquele dia e quaisquer mensagens posteriores seriam vulnerveis rpida decodificao. No dia 1o de fevereiro de 1942 os alemes acrescentaram uma quarta roda s mquinas Enigma usadas para enviar mensagens particularmente importantes. Esta foi a maior escalada no nvel de codificao durante a guerra, mas finalmente a equipe de Turing respondeu aumentando a eficincia das bombas. Graas Escola de Cdigos, os aliados sabiam mais sobre seu inimigo do que os alemes poderiam suspeitar. O impacto da ao dos submarinos no Atlntico foi grandemente reduzido e os britnicos tinham um aviso prvio dos ataques da Luftwaffe. Os decodificadores tambm interceptavam e decifravam a posio 201

exata dos navios de suprimentos alemes, permitindo que os destriers britnicos os encontrassem e afundassem. Mas o tempo todo as foras aliadas tinham que ter cuidado para que suas aes evasivas e ataques precisos no revelassem sua habilidade de decodificar as comunicaes alems. Se os alemes suspeitassem de que o cdigo da Enigma fora quebrado, eles iriam aumentar seu nvel de codificao mandando os britnicos para a estaca zero. Por isso houve ocasies em que a Escola de Cdigos informou aos aliados sobre um ataque iminente e o comando preferiu no tomar medidas extremas de defesa. Existem mesmo boatos de que Churchill sabia que Coventry seria o alvo de um bombardeio devastador mas preferiu no tomar precaues especiais para evitar que os alemes suspeitassem. Stuart Milner Barry, que trabalhou com Turing, nega o boato. Ele diz que a mensagem relevante sobre Coventry s foi decifrada quando j era tarde demais. Este uso contido da informao codificada funcionou perfeitamente. Mesmo quando os britnicos usavam as mensagens interceptadas para causar perdas pesadas no inimigo, os alemes no suspeitaram de que o cdigo Enigma fora quebrado. Eles pensavam que seu nvel de codificao era to alto que seria totalmente impossvel quebrar os cdigos. As perdas excepcionais eram atribudas ao de agentes britnicos infiltrados.

Figura 46: Uma bombe, mquina inicialmente usada para tentar decifrar cdigo

202

Figura 47: Computador COLOSSUS, que substituiu as bombes

203

ndice de Figuras
Figura 1: O desenvolvimento de sistemas atravs de especificaes formais _____________________ 25 Figura 2: Sistema numrico clssico de adio egpcio baseado em hierglifos [Wil97]____________ 30 Figura 3: Mais antigo manuscrito europeu com numerais indo-arbicos, cfr. [Ifr89] ______________ 32 Figura 4: Aristteles ________________________________________________________________ 38 Figura 5: Representao de Euclides ___________________________________________________ 40 Figura 6: Representao de Al-Kharazmi ________________________________________________ 44 Figura 7: Desenho de Raimundo Llio __________________________________________________ 45 Figura 8: Figuras representando mecanismo elaborado por Llio para automatizar o raciocnio ____ 48 Figura 9: Leibniz ___________________________________________________________________ 50 Figura 10: Blaise Pascal _____________________________________________________________ 51 Figura 11: Mquinas calculadoras de Leibniz e Pascal _____________________________________ 52 Figura 12: George Cantor ____________________________________________________________ 55 Figura 13: George Boole _____________________________________________________________ 56 Figura 14: Frege ___________________________________________________________________ 60 Figura 15: Peano ___________________________________________________________________ 61 Figura 16: Professor David Hilbert_____________________________________________________ 66 Figura 17: Kurt Gdel ______________________________________________________________ 73 Figura 18: Alan Mathison Turing ______________________________________________________ 74 Figura 19: Alonzo Church ____________________________________________________________ 82 Figura 20: Relacionamento entre mundos formal, matemtico e computacional (cfr. [Cas97])_______ 84 Figura 21: Desenho de Charles Babbage ________________________________________________ 87 Figura 22: Mquina Diferencial de Babbage construda pelo Museu de Londres _________________ 89 Figura 23: Tear de Jacquard__________________________________________________________ 90 Figura 24: Mquina Diferencial de George Scheutz ________________________________________ 92 Figura 25: Tabuladora de Hollerith ____________________________________________________ 92 Figura 26: Dispositivo analgico simples ________________________________________________ 93 Figura 27: Dispositivo analgico de Lord Kelvin __________________________________________ 96 Figura 28: Analisador harmnico de Michelson ___________________________________________ 97 Figura 29: Claude E. Shannon ________________________________________________________ 99 Figura 30: Konrad Zuse por volta dos anos 70 ___________________________________________ 101 Figura 31: ENIAC, sua programao era feita com fios ("hard wired")________________________ 106 Figura 32:Colossus, da Inglaterra. Sua programao tambm era feita com fios.________________ 106 Figura 33:da esquerda para a direita, Patsy Simmers, segurando uma placa do ENIAC, Gail Taylor, segurando uma placa do EDVAC, Milly Beck, segurando uma placa do ORDVAC, Norma Stec, segurando uma placa do BRLESC-I (ateno para o tamanho das placas) ______________________________ 107 Figura 34: Desenvolvimento do hardware e software nos primeiros tempos da Computao _______ 108 Figura 35: Um exemplo de um diagrama de fluxos________________________________________ 114 Figura 36: Computador IAS, 1952 ____________________________________________________ 115 Figura 37: John von Neumann _______________________________________________________ 117 Figura 38: Von Neumann e o computador IAS ___________________________________________ 120 Figura 39: Gargalo de von Neumann __________________________________________________ 126 Figura 40: Donald E. Knuth _________________________________________________________ 133 Figura 41: Astrolbio ______________________________________________________________ 195 Figura 42: Astrolbio - 1 ____________________________________________________________ 197 Figura 43: Astrolbio - 2 ____________________________________________________________ 198 Figura 44: Astrolbio - 3 ____________________________________________________________ 198 Figura 45: A mquina Enigma _______________________________________________________ 200 Figura 46: Uma bombe, mquina inicialmente usada para tentar decifrar cdigo _______________ 202 Figura 47: Computador COLOSSUS, que substituiu as bombes______________________________ 203

204