Você está na página 1de 60

HISTRIA DA COMPUTAO

Cluzio Fonseca Filho

Resumo
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, etc. Embora os paradigmas possam mudar, as pesquisas normalmente evoluem baseadas 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 encontradas, as solues adotadas e os problemas pendentes. Tambm necessrio que, dentro da Computao, apaream trabalhos neste sentido, feitos por gente da rea com conhecimento semntico e sinttico dos conceitos relacionados aos computadores, que serviro de base e referncia para os estudantes e novos pesquisadores que adentram na rea. A Histria da Computao est marcada por interrupes repentinas, por inesperadas e imprevistas mudanas, 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 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. Buscar uma compreenso dos fatos atravs dos acontecimentos que o precederam, este um dos principais objetivos que estar presente neste estudo crtico da Histria da Computao atravs de uma viso conceitual. Tambm inteno do presente estudo procurar compreender e estabelecer as diretrizes para uma disciplina da Histria da Computao, atravs da seleo das idias, teorias e conceitos que ajudaram os homens em sua busca da automatizao dos processos aritmticos e que conduziram tecnologia dos computadores. Esta apostila est baseada em tese de mestrado do autor: Uma viso crtica da Histria da Computao, Departamento de Cincia da Computao, UnB, 29/06/98, orientada por Prof.Dr. Aluizio Arcela

Apresentao
Por que algum da rea de Cincia da Computao estudaria a histria desta cincia, aventurando-se a fazer uma trabalho de pesquisa sobre esse tema, se nessa rea observa-se um vertiginoso avano tecnolgico e mais tentador seguir estudos que concentrem seu foco naquilo que toca as fronteiras do saber cientfico atual em termos de software e hardware? Realmente tais estudos devero abarcar sempre a maior parte das pesquisas, sendo os responsveis pelo avano do estado da arte na rea da Computao. Porm tambm verdade que tais trabalhos deparam-se por vezes com dois panoramas desoladores: um deles a descoberta de que esses estudos j so conhecidos pelos grandes especialistas da rea, que s esto interessados nas referidas fronteiras; o outro a teia de obsolescncia que recai sobre tais pesquisas em funo do ritmo veloz de avano da tecnologia, que se pode comprovar todos os dias pelo modo com que rapidamente se abandonam e se substituem ferramentas e tcnicas dentro da Computao. Por outro lado observa-se que nas cincias mais tradicionais Filosofia, Matemtica, Fsica, Biologia, etc. existem sempre trabalhos de histria junto a muitos estudos dedicados a pensadores, inventores e
1

conquistadores de primeira, segunda ou terceira grandeza, alm de inmeras monografias. 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, etc. Embora os paradigmas possam mudar, as pesquisas normalmente evoluem baseadas 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 encontradas, as solues adotadas e os problemas pendentes. Tambm necessrio que, dentro da Computao, apaream trabalhos neste sentido, feitos por gente da rea com conhecimento 'semntico' e 'sinttico' dos conceitos relacionados aos computadores. Serviro de base e referncia para os estudantes e novos pesquisadores que adentram na rea, assim como construiro uma ponte interdisciplinar entre a Computao e outras cincias como a Filosofia, a Psicologia, as Cincias Cognitivas, estreitando mais ainda os laos que unem a Computao Matemtica e Lgica Matemtica. 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. Ordenao dos assuntos O desenvolvimento deste trabalho estar apoiado na seguinte seqncia de captulos:
o o o o o o

Uma reflexo sobre a Histria Evoluo conceitual Pr-Histria tecnolgica Nascimento da Computao A revoluo do hardware e do software A disseminao da cultura informtica e o controle das informaes

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. Em Evoluo conceitual 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 10 -, passando-se pelas contribuies das culturas babilnica, hindu, chinesa, rabe e grega, pelo baco, pela primeira mquina de calcular, at Boole, Hilbert, Turing, von Newman, 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. Uma vez formada a infra-estrutura conceitual, e estimulada pela evoluo tecnolgica do momento, e tendo-se em conta a necessidade de dispositivos mais poderosos e precisos para a execuo de clculos, prosseguir este estudo com uma viso mais detalhada de como se deu o Nascimento da Computao, isto , a construo dos primeiros dispositivos computacionais e os primeiros passos neste campo essencial da Computao que so as Linguagens de Programao.
2

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 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 assunto sero colocados. O primeiro tratar do impacto social do desenvolvimento da Computao e sobre a necessidade de se partir agora para uma anlise mais cuidadosa dos dados que os computadores tornaram disponveis ao homem. O segundo sero algumas consideraes sobre alguns limites do uso dos computadores.

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

Introduo A Histria e suas interpretaes A Histria da Cincia Enfoque histrico adotado

Introduo
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 24. 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 mais nada em um debruar-se sobre o passado e formular-lhe 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 de 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 neste 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
3

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. Neste caso a histria seria uma difcil conquista porque a cincia s conhece leis, sistemas hipottico-dedutivos e no mundo da histria reinam lado a lado a liberdade, 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 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 1 75. 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 supe alteraes inesperadas no processo do seu desenvolvimento 61, vol III. Em funo deste fato torna-se difcil a viso da evoluo dos computadores mediante uma mera enumerao linear de invenes-nomes-datas 2. pois necessrio 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.

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. 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 estabelecem-se os fundamentos para uma metodologia aplicada histria, sob uma radical exigncia de submeter todas as investigaes razo crtica 24. 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 13:
4

o o o o o o

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'(...)" 12. 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. 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 13. 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, atualmente 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 41. 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 o

o que so os fatos histricos - historiologia morfolgica; para qual fim se dirigem - historiologia teleolgica.

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 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 3. 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 61, volume III resume-se quais seriam as funes da Histria da Cincia:
o

sendo a cincia fator de histria, no se pode entender o desenvolvimento desta 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.
6

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.

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

A inteno 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 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 da histria, desde a perspectiva do seu fim. Conforme outro historiador, Toynbee 4 72, 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 tem um sentido, ainda que no totalmente, isto , que h um 'acmulo de ordem' nas relaes entre os milhares de fenmenos observveis 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" 29. 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. Isto 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. Isto 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" 50. 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 registrar, traando um fio de histria, os fatos conceituais, com a mnima periodizao e datao possveis. Por fatos conceituais entenda-se aqui as idias e conceitos relevantes que fundamentaram a incansvel busca pela mecanizao do raciocnio. Entre estas idias e conceitos estaro: lgebra, Sistema Axiomtico, Lgica Matemtica, Sistema Axiomtico Formal, Computabilidade, Mquina de Turing, Tese de Church, Inteligncia Artificial, entre outros. 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
7

indstrias privadas ou estatais , observou-se 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.
5

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 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 podem ser considerados verdadeiras mudanas de paradigma 6. 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.

NOTAS
1. 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 42, captulo Histria, item 1, desenvolve-se uma panormica geral dessas correntes e tendncias existentes entre historiadores e tericos da histria. 2. 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" 42. 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. 3. Para aprofundar no assunto, em 2 h uma sntese clara e profunda das discusses e evoluo das polmicas.
8

