segunda-feira, 8 de agosto de 2016

Lista de Aplicações da Lógica na Computação


Às vezes os alunos que fazem a disciplina Lógica para Computação se perguntam "Por que estudar Lógica?". Uma possível resposta está aqui.

Também é importante destacar as inúmeras aplicações da Lógica na Computação. Algumas aplicações são bem importantes, outras menos. Uma lista incompleta vai abaixo.
  • SAT Solvers (ver também [1]) e SMT Solvers (ver também [2])
  • Especificação e Verificação Formal de Software (ver [3], p.10, e [4])
  • Prova Automatizada ou Semi-Automatizada de Teoremas, Raciocínio Automatizado
  • Representação de Conhecimento (Inteligência Artificial)
  • Ontologias, Web Semântica e Lógicas de Descrição
  • Lógica de Circuitos Eletrônicos (Lógica Booleana)
  • Paradigma Lógico de Programação (Prolog)
  • Bancos de Dados Dedutivos

Uma destas aplicações é tão importante que existem até competições para os melhores provadores baseados em SAT (SAT Solvers).

SAT Competition 2016


Raciocínio Automatizado

Leonardo de Moura

Algumas grandes empresas como Amazon, Meta e Microsoft empregam pesquisadores em raciocínio automatizado. Um deles é o brasileiro Leonardo de Moura (também conhecido como Leo de Moura). A Amazon Science tem uma área de pesquisa Automated Reasoning.

Eu entrevistei Leo em meu podcast:




Linguagens de Programação

Toda linguagem de programação possui o tipo de dados booleano com dois valores: verdadeiro e falso.

Em Elixir, os nomes são true e false. Os conectivos são and, or e not. Você pode também usar &&, || e ! para trabalhar com valores truthy e falsy. Veja abaixo:



A linguagem C também trabalha com valores truthy e falsy. Por exemplo:

Fonte: http://mtm.ufsc.br/~azeredo/cursoC/aulas/c410.html

                int num;
                if (num!=0) ....
                if (num==0) ....
equivalem a

                int num;
                if (num) ....
                if (!num) ....


2 comentários: