Como Aristóteles criou o computador

1920

Os filósofos influenciados por ele definiram o estágio para a revolução tecnológica que remodelou o mundo. 

A história do computador é frequentemente contada como a história dos objetos, desde o ábaco à máquina de Babbage até as máquinas quebradoras de códigos da Segunda Guerra Mundial. Na verdade, é melhor compreender a história das ideias, principalmente ideias que emergiram da lógica matemática, uma disciplina obscura e cultual que primeiro se desenvolveu no século dezenove. A lógica matemática foi pioneira pelos filósofos-matemáticos, mais notavelmente George Boole e Gottlob Frege, que se inspiraram em no sonho de Leibniz de uma “linguagem conceitual” universal, e o antigo sistema lógico de Aristóteles.

A lógica matemática foi inicialmente considerada um assunto irremediavelmente abstrato sem aplicações concebíveis. Como um cientista da computação comentou: “Se, em 1901, um talentoso e simpático estranho fosse chamado a pesquisar as ciências e nomeasse o ramo que seria o menos frutífero para o século seguinte, sua escolha poderia muito bem ser estabelecida na lógica matemática.” E ainda, isto teria provido a fundação para um campo que teria mais impacto no mundo moderno que qualquer outro.

A evolução da ciência da computação da lógica matemática culminou nos anos 1930, com dois artigos de referência: “Uma análise simbólica da troca e retransmissão de circuitos [A Symbolic Analysis of Switching and Relay Circuits]” de Claude Shannon, e “Sobre números computáveis, com uma aplicação ao problema de Entscheidungs [On Computable Numbers, With an Application to the Entscheidungs problem]” de Alan Turing. Na história da ciência da computação, Shannon e Turing são figuras imponentes, mas a importância dos filósofos e lógicos que os precederam é frequentemente omitida.

Uma história conhecida da ciência da computação descreve o artigo de Shannon como “possivelmente o mais importante, e também a mais notável tese de um mestre do século”. Shannon o escreveu como um estudante de engenharia elétrica no MIT. Seu orientador, Vannevar Bush, construiu um protótipo de computador conhecido como o Analisador Diferencial que podia rapidamente calcular equações diferenciais. O dispositivo era em sua maior parte mecânico, com subsistemas controlados por transmissores elétricos, que foram organizados em um modo ad hoc como ainda não havia sido uma teoria sistemática de design de circuito subjacente. A tese de Shannon surgiu quando Bush recomendou que ele tentasse descobrir tal teoria.

 A matemática pode ser definida como o tópico no qual nós nunca sabemos do que estamos falando.” 

O artigo de Shannon de várias formas de um típico artigo de engenharia elétrica, preencheu equações e diagramas de circuitos elétricos. O que é incomum é que a referência primária foi um trabalho de noventa anos do filósofo matemático George Boole, As Leis do Pensamento [The Laws of Thought].

Hoje, o nome de Boole é bem conhecido aos cientistas da computação (muitas linguagens de programação tem um tipo de dado básico chamado Booleano), mas em 1938 ele era raramente lido fora dos departamentos de filosofia. O próprio Shannon encontrou o trabalho de Boole em uma aula de graduação em filosofia. “Apenas aconteceu de que ninguém era familiar com ambas as áreas ao mesmo tempo”, ele comentou mais tarde.

Boole é muitas vezes descrito como um matemático, mas ele viu a si mesmo como um filósofo, seguindo os passos de Aristóteles. As Leis do Pensamento começa com uma descrição de suas metas, investigar as leis fundamentais da operação da mente humana:

O plano do seguinte tratado é investigar as leis fundamentais daquelas operações da mente pela qual o raciocínio é realizado; para dar expressão a elas na linguagem simbólica do Cálculo, e sobre este fundamento para estabelecer a ciência da Lógica … e, finalmente, coletar … algumas prováveis intimações relativas a natureza e constituição da mente humana.

Ele então pagou tributo a Aristóteles, o inventor da lógica, e a influência primária do seu próprio trabalho:

Nesta antiga e escolástica forma, de fato, o sujeito da Lógica se encontra quase que exclusivamente associado ao grande nome de Aristóteles. Como foi apresentado à antiga Grécia na parte técnica, parte metafísica disquisições do Organon, tais, com apenas uma mudança essencial, isto continuou até os dias atuais.

Tentar improvisar no trabalho lógico de Aristóteles foi um movimento intelectual ousado. A lógica de Aristóteles, apresentada na sexta parte do livro Organon, ocupou um lugar central no cânon erudito por mais de dois mil anos. Foi amplamente acreditado que Aristóteles tenha escrito quase tudo o que havia para se dizer sobre este tópico. O grande filósofo Immanuel Kant comentou que, desde Aristóteles, a lógica tem sido “incapaz de dar um único passo para frente, e, portanto, parece ao que tudo indica estar finalizada e completa”.

A observação central de Aristóteles foi de que os argumentos, sejam válidos ou não, eram baseados em sua estrutura lógica, independem das palavras não lógicas envolvidas. O mais famoso esquema de argumentos que ele discutiu é conhecido como o silogismo:

  • Todos os homens são mortais.
  • Sócrates é um homem.
  • Logo, Sócrates é mortal.

Você pode substituir “Sócrates” com qualquer outro objeto, e “mortal” com qualquer outro predicado e o argumento permanece válido. A validade do argumento é determinada unicamente pela estrutura lógica. As palavras lógicas – “todo”, “é”, “são” e “logo” – estão fazendo todo o trabalho.

Aristóteles também definiu um conjunto de axiomas básicos dos quais ele derivou o resto do seu sistema lógico:

  • Um objeto é o que é (Lei da Identidade)
  • Nenhuma afirmação pode ser tanto verdadeira como falsa (Lei da Não-contradição)
  • Toda afirmação é ou verdadeira ou falsa (Lei do Terceiro Excluído)

Esses axiomas não foram feitos para descrever como as pessoas pensam de fato (este seria o reino da psicologia), mas como uma pessoa, idealizada, perfeitamente racional deveria pensar.

O método axiomático de Aristóteles influenciou um livro ainda mais famoso, Os Elementos de Euclides, que é estimado como o segundo único livro comparado à Bíblia em número de edições impressas.

2c8ad9d68

Um fragmento de Os Elementos (Fonte: Wikipédia)

Embora ostensivamente sobre geometria, Os Elementos se tornou um livro-texto padrão para o ensino do raciocínio rigoroso. (Abraham Lincoln uma vez disse que ele aprendeu a argumentação jurídica sólida ao estudar Euclides.) No sistema de Euclides, as ideias geométricas foram representadas como diagramas espaciais. A geometria continuou a ser praticada desta forma até René Descartes, em 1630, mostrar que a geometria poderia ao invés disso ser representada em fórmulas. Seu Discurso do Método foi o primeiro texto matemático no Ocidente a popularizar o que é agora a noção algébrica padrão – x, y, z para variáveis, a, b, c para quantidades, e assim por diante.

A álgebra de Descartes permitiu aos matemáticos se moverem além de intuições espaciais para manipular símbolos usando regras formais precisamente definidas. Isto mudou o modo dominante da matemática, dos diagramas a fórmulas, levando a, entre outras coisas, o desenvolvimento do cálculo, inventado rudemente trinta anos depois de Descartes por, independentemente, Isaac Newton e Gottfried Leibniz.

A meta de Boole foi fazer da lógica Aristotélica o que Descartes fez para a geométrica euclidiana: libertando-a dos limites da intuição humana dando a ela uma precisa notação algébrica. Para dar um exemplo, quando Aristóteles escreveu: Todos os homens são mortais. Boole substituiu as palavras “homens” e “mortais” por variáveis, e as palavras lógicas “todos” e “são” por operadores aritméticos: x = x * y, que poderia ser interpretado como “Tudo no conjunto x também está no conjunto y”.