4. Se bem que em outro contexto, pois tinha uma outra linha de pensamento historiogrfico, mas que serve tambm para o enfoque adotado no trabalho. 5.Pense-se na Robtica por exemplo, onde esto includas a Inteligncia Artificial, as Linguagens de Programao, a Computao Grfica, etc. 6. No anexo I encontra-se uma tabela cronolgica dos acontecimentos, conceituais e tecnolgicos, que daro uma viso mais geral da evoluo da Histria da Computao.

Motivaes para se estudar a Histria da Computao


Introduo Necessidade de discernir fundamentos Incentivo educao para a qualidade do software Tornar claros e ligar os fatos Acompanhar novas tendncias Revalorizar o fator humano

Introduo
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.

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 panorama: a impossibilidade de ter uma viso global sobre todo o conhecimento que a precedeu e, mais acentuadamente ainda, a histria do desenvolvimento das vrias especialidades. No se tm 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
9

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, 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 armazenada as regras de um sistema formal? Que as pesquisas de Turing esto relacionadas com o trabalho de Gdel - considerado dentro da matemtica um dos mais famosos resultados do sculo, o Teorema de Gdel? E 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.

Incentivo educao para a qualidade do software


A investigao histrica sob esse 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 a esse tema da qualidade. A expresso "crise do software" 58 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 muitas instituies. 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 nossa sociedade em relao ao computador. Torna-se fundamental portanto que se diminuam cada vez mais as incertezas presentes no processo de elaborao dos sistemas de computao. A resposta a esses desafios j h alguns anos caminha para o estabelecimento de 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 destas propostas vo em direo ao uso de mtodos formais 1 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.

10

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 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"8. Busca-se por esta vertente a criao de uma metalinguagem lgico-matemtica 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 17, serve como ilustrao dessa idia.

Figura: 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 2. 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 estas tcnicas e seus fundamentos matemticos 5. 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 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 na 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,
11

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, dos fundamentos destas 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 pressupe um determinado conceito.

Tornar claros e ligar os fatos


Entre os objetivos da cincia histrica pode-se aceitar como axiomtico o 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 tornlo 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 que pode proporcionar a base para o desenvolvimento de padres atravs dos quais julguemos a viabilidade e potencial para uma atividade proposta ou corrente44. Isto , 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 tornam-se 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 e a participao do elemento humano nisso mas tambm porque nos ajuda a apreciar a qualidade de progresso que houve.

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, Inc.) 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" 43.
12

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. Tambm aumentaram o nmeros de museus e instituies governamentais ou particulares que prestam esse servio de preservao da histria da tecnologia informtica. Pode-se citar a Universidade de Stanford (curso CS104 do Centro de Educao e Cincia da Computao), EUA, o arquivo Nacional para a Histria da Computao da Universidade de Manchester, Inglaterra, o Instituto Charles Babbage, da Universidade de Minnesota dedicado a promover o estudo da Histria da Computao, o curso CS134 da Universidade de Waterloo (Canad) e similar em Bordeaux, Frana, Universidade de Wales Swansea, Austrlia, etc. Alm disso, muitos museus surgiram, como o de Boston, os de instituies militares americanas e organizaes do porte do IEEE (Institute of Electrical Engineers and Electronics). 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.

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 infraestrutura que 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, ser impossvel 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"56.

Notas
1. 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 reusabilidade das definies abstratas. 2. 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 programas49.

13

Evoluo dos conceitos


Introduo Primrdios o A Lgica de Aristteles o A contribuio dos megricos e esticos o Euclides e o Mtodo Axiomtico o Diophantus e o desenvolvimento da lgebra o A automatizao do raciocnio A mecanizao do clculo o Leibniz, o precursor da Lgica Matemtica moderna o O problema da notao A lgica matemtica no sculo XIX o Boole e os fundamentos da Lgica Matemtica e da Computao o A importncia de Frege e Peano O desenvolvimento da Lgica Matemtica A crise dos fundamentos, as tentativas de superao e David Hilbert Kurt Gdel e o indecidvel Alan Mathison Turing: o bero da Computao o A Mquina de Turing o O problema da parada e o problema da deciso o A tese de Church-Turing e outros resultados tericos

Introduo
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 far referncia a alguns aspectos da evoluo da Cincia da Matemtica, 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 na noo de computabilidade e procedimento, com Turing.

Primrdios
Os primeiros passos em direo aos computadores digitais foram dados no Egito e na Babilnia, h mais de 4 milnios, com os sistemas de medidas de distncias e previso do curso das estrelas. Durante a civilizao grega estas pr-cincias tomaram forma atravs dos sistemas axiomticos1. Talvez o passo mais fundamental dado nestes primeiros tempos tenha sido a compreenso do conceito de nmero, quer dizer, ver o nmero no como uma maneira de se poder contar, mas como uma idia abstrata. No est registrado como deve ter sido 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. A viso do nmero como uma qualidade de um determinado objeto um obstculo ao desenvolvimento de uma idia verdadeira de nmero. Somente quando, de acordo com o nosso exemplo, 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 para a aritmtica. Conforme Bertrand Russell, "foram necessrios muitos anos para se descobrir que um par de faises e um par de dias eram ambos instncias do nmero dois" 21.

14

Uma primeira cronologia que se pode estabelecer a que vai do ano 4.200 a.C. at meados do ano 1600 d.C. 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 10. 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. 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. Sob o foco que se est trabalhando, deve-se ver nestes tempos as tentativas de conceituao do nmero, o estabelecimento das bases numricas, o estudo da lgebra e geometria 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 Egito, na Grcia antiga e na civilizao islmica dos sculos IX a XV. A Lgica de Aristteles 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 abertura a relevantes problemas teorticos. Da Cincia Lgica 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 discussso 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 37 e 6. As polmicas geradas pela teoria de Parmnides e os famosos argumentos de Zeno 2, que negavam a realidade do movimento fazendo um uso indevido do princpio da no-contradio, contribuiram para a distino dos conceitos, para se ver a necessidade de argumentar com clareza mediante demonstraes rigorosas, respondendo 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 (384 a.C. - 322 a.C.) que se d o verdadeiro nascimento da Lgica, cincia das idias e dos processos da mente. Ele redigiu 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. Aristteles chamava a Lgica como o termo "analtica" (e justamente "Analticos" so entitulados 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.
15

Aristteles construiu uma sofisticada teoria dos argumentos, cujo ncleo a caracterizao e anlise dos assim chamados silogismos, os tpicos raciocnios da lgica desse filsofo. O argumento Todo homem mortal Scrates homem Logo Scrates mortal o exemplo tpico do silogismo perfeito. Nos Primeiros Analticos, Aristteles desenvolveu minuciosamente o sistema dos silogismos, mostrando os princpios maiores que o sustentam e as regras que lhe devem moldar a construo. A anlise do Filsofo to ampla quanto engenhosa e envolve tambm as assim chamadas "modalidades" e os silogismos modais3. 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 uma expresso substantiva qualquer, fundamental para desenvolvimentos posteriores. 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". 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 pouco que 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", contruda com o auxlio das expresses "se..., ento..." conhecidas 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
16

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 23. Euclides e o Mtodo Axiomtico Com sua obra Elementos, o matemtico grego Euclides (330 a 277 a.C. aproximadamente) deu forma sistemtica ao saber geomtrico. No primeiro livro dos Elementos, ele enuncia vinte e trs definies, cinco postulados e algumas noes comuns ou axiomas4. 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". 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 foram demonstradas. As proposies primitivas, base da cadeia sobre a qual se desenvolvem as dedues sucessivas, Euclides as escolhia 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 61, 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 notoriamente verdadeiras daquele domnio do conhecimento, e posterior deduo de todas as outras proposies verdadeiras desse domnio, a partir delas. Surge com Euclides e 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 79). 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 (17771855) 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, constrem uma geometria na qual o postulado da paralela no vale mais. A consequncia 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
17

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. Mas ser dessa sequncia de sucessos e fracassos que se produzir a base da Computao, com Turing, von Neumann, Post, Church, e outros mais. Diophantus 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? 9 Isto naturalmente pode ser resolvido usando-se lgebra. O primeiro tratado de lgebra foi escrito pelo grego Diophantus, 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" 10. Antes de Diophantus, toda a '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, em geral parte de cursos de teoria dos nmeros5. Seu trabalho, contudo, no suficiente para lhe conferir o ttulo de pai da lgebra6. Na verdade o termo lgebra vem do rabe al-jabr, ou literalmente, a "reunio de partes quebradas", tendo sido popularizado pelo livro ilm Al-jabr wa'l-mukabala (Restaurao e Confronto), escrito pelo famoso matemtico e astrnomo persa Abu Ja'far Muhammad (800847), que posteriormente ficou conhecido como al-Kharazmi, o homem de Kwarazm (atualmente Khiva, no Uzbequisto). AlKharazmi introduziu a escrita dos clculos no lugar do uso do baco. De seu nome derivaram as palavras algarismo e algoritmo7. Vale ressaltar que, alm dos gregos como Diophantus, tambm os hindus tinham desenvolvido estudos no campo da lgebra; coube aos rabes a misso de conservar e transmitir a herana matemtica grega e hindu 36. 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 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 equaes 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
18

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. 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 31. 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. 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 (1545), Descartes (1598-1650), Leibniz (1646-1716), Cantor (18291920), 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 as idias de clculo (...). Com a ajuda desse simbolismo, eles pretendem permitir que as operaes mentais frequentemente incertas fossem substitudas pela segurana de operaes quase mecnicas, propostas de uma vez por todas" 61, 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. No do interesse deste trabalho aprofundar-se nas discusses filosficas - que ainda esto em aberto por sinal sobre os conceitos "lgica matemtica" e "lgica simblica", se uma lgica distinta da cincia matemtica ou no, etc., mas em caracteriz-la, pois sem dvida alguma a Computao emergir dentro de um contexto da evoluo deste novo tratamento da lgica. 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, neste 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(1574-1621), 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.

19

Algumas figuras representando o dispositivo lgico pensado por Llio

A mecanizao do clculo
Se aceito o ponto de vista de estudiosos como Needham 59, 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, a trigonometria se tornara uma disciplina independente 10. 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 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 Computao8. Leibniz, o precursor da Lgica Matemtica moderna A Lgica Moderna comeou no sculo XVII com o filsofo e matemtico alemo Gottfried Wilhelm Leibniz. 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" 78). Entre outras coisas, Leibniz queria dotar a Metafsica (aquela parte da Filosofia que estuda o "ser" em si) de um
20

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 ambiguidade dos termos e dos processos conclusivos da linguagem ordinria. Leibnz viu surgir a idia central de 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 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 multisecular que as havia encerrado no mbito da geometria, e se estava construindo um simbolismo cada vez mais manipulvel 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. 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 Leibniz 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. Este programa visava criar uma linguagem universal baseada em um alfabeto do pensamento ou characteristica universalis, uma espcie de clculo universal para o raciocnio. 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 22, volume XI. Conforme o prprio Leibniz, "(...) 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, se se deseja), dizer um ao outro: Calculemos!" 6. 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)9. Isto 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 '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.
21

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 destes sinais, Leibniz acabou provocando um novo desenvolvimento da prpria lgica. 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 22, 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 sculo XVII. que, na realidade, a aportao 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, matemtico, cientista e filsofo, que, antecedendo a Leibniz, montou uma mquina de clculo digital para ajud-lo nos negcios do pai 80. O problema da notao 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. A notao de Leibniz usada para o clculo contribuiu mais do que a de Newton para a difuso das novas idias sobre integrais10, 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, com Descartes, tais convenes comearam a ser usadas 10. 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 10. Isto o levou entre outras coisas a pensar em um sistema binrio para a Aritmtica e demonstrou a vantagem de tal sistema sobre o decimal para dispositivos mecnicos de calcular 11. A idia de uma lgica estritamente formal - da construo de sistemas sem sentido, 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 22,
22

. A lgebra booleana constitui a base para o projeto de circuitos usados nos computadores eletrnicos digitais.
volume III

A lgica matemtica no sculo XIX


A passagem do sculo XVIII para o sculo XIX marca o incio de um novo tempo na Histria da Computao. Mais do que qualquer perodo precedente, mereceu ser conhecido como a idade urea da Matemtica. O que se acrescentou ao assunto durante esses 100 anos supera de longe tanto em quantidade como em qualidade a produo total combinada de todas as pocas precedentes. Com uma possvel exceo da idade conhecida na matemtica como idade herica, na Grcia antiga, foi uma das mais revolucionrias etapas do desenvolvimento dessa cincia e consequentemente 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 formal12 se elabora como um clculo algbrico, adotando um simbolismo peculiar para as diversas operaes lgicas. Graas a este 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 67. No se trata aqui de estudar Lgica, mas 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, conceito abstrato que efetivamente deu incio era dos 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 por 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 4. No comeo 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. Boole e os fundamentos da Lgica Matemtica e da Computao O ingls George Boole (1815-1864) considerado o fundador da Lgica Simblica 22, 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. Sem Boole, um pobre professor autodidata em Matemtica, o caminho onde 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) foi apenas uma tentativa bem inspirada que teve pouco efeito sobre os futuros construtores do computador, sem a lgebra booleana,
23

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"13. Foi Boole em sua obra The Mathematical Analysis of Logic (1847) quem forneceu uma idia clara de formalismo e a desenvolveu de modo exemplar. Boole 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 37. O que chamou a ateno na obra foi a clara descrio do que seria a essncia do clculo, isto , o formalismo, o procedimento, conforme o prprio George Boole descrevia, "cuja validade no depende da interpretao dos smbolos mas sim da exclusiva combinao dos mesmos" 6. Ele concebeu a lgica como uma construo formal qual se busca posteriormente um 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 clculos14. Boole estava convencido de que sua lgebra no somente demonstrou a equivalncia entre Matemtica e Lgica, mas que tambm representou a sistematizao do pensamento humano. A cincia, a partir de Boole, viu 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 lgica simblica booleana foi importante - e s os anos fizeram ver - pois a lgica de at ento era incompleta e no explicava muitos princpios de deduo empregados em raciocnios matemticos elementares. No entanto a lgica booleana estava limitada ao raciocnio proposicional, e somente aps o desenvolvimento de quantificadores, introduzidos por Pierce, que a lgica formal pde ser aplicada ao raciocnio matemtico geral. Alm de Peirce, tambm Schder e Jevons15 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
24

