unidade_4_-_prolog
description
Transcript of unidade_4_-_prolog
LÓGICA PARA COMPUTAÇÃOLÓGICA PARA COMPUTAÇÃO
UNIDADE 04 – FORMALIZAÇÃO DE PROGRAMAS E UNIDADE 04 – FORMALIZAÇÃO DE PROGRAMAS E SISTEMAS DE COMPUTAÇÃO SIMPLESSISTEMAS DE COMPUTAÇÃO SIMPLES
Profa. Joyce Martins ([email protected])Profa. Joyce Martins ([email protected])
MOTIVAÇÃO:
O desenvolvimento de um programa torna-se mais fácil se a linguagem de programação em uso estiver próxima ao programa a ser resolvido. Isto é, se a linguagem incluir construções que refletem a terminologia e/ou os elementos usados na descrição do problema (PRICE; TOSCANI, 2000, p.1).
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
Quais os modelos computacionais ou paradigmas de programação existentes?
modelo imperativo: os programas consistem em sequências de comandos que devem ser executados para a obtenção de um resultado.
Linguagens orientadas a procedimentos: Pascal, C, entre outras.
Linguagens orientadas a objetos: Smalltalk, Java , entre outras.
modelo declarativo: os programas não possuem comandos, apenas "roteiros" que definem o que deve ser computado, de forma independente das manipulações que devem ser feitas para a obtenção dos resultados.
Linguagens funcionais: LISP (LISt Processing).
Linguagens de programação em lógica: PROLOG (PROgrammation en LOGique).
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
A solução de um problema em PROLOG é apresentada através de fórmulas da lógica de predicados.
Assim como na lógica de predicados, um programa PROLOG permite estabelecer relações entre objetos, sendo que a representação de determinado problema ou situação é feita através de um conjunto finito de sentenças lógicas denominadas cláusulas.
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
As cláusulas podem ser de dois tipos:•fatos: denotam algum conhecimento (informação ou verdade incondicional). Os fatos são expressos através de predicados com argumentos constantes tomados do conjunto universo.
EXEMPLO 1: homem(mário).
genitor(mário, josé).
•regras: expressam como novos fatos podem ser deduzidos, isto é, definem as condições que devem ser satisfeitas para que uma certa declaração seja considerada verdadeira. EXEMPLO 2:
pai(X,Y):- genitor(X,Y), homem(X).
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
Para traduzir fórmulas da lógica dos predicados para programas PROLOG, deve-se usar a seguinte notação:•símbolos para constantes: iniciam com letra minúscula, seguida por uma sequência qualquer de letras, dígitos ou _. Ou pode ser qualquer sequência de caracteres entre aspas duplas;
•símbolos para variáveis: iniciam com letra maiúscula ou _ , seguido por uma sequência qualquer de letras, dígitos ou _;
•símbolos para funções ou predicados: iniciam com letra minúscula, seguida por uma sequência qualquer de letras, dígitos ou _;
•todas as cláusulas terminam com ponto ( . );
•a linguagem é case sensitive;
homem(mário).genitor(mário, josé).
pai(X,Y):- genitor(X,Y), homem(X).
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
• conectivos:
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
a) ( ) - negação
lógica de predicados: (homem(samuel))
em PROLOG: not(homem(samuel))
b) () - conjunção
lógica de predicados: genitor(x,y) homem(x)
em PROLOG: genitor(X,Y), homem(X)
• conectivos:
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
c) () - disjunção
lógica de predicados: ((pai(y,x) (mae(y,x)) homem(x)) filho(x,y)
em PROLOG: filho(X,Y):- pai(Y,X), homem(X).filho(X,Y):- mae(Y,X), homem(X).
filho(X,Y):- (pai(Y,X);mae(Y,X)), homem(X).
d) () - implicação
lógica de predicados: (genitor(x,y) homem(x)) pai(x,y)
em PROLOG: pai(X,Y):- genitor(X,Y), homem(X)
A execução de um programa PROLOG consiste em responder a várias consultas.
Para tanto, o interpretador PROLOG aciona a máquina de inferência e aplica as regras de dedução para deduzir conclusões a partir dos fatos e das regras declarados. Tem-se que "o mecanismo de inferência age por trás do pano para construir uma sequência de demonstração" (GERSTING, 2001).
A resposta para uma consulta depende da pergunta feita e da base de fatos e regras. Pode ser: true (yes), false (no), um ou mais valores.
4. FORMALIZAÇÃO DE PROGRAMAS4. FORMALIZAÇÃO DE PROGRAMAS
1. BRATKO, I. Prolog programming for artificial intelligence. 2nd ed. Wokingham: Addison-Wesley, 1990.
2. CASANOVA, M. A.; GIORNO, F. A. C.; FURTADO, A. L. Programação em lógica e a linguagem PROLOG. São Paulo: E. Blucher, 1987.
3. GERSTING, J. L. Fundamentos matemáticos para a ciência da computação. 4.ed. Rio de Janeiro: LTC, 2001.
4. PRICE, A. M. A.; TOSCANI, S. S. Implementação de linguagens de programação: compiladores. Porto Alegre: Sagra Luzzatto, 2000.
5. STERLING, L.; SHAPIRO, E. The art of Prolog: advanced programming techniques. 2nd ed. Cambridge: MIT, 1994. p. 411-478.
6. WIELEMAKER, J. SWI Prolog. [S.l.], [2011]. Disponível em: <http://www.swi-prolog.org/>. Acesso em: 23 fev. 2013.
DOCUMENTOS CONSULTADOS / RECOMENDADOSDOCUMENTOS CONSULTADOS / RECOMENDADOS