As Leis do Pensamento criou um novo campo erudito – a lógica matemática – que nos anos seguintes se tornou uma das áreas de pesquisa mais ativas para os matemáticos e filósofos. Bertrand Russel chamou As Leis do Pensamento de “o trabalho no qual a matemática pura foi descoberta”.

O insight de Shannon foi de que o sistema de Boole poderia ser mapeado diretamente em circuitos elétricos. Ao mesmo tempo, circuitos elétricos não possuem uma teoria sistemática governando os seus esquemas. Shannon compreendeu que a teoria correta seria “exatamente análoga ao cálculo de proposições usadas no estudo simbólico da lógica”.

Ele mostrou a correspondência entre circuitos elétricos e as operações booleanas em um gráfico simples:

                99df968e4            

O mapeamento de Shannon de circuitos elétricos da lógica simbólica (Fonte: University of Virginia)

Esta correspondência permitiu aos cientistas da computação importar décadas de trabalho em lógica e matemática de Boole e lógicos subsequentes. Na segunda parte do seu artigo, Shannon mostrou como a lógica booleana poderia ser utilizada para criar um circuito adicionando dois dígitos binários.

Amarrando esses circuitos adicionados, operações aritméticas arbitrariamente complexas poderiam ser construídas. Esses circuitos poderiam se tornar as unidades básicas do que são agora conhecidas como unidades lógicas e aritméticas, um componente chave nos computadores modernos.

2b88e5a1a

Circuito adicionado de Shannon (University of Virginia)

Outra forma de caracterizar a conquista de Shannon é de que ele foi o primeiro a realizar a distinção entre as camadas lógica e física dos computadores. (Esta distinção se tornou tão fundamental à ciência da computação que pode parecer surpreendente aos leitores modernos o quão perspicaz isto foi na época – um lembrete do adágio de que “a filosofia de um século é o senso comum do seguinte”)

Desde o artigo de Shannon, uma vasta quantidade de progressos foi realizada nas camadas físicas dos computadores, incluindo a invenção do transistor em 1947 por William Shockley e seus colegas na Bell Labs. Os transistores são versões dramaticamente melhoradas dos transmissores elétricos de Shannon – o melhor caminho conhecido para codificar fisicamente operações booleanas. Ao longo dos próximos setenta anos, a indústria do semicondutor acumulou mais e mais transistores em espaços menores. Um iPhone de 2016 tem por volta de 3.3 bilhões de transistores, cada um é um “interruptor de relé” como os desenhados nos diagramas de Shannon.

Enquanto Shannon mostrou como mapear a lógica no mundo físico, Turing mostrou como projetar computadores na linguagem do mundo matemático. Quando Turing escreveu o seu artigo, em 1936, ele estava tentando resolver “o problema da decisão”, primeiramente identificado pelo matemático David Hilbert, que se perguntou se haveria um algoritmo que poderia determinar se uma afirmação matemática arbitrária é verdadeira ou falsa. Em contraste ao artigo de Shannon, o artigo de Turing é altamente técnico. Sua primeiramente significância histórica se encontra não na resposta ao problema da decisão, mas no modelo para o projeto do computador que ele proveu ao longo do caminho.

Turing estava trabalhando em um alongamento tradicional que remete a Gottfried Leibniz, o gigante filosófico que desenvolveu o cálculo independentemente de Newton. Entre as muitas contribuições de Leibniz ao pensamento moderno, uma das mais intrigantes foi a ideia de uma nova linguagem chamada de “a característica universal” que, ele imaginou que poderia representar todo conhecimento matemático e científico possível. Inspirado em parte pelo filósofo religioso do século treze Ramon Llull, Leibniz postulou que a linguagem poderia ser ideográfica como os hieróglifos egípcios, exceto caracteres seriam correspondentes aos conceitos “atômicos” da matemática e da ciência.

Ele argumentou que esta linguagem poderia dar à humanidade um “instrumento” que poderia melhorar a razão humana “a uma extensão muito maior do que instrumentos ópticos” como o microscópio e o telescópio.

