Programação em Lógica
Por: Júlio César Oliveira • 13/9/2016 • Resenha • 2.495 Palavras (10 Páginas) • 266 Visualizações
Rio, 24/07/2012
Introdução à Programação em Lógica
Em termos de monoprocessamento, existem quatro principais paradigmas de programação, a saber:
- Programação imperativa: C, Pascal, Fortran, Basic, Cobol;
- Programação orientada a objetos: SmallTalk, C++, Java.
- Programação funcional: Lisp Haskell, Miranda.
- Programação em lógica: Prolog, Mercury, Icon, Oz;
As linguagens imperativas foram desenvolvidas para se adequarem à arquitetura tradicional dos computadores, sendo Fortran, a mais antiga linguagem ainda em uso (desde 1958).
Os programas imperativos seguem uma estrutura sequencial de processamento.
Ao utilizar uma linguagem imperativa, o programador precisa informar ao computador o modo exato de resolver algum problema, sendo responsável por controlar a memória, a entrada e a saída de informações.
Ele precisa decompor os problemas em uma lista de operações que serão executadas sequencialmente pelo processador até que haja uma instrução de parada, quando então os resultados do processamento são obtidos.
Esta dificuldade aumenta a medida que o tamanho do código cresce. Uma alternativa para tornar a interpretação dos programas mais compreensíveis surgiu com a criação das linguagens orientadas a objetos. Além desta virtude e de incorporar as melhores ideias do paradigma imperativo, as linguagens orientadas a objetos incorporam diversos outros conceitos importantes, tais como o encapsulamento e herança.
No entanto, o paradigma orientado a objetos não é adequados a todas as situações e ainda mantém a mesma visão de processamento do paradigma imperativa. As dificuldades encontradas com o paradigma imperativo fizeram com que outros modelos de programação também desenvolvidos, dentre eles a programação declarativa.
Inspirada na matemática, a programação declarativa procura desvincular da arquitetura do computador, sendo LISP a mais antiga linguagem ainda em uso (desde 1959). Os programas escritos em linguagens declarativas podem ser observados como descrições formais de problemas. Os principais modelos que compreendem a programação declarativa são programação funcional e a programação lógica.
Inspirado no cálculo, o paradigma funcional trata um programa como uma função matemática, em que os dados de entrada representam o seu domínio e os dados de saída a sua imagem. Os programas funcionais não fornecem ao processador qualquer instrução, mas sim um conjunto de funções e solicita que ele avalie alguma expressão.
O paradigma de programação em lógica é baseado, como o próprio nome sugere, na Lógica Matemática. A maioria das linguagens teve sua origem em inteligência artificial, elas utilizam a lógica para expressar conhecimento e suas inferências ao manipulá-lo.
Uma linguagem de programação em lógica trata seus programas como teoremas a serem provados. Os programas apresentam declarações verdadeiras (fatos, axiomas) e os relacionamentos entre elas. O mecanismo de inferência interno da linguagem realiza deduções a respeito de outras declarações (Objetivos) que se deseja descobrir se são verdadeiras. Os programas estabelecem uma relação entre os dados de entrada e os dados de saída.
Aula 2.
Rio, 31/07/2012
Continuação...
“Uma linguagem imperativa poderia ser utilizada para realizar inferências lógicas mas, por não ser adequada a este tipo de tarefa, o trabalho de programação seria muito maior. Haveria também grande dificuldade na correção de erros e na interpretação lógica. Além disso, o programa seria executado mais lentamente.”
PROLOG
A linguagem Prolog (Programming in Logic) surgiu no inicio dos anos 70, tornando-se a linguagem mais difundida e sendo bastante adequada ao processamento não-numérico.
Ao longo das décadas surgiram várias versões de Prolog. Cada linguagem possui suas formas de implementação, e suas particularidades.
O programa que será utilizado no laboratório será o “Strawberry Prolog”, devido ao seu pequeno tamanho e simplicidade de operação. A versão gratuita deste software somente permite a utilização dele como interpretador.
FATOS, REGRAS E METAS
Fatos, regras e metas constituem os três elementos básicos de um programa em Prolog e estão associados aos argumentos da lógica clássica. Fatos e regras constituem as premissas e as metas são as conclusões. “A execução de um programa objetiva mostrar que o argumento que ele representa é válido.”
A demonstração dessa validade é realizada pelo Prolog e não pelo programador. Este não se preocupa de que maneira a meta será alcançada.
FATOS
Um fato é a afirmação mais simples em Prolog. Ele apenas informa que existe uma relação entre objetos e que esta é sempre verdadeira. Por exemplo:
f1. período(programacãoemlógica,5,informática).
O fato descrito acima diz que a disciplina Programação em Lógica faz parte do 5º período do curso de informática. De outro modo dizemos que, a relação período associa os objetos programacãoemlógica, 5 e informática. Uma relação também é chamada de predicado. Um predicado pode ter tantos outros argumentos quanto forem necessários. Predicados de mesmo nome podem ter quantidades de argumentos diferentes.
Exemplo:
f1. período(programacãoemlógica,5,informática).
f2. período(laboratóriodeinformáticaI,1).
f3. período(10).
Os objetos quando são elementos constantes acima são chamados de átomos.
Aula 3
Rio, 07/08/2012
Continuação...
Predicados e átomos têm seus nomes começados por letra minúscula e os demais caracteres dos nomes podem ser alfanumérico, além de alguns caracteres especias.
Os átomos podem iniciar por letras maiúsculas e possuir espaços desde que estejam entre aspas.
Exemplo:
f1. período(“Programação em Lógica”, 5 informática).
f2. período(“Estrutura de Dados II”, 5 informática).
...