sinal de diviso. O resultado mais importante no entanto foi a apresentao do clculo de uma forma extremamente axiomatizada. 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 30. 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 torna-se difcil descrever a quantidade de conceitos e inovaes, muitas revolucionrias, 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, o conceito de quantificador16. 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 nossa semntica, uma disciplina sobre o contedo, natureza desse contedo e estrutura. Frege 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 lingua characteristica. Dizia ele que uma das tarefas da filosofia era romper o domnio da palavra sobre o esprito humano. O uso de um sistema simblico, que at ento somente se pensava para a matemtica, procurou-o usar Frege 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 18. 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 de Frege foi
25

elaborar uma concepo lgica mais abrangente do que a Lgica de Aristteles. Em um procedimento que lembra a "characteristica universalis"17, 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 (Ideografia ou Conceitografia) e Grundgesitze (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 27. Foi atravs do contato com a obra de Frege que Bertrand Russell procurou levar avante a idia de construir toda a matemtica sobre bases lgicas, convencido de que ambas so idnticas. Os postulados fregianos18, adotados primeiramente por Peano, foram incorporados por Russell, que extendeu 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 tantas construes rigorosas na lgebra e anlise - "representam a mais notvel tentativa do sculo 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 ambiguidade de sentido, sem hipteses ocultas" 10. J Hilbert procurou colocar em prtica a teoria da demonstrao de Frege, e pode-se ver nessas palavras de Frege 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" (6, 38.24). Pode-se notar a partir desse momento uma guinada no conceito de Lgica: o objeto da investigao lgica j no so mais as prprias frmulas, mas as regras de operao pelas quais se formam e se deduzem.

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 nmero 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).
26

Por exemplo, ao invs de se tomar o nmero imaginrio como uma entidade um tanto misteriosa, pode-se defin-lo como um par ordenado de nmeros inteiros (0,1), sobre o qual se realizam certas se definia numa certa operaes de "adio" e "multiplicao". Analogamente, o nmero irracional 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, 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, de modo que a lgica das classes apresentava-se como a teoria mais adequada para a investigao sobre os fundamentos da matemtica. O esforo dos matemticos foi o de dar lgebra uma estrutura lgica, procurando-se caracterizar a matemtica no tanto pelo seu contedo quanto pela sua forma. Bochenski 6, 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 Metalgica19 (Hilbert, Lwenheim e Scholem) e, a partir de 1930, por uma sistematizao formalista desta 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 neste 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 logiscista 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.

A crise dos fundamentos, as tentativas de superao e David Hilbert


At aqui as disciplinas dedutivas atingiram um alto grau de perfeio lgica. Mas algumas dvidas comearam a abalar a confiana dos matemticos: o surgimento, por volta de 1900, de numerosos paradoxos ou antinomias, especialmente na teoria dos conjuntos20. O surgimento 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? Este quadro estimulou a criatividade matemtica. Na tentativa de se resolverem os paradoxos surgiram 3 grandes escolas da lgica : a Logicista21 , a Intuicionista22 e a Formalista (h um excelente trabalho para explicar essas escolas, em linguagem apropriada para o noespecialista, em 20, captulos I a III).
27

Mas, retornando ao problema dos paradoxos acima citado, 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 primeira dcadas do sculo XX23, 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 ambiguidades, j que a matemtica sempre foi feita atravs de uma linguagem natural? Sem falar na crise dos paradoxos, subjacente a tudo isso! A escola logicista rapidamente ficou exposta a fortes crticas24. 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 grande 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 desta teoria dentro de outra teoria j existente (e que era considerada coerente25) mostrou-se pouco confivel: como dar a certeza da nocontraditoriedade dessa outra teoria? A maior parte dos matemticos dos nossos dias afastou-se desta linha de pensamento. Positivamente falando, sua severa 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 20. 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, e que teve como pice os anos da dcada de 1930. Atravs de dois relatrios, em 1922 e 1923, props o chamado Programa Hilbertiano, voltado para uma prova no mais 'relativa' (a outro sistema), mas direta e absoluta de um sistema axiomtico. Era necessrio colocar a matemtica em bases rigorosamente slidas, com axiomas e regras de procedimento que deveriam ser estabelecidos em carter definitivo. Todos estes estudos denominaram-se Metamatemtica ou Metalgica, pela conectividade das duas. Hilbert props-se demonstrar a coerncia da aritmtica26 para depois estender tal coerncia aos mbitos dos demais sistemas. Ele 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 III. Isto era o centro da doutrina formalista, que mais tarde estimularia Turing a fazer descobertas importantes sobre as capacidades das mquinas. Lembre-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 formalista27.
28

Um problema fundamental neste processo de formalizao da aritmtica era perguntar se existe um procedimento finito pelo qual seja possvel decidir a verdade ou falsidade de qualquer enunciado aritmtico. Em 1900, no Segundo Congresso Internacional de Matemtica, realizado em Paris, David Hilbert props uma lista de 23 problemas cuja soluo "desafiar futuras geraes de matemticos". Vrios deles foram desde ento resolvidos e alguns resistem at hoje, permanecendo ainda em aberto. O segundo problema da referida lista estava relacionado com a confiabilidade do raciocnio matemtico, isto , se ao seguir as regras de determinado raciocnio matemtico no se chegaria a contradies. Relacionado com ele, o problema de nmero dez especialmente interessante para a Computao. 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. Este problema 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 premissas28. Tambm a questo da consistncia era decisiva para Hilbert, 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 ter um fundamento slido 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 no dcimo problema j descritos. Hilbert queria saber se possvel provar toda assertiva matemtica verdadeira. Hilbert 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 16. um problema que est relacionado com o citado projeto hilbertiano da busca de um sistema formal completo (onde toda assertiva matemtica verdadeira pode ser provada no sistema) e consistente (uma verdade matemtica e sua negao no podem ambas ser provadas no sistema). 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: 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 descritvel29, 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 16. Isto est diretamente relacionado com o trabalho de Gdel e Alan Turing. Pode-se afirmar que em geral a lgica matemtica prestou nestes 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
29

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 linguagem ideal surgiu a filosofia da linguagem (Moore, Wittgenstein, Geach em sua segunda etapa) colocando as questes lgicas sobre nova tica 67. 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.

Kurt Gdel e o indecidvel