Ele também imaginou uma máquina que poderia processar a linguagem, que ele chamou de raciocinador de cálculos.

Se surgissem controvérsias, não haveria mais necessidade de disputa entre dois filósofos mais que entre dois contadores. Para isto seria suficiente tomar suas canetas em suas mãos, e dizer um ao outro: Calculemus – Vamos calcular.

Leibniz não teve a oportunidade de desenvolver sua linguagem universal ou a máquina correspondente (embora ele tenha inventado uma máquina de calcular simples, o calculador de passos – a calculadora de Leibniz). A primeira tentativa credível a realizar o sonho de Leibniz veio em 1879, quando o filósofo alemão Gottlob Frege publicou seu tratado de lógica Begriffsschrift – traduzido grosseiramente como Ideografia. Inspirado pela tentativa de Boole de melhorar a lógica aristotélica, Frege desenvolveu um sistema lógico muito mais avançado. A lógica ensinada em filosofia e as classes da ciência da computação de hoje – primeira-ordem ou lógica predicativa – é apenas uma pequena modificação do sistema de Frege.

Frege é geralmente considerado um dos filósofos mais importantes do século dezenove. Entre outras coisas, a ele é creditada o que foi notado pelo filósofo Richard Rorty chamou de “virada linguística” em filosofia. Assim como a filosofia do Renascimento foi obsecada com a questão do conhecimento, a filosofia depois de Frege se tornou obsecada com as questões da linguagem. Seus discípulos incluem dois dos mais importantes filósofos do século vinte – Bertrand Russel e Ludwig Wittgenstein.

A maior inovação da lógica de Frege é de que ela é representada muito mais acuradamente do que a estrutura lógica da linguagem comum. Entre outras coisas, Frege foi o primeiro a usar quantificadores (“para todo”, “existe”) e a separar objetos de predicados. Ele também foi o primeiro a desenvolver o que hoje são conceitos fundamentais em ciência da computação como funções recursivas e variáveis com escopo e amarração.

A linguagem formal de Frege – o que ele chamava de seus “conceito-roteiro” – é feita de símbolos sem significado que são manipulados por regras bem definidas. À linguagem é dado significado apenas por interpretação, o que é especificado separadamente (esta distinção irá mais tarde ser chamada de sintaxe versus semântica). Isto tornou a lógica no que os eminentes cientistas da computação Allan Newell e Herbert Simon chamaram de “jogo dos símbolos”, “jogado com símbolos sem significado de acordo com certas regras puramente sintáticas”.

Todo significado tem de ser purgado. Tem-se um sistema mecânico sobre o qual várias coisas podem ser provadas. Assim o progresso foi primeiramente feito por abandonar tudo o que parecia relevante ao significado e símbolos humanos.

Como Bertrand Russel famosamente gracejou: “A matemática pode ser definida como o sujeito no qual nós nunca sabemos do que estamos falando, nem se o que nós estamos falando é verdadeiro”.

Uma consequência inesperada do trabalho de Frege foi a descoberta da fraqueza nos fundamentos da matemática. Por exemplo, Os Elementos de Euclides – considerados o padrão dourado do rigor lógico por milhares de anos – acabou por se aprensentar cheio de erros lógicos. Porque Euclides usou palavras comuns como “linha” e “ponto”, ele – e séculos de leitores – se enganaram ao fazer suposições sobre sentenças que continham essas palavras. Para dar um exemplo relativamente simples, em uso ordinário, a palavra “linha” implica que se for apresentado a você três pontos em uma linha, um ponto deve estar entre esses outros dois. Mas quando você define “linha” usando a lógica formal, acontece de que a “intermediação” também precisa ser definida – algo no que Euclides se descuidou. A lógica formal cria lacunas com estas fáceis de detectar.

Esta compreensão criou uma crise nos fundamentos da matemática. Se Os Elementos – a bíblia da matemática – continha erros lógicos, que outras áreas da matemática não teriam? E quanto as ciências como a física que foi construída em cima da matemática?

