Programação Básica - Introdução à lógica
- #Programação para Internet
Contextualização:
A definição exata de lógica para muitas pessoas não existe ou é motivo de controvérsia, já para outras, de forma simplista, basta que algo "faça sentido" para ter lógica e seja aceitável para a realidade cotidiana. Para a computação é interessante considerar que lógica é a ciência que avalia se uma expressão, esteja ela em linguagem natural (português) ou simbólica álgebra), é válida ou inválida, tendo o nosso referencial como base.
História:
Estima-se que o estudo da lógica, do raciocínio lógico, tenha iniciada na Grécia Antiga, com filósofos sofistas, homens que buscavam desenvolver técnicas de melhoramento da qualidade da argumentação em seus discursos. Entretanto a primeira contribuição mais significativa para o estudo da lógica como área de conhecimento foi dado por Aristóteles.
- Aristóteles foi um filósofo grego que escreveu sobre política, ética, física e diversos outros temas. Sua obra, que define toda a teoria da lógica clássica, manteve-se como a principal referência sobre esse assunto por quase dois mil anos.
A lógica desenvolvida no trabalho de Aristóteles é conhecida até hoje como lógica clássica ou aristotélica. Seu conteúdo descreve uma metodologia de análise da argumentação que visa diferenciar as sentenças verdadeiras das falsas.
Exemplos de lógica aristotélica:
1° Todo mamífero é um animal vertebrado.
2° Uma girafa é um mamífero.
3° Uma girafa é um animal vertebrado.
1° Se não está chovendo, podemos ir à praia.
2° Não está chovendo.
3° Então podemos ir à praia.
- A base da consistência argumentativa da lógica aristotélica está nas palavras de sentido de universalidade (como "todo") e em sentenças que identificam elemento com precisão são a base dessa lógica.
- Porém a lógica aristotélica mostra vulnerabilidades em suas argumentações ao se inserir nas sentenças palavras de sentido vago, como: alguns, qualquer, quase, etc., a metodologia de Aristóteles perde capacidade de validação e veracidade.
Exemplo de vulnerabilidade:
1° Alguns estudantes têm desempenho ruim em matemática.
2° Pedro é um estudante.
3° Pedro tem desempenho ruim em matemática.
- Baseado apenas no fato de que alguns estudantes apresentem desempenho ruim em matemática e sabendo que Pedro é um estudante, não é possível inferir com a certeza que Pedro terá um desempenho ruim nessa matéria.
- Diante dessas lacunas, no início do século XVII, estudiosos como René Descartes e Gottfried Leibniz contribuíram no avanço do estudo da lógica com a formalização e o rigor matemático, através da argumentação representada em símbolos. Leibniz inicialmente reduz e deduz que a argumentação poderia ser combinada em elementos. Depois o matemático Gottcob Frege publica um trabalho que revolucionaria o estudo da lógica: a lógica de predicativos.
Lógica de predicativos:
A lógica de predicativos potencializa a lógica aristotélica, ampliando sua capacidade que já havia sido potencializada pela simbolização matemática de Leibniz. A lógica de predicativos adiciona quantitativos, dentre eles o universal (∀) e o existencial (∃). Com o uso desses operadores foi possível elaborar expressões complexas de maneira formal e consistente. O quantitativo universal é traduzido como "para todo" e o quantificador existencial como "existe um".
Exemplo: Ao considerar n e m são números naturais e sabendo que o conjunto dos naturais é infinito, infere-se: "Para "todo" número natural n, "existe" um número m, tal que m é maior que n.
O método de associar um grupo de objetos ou situações de uma argumentação ao conceito matemático de conjuntos ( ∀ e ∃) é uma das bases da lógica moderna. Por quê a linguagem natural é substituída por notações simbólicas que tornam as expressões menores e mais fáceis de manipular.
A lógica na computação:
Os avanços no estudo da lógica moderna, permitiram avanços significativos nas expressões lógicas, transformando sentenças em pedaços menores e simples, através do uso de predicativos. Isso foi imprescindível para o desenvolvimento da área da computação.
Como computadores têm por características serem orientados por instruções simples e concisas para executá-las em ações corretamente, é possível enxergar o desenvolvimento da lógica na computação. Nas linguagens humanas existe muita ambiguidade e palavras com diferentes significados, como manga que pode se referi a uma fruta ou parte de uma camisa, já o desenvolvimento da lógica de símbolos simplificou e resumiu orientações complexas para o computador, o que fomentou a base das linguagens de programação para computadores.
Usamos as linguagens formais para construir as linguagens de programação. Através de uma linguagem de programação, somos capazes de informar ao computador o que ele deve fazer, sem ambiguidade. Afinal, ele não tem um cérebro humano que o ajude a distinguir entre manga fruta e manga parte da camisa.
As linguagens de programação surgiram da mudança no processo de construção dos computadores. No começo do século XX, o matemático John Von Neumann propôs que, ao invés do computador ter suas funcionalidades programadas a nível de hardware, eles deveriam executar um pequeno conjunto de funções básicas. A partir daí, seria possível definir comportamentos mais complexos através de um conjunto de instruções mutáveis e armazenáveis: os programas.
Com o nascimento da ideia de programas de computação e a consolidação da lógica moderna com sua formalidade simplificada e não dúbia foram de suma importância no avanço da computação na área de validação semântica, inteligência artificial e em segurança da informação.
Abstração:
Na computação, utilizamos a abstração não só como ferramenta para criar representações de objetivos, mas também para simplificar problemas que desejamos resolver com ajuda do computador. Dessa forma conseguimos fazer o computador resolver problemas complexos através de pequenas tarefas, precisamos quebrar os problemas em partes menores, usando o conceito de abstração.
- Criar uma abstração consiste em descrever um objeto ou uma situação com as informações relevantes para o seu objetivo. Se queremos resolver um problema, devemos identificar quais informações e ações são necessárias para resolvê-lo. Se queremos apenas representar um objeto, devemos reunir as características desse objeto que são importantes para identifica-lo.
- Na computação a descrição de problemas de forma abstrata é fundamental para tornar o computador capaz de resolver problemas proposto a ele.
Sistemas binário:
O sistema binário possui apenas 2 símbolos para representar todos os números. No computador são usados os números zero (0) e um (1). Tudo que o computador consegue lidar consiste na manipulação desses dois números, isso vai desde jogos de vídeo game à simples textos, tudo é está sendo manipulado e representado como zero e um no computador.
Resumo final:
Entender as diversas etapas do desenvolvimento da lógica, sua história e os personagens que contribuíram com ela é sempre importante para profissionais de tecnologia serem mais completos em suas respectivas áreas, porque compreender de onde vem e como é o funcionamento interno do computador auxilia no desenvolvimento de aplicações cada vez mais complexas e eficientes.
Abraço e bons estudos a todos!!!