Em 1931, o matemtico Kurt Gdel (1906-1978) publicou alguns resultados de suas pesquisas, que mudaram o rumo dos estudos da Cincia Matemtica e atingiram profundamente o formalismo. Entre eles est o famoso Teorema de Gdel sobre as proposies indecidveis, que diz o seguinte 27: A. Se S um sistema formal suficientemente forte para conter a aritmtica elementar, ento S incompleto ou inconsistente; B. A eventual consistncia de um tal sistema formal no pode ser provada apenas com recursos daquele mesmo sistema. Kurt Gdel demonstrou que no possvel construir uma teoria axiomtica dos nmeros que seja completa, como pretendia Hilbert. A primeira parte do teorema citado significa que existem proposies aritmticas tais que nem elas nem sua negao so demonstrveis na aritmtica adotada. So proposies indecidveis. Logo, em qualquer axiomtica consistente baseada em aritmtica existem sentenas indecidveis. Como uma proposio e sua negao so contraditrias - admitindo-se o princpio do terceiro excludo -, ento uma delas verdadeira. Portanto existem sentenas aritmticas verdadeiras, formulveis em uma determinada axiomtica baseada em aritmtica, que no podem ser provadas. A segunda parte do teorema diz que a prova de ausncia de contradio em uma axiomtica da aritmtica no pode ser realizada apenas com os recursos dessa axiomtica.

30

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 IV 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 demonstrao30. Gdel, no entanto, 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, que contenha os operadores "+" e "=", pode ser expresso em termos aritmticos 19. Isto significa que por mais complexa que se torne a matemtica (ou qualquer outro sistema formal redutvel a ela), ela pode sempre ser expressa 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 computadas31. Posteriormente verificou-se a existncia de uma equivalncia entre o Teorema da Incompletude de Gdel e o problema da parada de Turing.

Alan Mathison Turing: o bero da Computao


A revoluo do computador comeou efetivamente a realizar-se no ano de 1935, em uma tarde de vero na Inglaterra, quando Alan M. Turing (1912-1954), estudante do King's 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 matemtica segura o conceito heurstico do que seja proceder a um cmputo. O resultado destas pesquisas era fundamental para o desenvolvimento da matemtica: tratavase 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.
31

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 algoritmo32, uma noo que ele modelou baseando-se nos passos que um ser humano d quando executa um determinado clculo ou cmputo. Turing formalizou definitivamente o conceito de algoritmo.

A Mquina de Turing
http://professores.faccat.br/assis/hcomp/EvolucaoConceitual.html - topoO trabalho de Alan Turing

ficou documentado no artigo On Computable Numbers with an aplication to the Entscheidungsproblem, publicado em 193633 , 73, volume XII. Turing descreveu em termos matematicamente precisos como pode ser poderoso um sistema formal automtico, com regras muito simples de operao. "O que faz o raciocnio humano quando executa um clculo"?, perguntou-se Turing. Ele definiu que os clculo 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 usado o papel e o 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 Turing concentrou-se na definio destes estados de tal maneira que fossem claros e sem ambiguidades, 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 especificariam quais movimentos a fazer 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 fazem 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 de Turing. 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 como uma prova de que certos tipos de mquinas computacionais poderiam, de fato, ser construdas. Efetivamente, uma Mquina de Turing Universal34, exceto pela velocidade, que depende do hardware, pode simular qualquer computador atual, desde os supercomputadores at os computadores pessoais, com suas complexas estruturas e poderosas capacidades computacionais, dado o tempo e memria necessrios. Alan Turing 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 uma mquina 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. O problema da parada e o problema da deciso 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.
32

Colocando de uma 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 especifica 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 deste 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 computador35.

Figura: Relacionamento entre os mundos formais, matemticos e computacionais A tese de Church-Turing e outros resultados tericos
33

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 seguindo-se 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) por Stephen Cole Kleene (1909-1994) em sua teoria lgica da computabilidade (parte de seu livro Introduo Metamatemtica, um dos cumes da lgica matemtica dos ltimos anos); as Mquinas de Turing; 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 reescrita de smbolos (cuja gramtica de Chomsky um caso particular), de Emil L. Post (1897-1954). Com efeito, todos estes 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. No presente trabalho referirer-se- mais a Church e Turing (Kleene fez em seu trabalho uma ampla abordagem de ambos, tirando vrias consequncias, e Post trata do mesmo tema de Turing), para se ter uma viso mais clara da diversificao dos estudos desta dcada de 1930 para a fundamentao terica de toda a Computao. Um clebre teorema de Alonzo Church (19031995) 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. Isto pode causar certo espanto se se pensa 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 algortmo capaz de enumerar uma aps outra todas as sua expresses vlidas. De fato, no entanto, estas expresses so indefinidamente numerosas, de modo que, mesmo sendo verdade que essa infinidade de expresses seja enumervel, ou seja, construveis passo a passo a partir dos axiomas, essa enumerao no tem fim. Compreende-se, ento que, se se consegue demonstrar uma determinada frmula P em um certo momento, isto j basta para afirmar que se trata de uma frmula vlida. Pelo contrrio, se por exemplo depois de haver deduzido mil teoremas dos axiomas, P ainda no apareceu, no se pode afirmar nada, porque P poderia aparecer talvez aps outro milhar de teoremas, permitindo-se reconhecer sua validade, ou no aparecer nunca, por no ser vlida. Mas no se poder afimar em qual caso se est, mesmo depois das mil dedues. A deciso, dentro desse clculo seria possvel se se possuisse 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 valer34

se das noes tcnicas relacionados com os conceitos da matemtica recursiva, que excedem amplamente os limites deste trabalho. Tambm Church estava interessado no problema de Hilbert. O resultado a que Turing tinha chegado em 1936 sobre o problema da deciso de Hilbert, Church o tinha alcanado tambm, 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 lambdadefinibilidade equivalente ao conceito de recursividade de Gdel-Herbrand e nesse meio tempo Church formulou sua tese que estabelecia que a recursividade a prpria formalizao do efetivamente computvel. Isto 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 dar a sua noo de computabilidade associada a uma mquina abstrata, mostrou que a noo Turingcomputvel equivalente lambda-definibilidade 33. O trabalho de Church e Turing fundamentalmente liga 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 d uma maneira de se medir a capacidade computacional de uma mquina. Necessita-se somente identificar as funes que se capaz de computar e usar este 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 sequncia 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. Isto 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 decobrir 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 conjecturou que o poder computacional das MT abarcava qualquer processo algoritmico, ou, analogamente, o conceito da MT propicia um contexto no qual todas as funes computveis podem ser descritas. Isto foi a contribuio dada pelo trabalho de Turing e Church: 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.

Notas
1. Em um sistema axiomtico parte-se de premissas aceitas como verdadeiras e 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. 2. 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. Seu discpulo Zeno (490 a 430 a.C.) foi o fundador da dialtica e radicalizou a negao do movimento. Este envolveria um
35

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) 3. Modalidades so as expresses do tipo " possvel que...", " necessrio que...". 4. 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.). 5. 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). 6. 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. 7. 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, e dele se tornar a falar mais frente 8. 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. 9. Deve-se observar que destas conceituaes descenderam a notao da matemtica e da lgica do sculo XX. 10. 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 61, volume 11. 11. Em 1673 Gottfried Leibniz, usando uma engrenagem dentada, construiu uma calculadora capaz de multiplicar, na qual um nmero era repetidamente e automaticamente somado a um acumulador. 12. Remonta aos gregos, particularmente 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. 13. 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 37.
36