As boas notícias são que os mesmos métodos lógicos usados para descobrir esses erros também poderiam ser usados para corrigi-los. Os matemáticos começaram a reconstruir as fundações da matemática de baixo para cima. Em 1889, Giuseppe Peano desenvolveu axiomas para a aritmética, e em 1899, David Hilbert fez o mesmo pela geometria. Hilbert também esboçou um programa para formalizar o restante da matemática, com requerimentos específicos que qualquer tipo de tentativa deveria ser satisfatória, incluindo:

  • Integridade: Deve haver uma prova de que todas as verdadeiras afirmações matemáticas podem ser comprovadas no sistema formal.
  • Decidibilidade: Deve haver um algoritmo para decidir a validade ou falsidade de qualquer afirmação. (Este é o “problema de Entscheidungs” ou “o problema da decisão” referenciado ao artigo de Turing.)

Reconstruir a matemática de uma forma que satisfaça esses requerimentos ficou conhecido como o programa de Hilbert. Através dos anos 1930, este foi o foco de um grupo central de lógicos incluindo Hilbert, Russel, Kurd Godel, John Von Neumann, Alonzo Church e, é claro, Alan Turing.

 Na ciência, a novidade emerge apenas com a dificuldade”

O programa de Hilbert prosseguiu em pelo menos duas frentes. Na primeira, os lógicos criaram sistemas lógicos que tentaram provar os requerimentos de Hilbert, fossem eles satisfatórios ou não.

Na segunda frente, os matemáticos usaram conceitos lógicos para reconstruir a matemática clássica. Por exemplo, o sistema de Peano para a aritmética começou com uma função simples chamada de função sucessora que aumentava qualquer número em um. Ele usou a função sucessora para definir recursivamente a adição, usou a adição para definir recursivamente a multiplicação, e assim por diante, até todas as operações da teoria dos números estar definida. Ele então usou essas definições, juntamente com a lógica formal, para provar teoremas sobre a aritmética.

O historiador Thomas Kuhn uma vez observou que “na ciência, a novidade emerge apenas com a dificuldade”. A lógica na época do programa de Hilbert foi um processo tumultuoso de criação e destruição. Um lógico iria construir um sistema elaborado e outro iria desmantela-lo.

A ferramenta favorita de destruição foi a construção das afirmações auto referenciais e paradoxais que mostraram as formas dos axiomas dos quais eles foram derivados para ser inconsistentes. Uma forma simples deste “paradoxo mentiroso” é a sentença:

 Esta sentença é falsa.

Se isto é verdadeiro então isto é falso, e se isto é falso então isto é verdadeiro, levando a um laço sem fim de autocontradição.

Russel fez o primeiro uso notável do paradoxo mentiroso na lógica matemática. Ele mostrou que o sistema de Frege permitia definições auto contraditórias para ser derivada:

Deixemos R ser o conjunto de todos os conjuntos que não são membros de si mesmos. Se R não é um membro de si mesmo, então sua definição dita que ele deve contar a si mesmo, e se ele conta a si mesmo, então ele contradiz a sua própria definição como o conjunto de todos os conjuntos que não são membros deles mesmos

Isto ficou conhecido como o Paradoxo de Russel e foi visto como uma falha séria na conquista de Frege. (O próprio Frege estava chocado pela descoberta. Ele respondeu a Russel: “A sua descoberta da contradição me causou uma grande surpresa e, eu quase diria, consternação, desde que isto abalou a base na qual eu pretendia construir a minha aritmética.”)

Russel e seu colega Alfred North Whitehead desenvolveram a mais ambiciosa tentativa de completar o programa de Hilbert com o Principia Mathematica, publicado em três volumes entre 1910 e 1913. O método do Principia era tão detalhado que levava mais de trezentas páginas para obter a prova de que 1 + 1 = 2.

Russel e Whitehead tentaram resolver o paradoxo de Frege introduzindo o que eles chamaram de teoria dos tipos. A ideia era particionar linguagens formais em múltiplos níveis ou tipos. Cada nível fazer referência aos níveis abaixo, mas não a si mesmos ou os níveis superiores. Isto resolveu os paradoxos auto referenciais, em efeito, banindo a auto referência. (Esta solução não foi popular entre os lógicos, mas isto influenciou a ciência da computação – muitas das linguagens de computador modernas possuem características inspiradas pela teoria dos tipos.)

Os paradoxos auto referenciais finalmente mostraram que o programa de Hilbert nunca poderia ser bem sucedido. O primeiro golpe veio em 1931, quando Godel publicou seu agora famoso teorema de incompletude, que provou que qualquer sistema lógico consistente poderoso o suficiente para abarcar a aritmética precisava também conter afirmações que fossem verdadeiras, mas não possam ser provadas verdadeiras. (O teorema de incompletude de Godel é um dos poucos resultados lógicos que tem sido amplamente popularizados, graças a livros como Godel, Escher, Bach e A nova mente do imperador.)

O golpe final veio quanto Turing e Alonzo Church independentemente provaram que nenhum algoritmo poderia existir que determinasse se uma afirmação matemática arbitrária era verdadeira ou falsa. (Church fez isso inventando um sistema inteiramente diferente chamado cálculo lambda, que poderia mais tarde inpirar linguagens de computador como a Lisp.) A resposta ao problema de decisão foi negativa.

A chave do insight de Turing veio na primeira seção do seu famoso artigo de 1936, “Sobre números computáveis, com uma aplicação ao problema de Entscheidungs”. Para formular rigorosamente o problema da decisão (“o problema de Entscheidungs”), Turing primeiro criou um modelo matemático do que seria um computador (hoje, máquinas que se encaixam neste modelo são conhecidas como “máquinas de Turing universais”). Como o lógico Martin Davis a descreveu:

Turing sabia que um algoritmo é tipicamente especificado por uma lista de regras que uma pessoa pode seguir em uma maneira precisa mecânica, como uma receita em um livro de receitas. Ele foi capaz de mostrar que tal pessoa poderia ser limitada a algumas poucas e extremamente simples ações básicas sem alterar o resultado final da computação.

Então, provando que nenhuma execução de máquina, mas apenas essas ações básicas poderiam determinar ou não se uma dada conclusão proposta segue de dadas premissas usando as regras de Frege, ele era capaz de concluir que nenhum algoritmo para o problema de Entscheidungs exisitia.

Como um subproduto, ele encontrou um modelo matemático de uma máquina computacional universal. 

Em seguida, Turing mostrou como um programa poderia ser armazenado dentro de um computador ao lado dos dados sobre os quais ele opera. No vocabulário de hoje, nós diríamos que ele inventou a arquitetura do “programa armazenado” que se destaca em muitos dos computadores modernos:

Antes de Turing, a suposição geral era de que lidar com tais máquinas em três categorias – máquina, programa, e dados – eram entidades inteiramente separadas. A máquina era um objeto físico; hoje nós o chamaríamos de hardware. O programa era o plano para fazer a computação, talvez cartões incorporados e perfurados ou conexões de cabos em um quadro de ligações. Finalmente, os dados eram a entrada numérica. A máquina universal de Turing mostrou que a distinção dessas três categorias era uma ilusão. 

Esta foi a primeira demonstração rigorosa de que qualquer lógica de computação que pudesse ser codificada em hardware, poderia também ser codificada em software. A arquitetura que Turing descreveu foi mais tarde apelidada de “Arquitetura de Von Neumann” – mas historiadores modernos geralmente concordam que ela veio de Turing, como, aparentemente, fez o próprio Von Neumann.

Embora, no nível técnico, o programa de Hilbert fosse um fracasso, os esforços ao longo do caminho demonstraram que grandes trechos da matemática poderiam ser construídos da lógica. E depois dos insights de Shannon e Turing – mostrando as conexões entre eletrônica, lógica e computação – eram agora possíveis de exportar esta nova maquinaria conceitual sobre o projeto do computador.