14. 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 (para mais detalhes ver 70). 15. 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. 16.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 37. 17. Como j se disse, 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. 18. Sobre nmero, deduo, inferncia, proposies, premissas, etc. 19. Quando a prpria Lgica Formal reflete sobre seus contedos. 20. 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. Consequentemente, o nmero cardinal de S no pode ser menor do que o de conjunto dos subconjuntos de S. Mas isto, pelo teorema do prprio Cantor, deveria ocorrer! 21.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 princpos lgicos ("no contradio", "terceiro excludo", etc.), mediante raciocnios puramente matemticos. 22. 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. 23. 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 20. 24. 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. 25. Caminho praticado por Hilbert no seu famoso trabalho Fundamentos da Geometria (1899), onde axiomatizou de modo rigoroso a geometria euclidiana.
37

26. 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. 27. John von Neumann falava 5 lnguas e foi um brilhante fsico, logicista e matemtico. 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. 28. 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. 29. 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 todas prova dentro do sistema deveria ter um nmero finito de passos. 30. 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 representveia dentro do cculo aritmtico, ou seja, esto fora das condies previstas por Hilbert. 31. Os resultados de Gdel tem consequncias 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. A concluso a que se chega que a mente humana superior a uma mquina. 32.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). 33. Um ano mais tarde, trabalhando independentemente, Alan Post publicou seu trabalho sobre uma mquina semelhante de Turing. 34. 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. 35. 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 57.
38

Pr-histria tecnolgica
Introduo Dispositivos mais antigos Logaritmos e os primeiros dispositivos mecnicos de clculo Charles Babbage e suas mquinas o A mquina de Jacquard, inspirao de Babbage o Uma Lady como primeira programadora Outras Mquinas Diferenciais e Mquinas Analticas A ltima contribuio do sculo XIX: Herman Hollerith Computadores analgicos o Primeiras evolues: sculo XV o Michelson e seu analisador harmnico; I Guerra Mundial o Computadores analgicos eletromecnicos Circuitos eltricos e formalismo lgico: Claude Elwood Shannon

Introduo
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 esta preocupao se manifestou na construo de mecanismos para ajudar tanto nos processos de clculo aritmtico como nas tarefas repetitivas ou demasiado simples, que pudessem ser substitudas por animais ou mquinas. Neste captulo tratar-se- dos dispositivos fsicos que precederam o computador, principalmente as mquinas analgicas que incentivaram a corrida final at o aparecimento dos computadores digitais.

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 desenvolvido 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
39

mecnicos para evitar clculos tediosos" (An Ancient Greek Computer, pg. 661). 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 (...)"7.

Logaritmos e os primeiros dispositivos mecnicos de clculo


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 primera 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), Blaise Pascal (1623-1662) e Gottfried Wilhelm Leibniz (1646-1716). Existem excelentes obras sobre essas invenes e somente sero citados os elemento bsicos que as compunham2, 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 configurao80:
o

o o

o o o

um mecanismo atravs do qual um nmero introduzido na mquina. Nos primeiros projetos isto 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.

Charles Babbage e suas mquinas

40

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 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. 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 ento compunham as ferramentas tecnolgico 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"(...)26. 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 lgebra26. 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 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 (no anexo II descreve-se 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, etc. 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
41

quo distante estava a tecnologia do seu tempo daqueles mecanismos altamente precisos e de movimentos altamente 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 mquina3. 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 determindo 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 consequncias 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 criar estas instrues precisaria de um tipo inteiramente novo de linguagem e a imaginou como nmeros, flechas e outros smbolos. Ela seria para Babbage "programar" a Mquina Analtica, com uma longa srie de instrues condicionais, que lhe permitiriam modificar suas aes em resposta a diferentes situaes. 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.

A mquina de Jacquard, inspirao de Babbage importante fazer uma meno a Joseph-Mariae Jacquard (1752-1834), o francs que introduziu a primeira mquina para substituir o trabalho humano. Na verdade, Babbage despertou para seu novo projeto observando a revoluo produzida pelos teares de Jacquard4. Era uma mquina que automatizava os processos de fabricao de tecido. Para executar um determinado tranado, a fiandeira deveria ter um plano ou programa que lhe dissesse que fios deveria 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 11.000 teares de Jacquard23, volume V. Adaptando o tear de Jacquard, a
42