Durante a Segunda Guerra Mundial, este trabalho teórico foi colocado em prática, quando os laboratórios do governo recrutaram um número de lógicos de elite. Von Neumann ingressou no projeto da bomba atômica em Los Alamos, onde ele trabalhou em um projeto de computador para auxiliar pesquisas em física. Em 1945, ele escreveu a especificação do EDVAC – o primeiro programa armazenado, baseado em lógica de computador – que é geralmente considerado o guia fonte definitivo para o projeto do computador moderno.

Turing ingressou em uma unidade secreta na Bletchley Park, a noroeste de Londres, onde ele ajudou projetando computadores que eram instrumentais na decodificação dos códigos alemães. Sua maior e duradoura contribuição ao projeto prático de computadores foi a sua especificação do MCA, ou Mecanismo de Computação Automática.

Como o primeiro dos computadores a ser baseado na lógica booleana e nas arquiteturas de programas armazenados, o MCA e o EDVAC eram similaes de várias maneiras. Mas eles também tinham diferenças interessantes, algumas das quais prenunciaram debates modernos e projetos de computadores. Os projetos favoritos de Von Neumann eram similares aos modernos processadores CISC (“complexos”), transformando ricas funcionalidades em hardware. O projeto de Turing era mais como processadores RISC (“reduzido”) modernos, minimizando a complexidade do hardware e passando mais trabalho ao software.

Von Neumann pensou que o programa de computador seria um trabalho entediante e clerical. Turing, em contraste, disse que a programação de computador “deveria ser muito fascinante. Não necessariamente há um perigo real de isto se tornar um fardo, pois quaisquer processos que sejam muito mecânicos podem ser voltados para a própria máquina”.

Desde 1940, a programação de computares se tornou significativamente mais sofisticada. Uma coisa que não mudou é a de que ela ainda primeiramente consiste de programadores especificando regras para os computadores seguirem. Em termos filosóficos, nós poderíamos dizer que a programação de computadores tem seguido a tradição da lógica dedutiva, o ramo da lógica discutida acima, que lida com a manipulação dos símbolos de acordo com regras formais.

Na década passada algo do tipo, a programação começou a mudar com a grande popularidade do aprendizado de máquina, que envolve criar estruturas para as máquinas aprenderem via inferência estática. Isto trouxe a programação para mais perto de outro ramo da lógica, a lógica indutiva, que lida com a inferência de regras de exemplos específicos.

As técnicas de aprendizado de máquina mais promissoras de hoje são as redes neurais, que foram primeiramente inventadas nos anos 1940 por Warren Mculloch e Walter Pitts, cuja ideia era desenvolver um cálculo para neurônios que pudessem, como a lógica booleana, ser usados para construir circuitos de computadores. As redes neurais permanecem esotéricas até décadas depois, quando elas foram combinadas com técnicas estatísticas, que as permitiram melhorar a medida que eram alimentadas com mais dados. Recentemente, com os computadores se tornando crescentemente adeptos a lidar com grandes conjuntos de dados, essas técnicas produziram notáveis resultados. A programação no futuro irá provavelmente significar a exposição de redes neurais ao mundo e deixá-las aprender.

Este seria um segundo ato apropriado para a história dos computadores. A lógica começou como um meio de entender as leis do pensamento. Ela então ajudou a criar máquinas que poderiam raciocinar de acordo com as regras da lógica dedutiva. Hoje, as lógicas dedutiva e indutiva estão sendo combinadas para criar máquinas que tanto raciocinem como aprendam. O que começou, nas palavras de Boole, com uma investigação “a respeito da natureza e constituição da mente humana”, pode resultar na criação de novas mentes – mentes artificiais – que podem algum dia se igualar ou mesmo exceder as nossas próprias.

Tradução livre de: Luiz Carlos dos Santos Junior

Autor: Chris Dixon

Fonte: https://www.theatlantic.com/technology/archive/2017/03/aristotle-computer/518697/

Você também pode querer clicar em...