Mquina Analtica processava padres algbricos da mesma maneira que o tear processava padres de desenhos. Uma Lady como primeira programadora Ada Augusta Byron (1851 - 1852) era filha do famoso poeta Lord Byron e foi educada pelo matemtico logicista ingls Augustus De Morgan. Bem cedo demonstrou ter grandes talentos na rea. Apresentada a Babbage durante a primeira demonstrao da Mquina de Diferenas, tornouse 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, ele ministrou uma srie de palestras para distintos pblicos, incluindo Luigi F. Menabrea, futuro primeiroministro 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 pessoais26. Esta publicao e outro ensaio (Observations on Mr. Babbage's 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"53. 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.

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 operao80. Um sueco, George Scheutz, editor de um jornal tcnico de Estocolmo, leu e ficou entusiasmado pela mquina descrita por Lardner e, sem comunicar-se com Babbage, props-se a construir a sua Mquina de Diferenas, junto com seu filho5. 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 tabelas80. 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.
43

A ltima contribuio do sculo XIX: Herman 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 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 (CalculatingTabulating-Recording), renomeada em 1924 para International Business Machine - IBM34. 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.

Computadores analgicos
H uma histria interessante sobre os computadores analgicos, cujas origens esto em um passado distante. Muitos dispositivos analgicos foram desenvolvidos a partir do ano 400 a.C. Tpicos instrumentos deste tipo so os astrolbios, o mecanismo Antikythera, os instrumentos de sinalizao e os planetrios80. 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 matemticas46. 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 infraestrutura que constituiu a base para o aparecimento dos computadores digitais. Um computador analgico um dispositivo no qual os nmeros so representados por quantidades 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
44

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 equaes6, 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 as caractersticas de uma estrutura, pode-se investigar o fluxo de calor dentro dessa estrutura22, 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 186026. Em todos os dispositivos analgicos que comearam a aparecer, a operao fundamental a da integral, isto , todos eles produziam como sada , dado f(x) como entrada.

Dentro da evoluo das mquinas analgicas, os analisadores diferenciais foram os dispositivos analgicos que mais tarde passaram a ser chamados propriamente de computadores analgicos. Primeiras evolues: sculo XV por volta do sculo XV que aparecem dispositivos analgicos mais sofisticados, utilizados para prever os 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 cosseno (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 figura.
45

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 (...)"26. Uma anlise harmnica consiste em se formar um nmero de integrais do tipo geral , onde g uma funo seno ou cosseno. A avaliao das integrais desse tipo foi o que Kelvin conseguiu, fazendo uma engenhosa adaptao de um integrador7 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 consequentemente ele, de fato, no pode fornecer uma entrada para outro integrador8. 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 Bush9. 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 189852, 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. 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 destes 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 Inglaterrra, cujas principais descobertas esto nos procedimentos numricos para soluo de equaes diferenciais com grande preciso26. 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. Eles 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
46

General Electric, entre outros26. 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 operao de gerar a integral do produto de duas funes, , e por vrios anos 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 operacionais66. Ainda dentro do mundo dos computadores analgicos, deve-se destacar o trabalho do fsico ingls Douglas Hartree, da universidade 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 eletrnicos26. As novas descobertas da indstria e da cincia no campo da eletricidade - proporcionando rapidez e preciso nos 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 uso22, volume XI.

Circuitos eltricos e formalismo lgico: Claude Elwood Shannon


Como um grande tapete, que se vai formando 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, 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. 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 Informao10 e 25. Deu ainda importantes contribuies na rea da Inteligncia Artificial 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
47

combinaes entre 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:
o o o

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 tabelas-verdade 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 rel11. Sua tese de mestrado publicada em 1937 mostrou como a lgebra booleana poderia ser usada para descrever as operaes desses complexos circuitos. Nos dez anos seguintes ao seu primeiro trabalho - a citada tese -, Shannon dirigiu seu interesse para o estudo da 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. Shannon 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 Teoria da Informao (A Mathematical Theory of Information)12. O desenvolvimento deu-se rapidamente, afetando no somente o projeto de sistemas de comunicao, mas tambm reas como automatizao, cincia da informao, psicologia, lingustica e termodinmica22, 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 do crebro humano62, captulo 6.

Notas
1. Trabalho citado por Bolter, que descreve o dispositivo Antikythera, na Scientific American, junho de 1959, pgs. 60-67. 2. Havia tambm o problema, de modo algum simples, da inveno de mecanismos que produzissem os movimentos exigidos pelas engrenagens durante os clculos 3. 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
48

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 80. 4. O tear de Jacquard inspirou tamb a Herman Hollerith, sobre quem se falar mais adiante. 5. 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. 6. Como por exemplo equaes diferenciais ordinrias, sries de transformaes de Fourier, sistemas de equaes algbricas lineares. 7. 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. 8. Outra dificuldade substancial: no possvel aumentar muito o nmero de termos em uma srie pois o seu dispositivo de adio de termos junto levava a um acmulo de erros. Para uma longa srie de termos o resultado poderia estar completamente viciado. 9. 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. 10. Busca a representao matemtica das condies e parmetros que afetam a transmisso e processamento da informao. 11. 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. 12.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.

As primeiras mquinas
Os primeiros computadores eletromecnicos o Konrad Zuse o As mquinas da Bell e as mquinas de Harvard o A participao da IBM O incio da era da computao eletrnica As primeiras linguagens o Alguns aspectos tericos o Desenvolvimentos anteriores a 1940 o As primeiras tentativas o Konrad Zuse e seu 'Plancalculus' o O diagrama de fluxos o A contribuio de Haskell Interpretadores algbricos e linguagens intermedirias

49

Os primeiros 'compiladores'

Os primeiros computadores eletromecnicos


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. Pode-se dividir esta primeira etapa em 3 partes: 1. o trabalho do alemo Konrad Zuse; 2. a produo, pelos laboratrios da Bell Telephone, de uma srie de computadores baseados em tecnologia de rels e os projetos de Howard Aiken em Harvard; 3. os projetos de computadores eletromecnicos de pequeno e grande porte da IBM . Konrad Zuse 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 64. 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 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" 1e 83. 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
50

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 83. 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 rels69. Ao mesmo tempo, nos Laboratrios de Computao de Harvard, Howard Aiken e engenheiros da IBM comearam a desenvolver um outro tipo de mquinas eletromecnicas, 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. Quando terminado em 1944, foi imediatamente adotado pela marinha americana, para fins militares. Novas verses foram produzidas at 1952. 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 variaram 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 semelhantes80. 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 70033.
51

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 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"34. Ocupa tambm um importante lugar na Histria da Computao o computador ENIAC: esta mquina e a equipe que a projetou e a construiu sero responsveis por um grande avano no desenvolvimento dos computadores eletrnicos. 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), uma 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, tornaram-se os principais protagonistas na construo do Electronic Numerical Integrator and Computer, o primeiro computador onde cada unidade era composta de vlvulas eletrnicas e rels. Em 1945 John von Neumann ingressou como consultor na equipe da Universidade da Pensilvnia, iniciando um trabalho sobre projetos de computadores, que foi fundamental nos 40 anos que se seguiram. Em 30 de junho de 1945 ele publicou o First Draft of a Report on the EDIVAC, que estabeleceu o paradigma de projetos de computadores para vrias geraes seguintes de mquinas. Esta arquitetura ficou conhecida com o nome de "arquitetura de von Neumann", e entre outras coisas inclua o conceito de programa armazenado. John von Neumann foi o responsvel pela criao do cdigo a ser usado (base para os futuros cdigo a serem desenvolvidos) no ENIAC e elaborou o projeto lgico do dispositivo eletrnico para execut-lo. O ENIAC comeou a operar em 1943, tendo sido terminado totalmente em 1946, encerrando suas operaes em 1955. 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 Oxforf, para tentar construir uma mquina capaz de decodificar o alfabeto produzido pela verso germnica de um dispositivo inventado nos Estados Unidos, o ENIGMA35. 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 COLOSSUS2. O trabalho do grupo de Betchley foi enormemente influenciado pelos resultados sobre computabilidade obtidos por Alan Turing, que 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.

52

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. Desde as 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 ferrita, um rduo caminho foi percorrido. A memria de ncleos magnticos acabou preponderando, tendo sido utlizada 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 a performance 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. Von Neumann, um dos envolvidos no projeto do ENIAC, foi para Princeton construir a sua prpria verso do EDVAC (Electronic Discrete Variable Automatic Computer), que tinha sido projetado por Eckert e Mauchly na Pensilvnia3. Era evidente para von Neumann que a programao de computadores com um grande nmero de chaves e cabos era lenta e pouco flexvel. Ele comeou a perceber que o programa poderia ser representado em forma digital na memria do computador, juntamente com os dados. Seu projeto bsico, hoje conhecido como mquina de von Neumann, foi utilizado no EDSAC, o primeiro computador de programa armazenado. Esta tcnica de usar uma "memria de armazenamento" assim como a "transferncia de controle por 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 conceitos4. Esta primeira gerao de computadores caracterizou-se pelo fato de que as instrues de operao eram produzidas para tarefas especficas. Cada mquina tinha um programa em cdigo binrio diferente que indicava o fluxo das operaes. Isto dificultava a programao e limitava a versatilidade desses primeiros computadores. Na figura que se segue h um pequeno resumo desses primeiros tempos da computao eletrnica, tomando como referncia o ensaio de Arthur W. Burks15.

53

Figura:desenvolvimento do hardware e software nos primeiros tempos da Computao

As primeiras linguagens
54

Atendo-se s premissas iniciais de se destacar neste trabalho a evoluo dos conceitos e idias ao longo da Histria da Computao no se pretende 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. Alguns aspectos tericos 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, um 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 sequncia finita de instrues que podem ser executadas por um agente computacional, seja ele homem ou no. Propriedades: (i)a descrio deve ser finita; (ii)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; (iii)supe-se que exista um agente computacional humano, eletrnico, mecnico, etc. que execute as instrues do procedimento; (iv)cada instruo deve ser bem definida; (v)as instrues devem ser to simples que poderiam ser executadas por algum usando lpis e papel, em um espao de tempo finito. 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. Esta linguagem algoritmica deve pertencer a um conjunto no ambguo de uma linguagem natural, tal como Francs ou Ingls, ou de uma linguagem artificial como FORTRAN ou LISP. As frases da linguagem descrevero as operaes a serem executadas. A forma ou formato de procedimentos efetivos em uma linguagem algoritmica qualquer especificada por um conjunto de regras chamada regras de sintaxe, cujas propriedades esto acima enumeradas11. Esta sintaxe refere-se aos programas corretamente escritos nela e o relacionamento entre os smbolos e frases que ocorrem nesses programas. Alguns altores a divedem em ser concreta e abstrata55. A concreta envolve (i) o reconhecimento de textos (sequncias de caracteres) corretamente escritos de acordo com as especificaes da linguagem e (ii) a colocao dos textos, de maneira no ambgua, dentro das frases que compe o programa. A sintaxe abstrata lida com as estruturas de frases do programa. Portanto a sintaxe refere-se forma dos programas: como 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, entendo-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, i.e., qualquer problema que tenha soluo por computador pode ser escrito com ela. Qualquer linguagem em que se possa definir uma funo recursiva ser universal. Na prtica deve ser apta a resolver, no mnimo, os problemas da rea para a qual foi projetada5. E uma caracterstica fundamental: ser implementvel em computador, isto , deve ser possvel executar qualquer procedimento bem formado na linguagem48. Uma linguagem de programao tambm possui uma semntica. A semntica de um programa ir depender exclusivamente do que se deseja causar6 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,
55

corrente eltrica flui pelos circuitos, letras aparecem na tela ou so impressas, e assim por diante. Um programa controla todos esses 'fenmenos' atravs de 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 signifca falar das caractersticas que tornam tais linguagens implementveis, independentemente de ser este ou aquele 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, independente do seu uso nesse ou naquele computador. A semntica de uma linguagem de programao a mesma semntica de todos os programas escritos nela55. 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. Isto levou ao desenvolvimento de diferentes paradigmas - estilos e objetivos - de programao como o imperativo, funcional, orientado a objeto, lgico, etc. Outros buscaram e buscam caminhos para 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. Desenvolvimentos anteriores a 1940 Mas antes de se entrar nesse mundo das linguagens, como eram anteriormente especificados os algoritmos? Os mais antigos algoritmos escritos que se conhecem so os da velha Mesopotmia. Eram sequncias de clculos sobre conjuntos particulares de dados e no uma abstrao7 de procedimento como entendido na programao atual39. 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 tido um bom desenvolvimento. Na Computao, Babbage e Lady Lovelace elaboraram, entre outros, um programa para o clculo dos nmeros de Bernoulli54. 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, testa uma condio e escrever smbolos sobre uma fita, movendo para a direita ou esquerda uma cabea de leitura e gravao. Conforme Knuth38, 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- de Alonzo Church (que representa um 'approach' inteiramente diferente para o clculo) ". 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
56

1100 0000 0000 1101 Segundo Grace Murray Hopper8, como curiosidade, "a frase mais frequente que ns ouvamos era que a nica maneira de se programar em um computador era em octal"77. 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 comearam a surgir as chamadas linguagens de alto nvel. Claramente percebem-se duas principais tendncias nestes 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 estas duas tendncias se juntassem para formar uma sntese adequada.

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 predicado de Hilbert. Em uma monografia sobre o Plankalkl, em 1945, Zuse comeava dizendo: "A misso do Plancalculus fornecer um 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
57

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?"38. O diagrama de fluxos Em Princeton, do outro lado do Atlntico, Herman H. Goldstine e John von Neumann (figura) 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. Eles propuseram ento uma representao pictrica, atravs de caixas unidas por setas, que chamaram de fluxoogramas. Eles descreveram fluxogramas que continham uma caixa denominada "caixa de anotao (especificao)". Nesta caixa descreviam-se certos fatos sobre o resultado de uma computao (o efeito por ela provocado). O contedo desta 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 no poder de clculo - e no na expressividade das estruturas como Zuse - e foi largamente difundido entre as pessoas envolvidas com computadores na poca. "Este fato, acompanhado da excelente qualidade de apresentao e pelo pretgio 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 atribuio38. 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 ele analisou para converso de parte desses em cdigo de mquina. Com isso ele 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 compilador38.

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.
58

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, esboou uma 'linguagem intermediria' que seria o passo anterior de uma 'linguagem interna' do computador, e que tinha um alto nvel de abstrao14. 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'9 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.

Os primeiros 'compiladores'
Conforme Knuth e Trabb38, o termo compilador no era ainda utilizado nessa poca. Na verdade falavam 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 transcedentais. 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 M. V. Wilkes. Para isso foi inventada uma pseudo linguagem de mquina. Uma rotina interpretativa iria processar estas instrues, emulando um computador hipottico26 e 38. Este o sentido do termo 'compilador' at aqui usado e que ainda seguir mais abaixo. 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 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 isto fcil deve-se elaborar um cdigo compreensvel. Isto somente pode ser feito melhorando-se a notao da programao"38. John Backus77 discute esta 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 estes primeiros sistemas denominados genericamente de programao automtica (acima citado) 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 subsequentemente. 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.
59

Notas
1. Quer dizer, tinha o controle automtico das suas operaes. 2. Tornado operacional em 1944, decodificando mensagens para ajudar nos planos do desembarque do dia D, ainda nesse ano. 3. Esse projeto foi seriamente afetado quando eles deixaram a Universidade da Pensilvnia e foram fundar sua prpria empresa na Filadelfia. Aps uma srie de fuses esta companhia tornou-se a atual Unisys Corporation. 4. Eckert e Mauchly afirmaram que j tinham tido estas idias antes de von Neumann, e Konrad Zuze afirmou o mesmo. 5. Uma linguagem com somente tipos numricos e arrays deve resolver naturalmente problemas numricos. 6. 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 nas quais as operaes do programa iro executar, quais sero executadas primeiro e quando se encerraro. 7. 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 76. Exemplos tpicos de abstraes so as funes e procedimentos. 8. Nome importante no desenvolvimento histrico das linguagens de programao. Ela desenvolveu programas para o Mark I, o 1o computador digital automtico, 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. 9. Os termos interpretador e compilador na linguagem da computao tm um sentido tcnico especfico, que na poca citada ainda no correspondiam ao atual significado.

60

Você também pode gostar