unidade_4_-_prolog

10
LÓGICA PARA COMPUTAÇÃO LÓGICA PARA COMPUTAÇÃO UNIDADE 04 – FORMALIZAÇÃO DE PROGRAMAS E UNIDADE 04 – FORMALIZAÇÃO DE PROGRAMAS E SISTEMAS DE COMPUTAÇÃO SIMPLES SISTEMAS DE COMPUTAÇÃO SIMPLES Profa. Joyce Martins ([email protected]) Profa. Joyce Martins ([email protected])

description

Utilização da ferramenta estudada.

Transcript of unidade_4_-_prolog

Page 1: 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])

Page 2: unidade_4_-_prolog

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

Page 3: unidade_4_-_prolog

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

Page 4: unidade_4_-_prolog

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

Page 5: unidade_4_-_prolog

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

Page 6: unidade_4_-_prolog

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

Page 7: unidade_4_-_prolog

• 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)

Page 8: unidade_4_-_prolog

• 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)

Page 9: unidade_4_-_prolog

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

Page 10: unidade_4_-_prolog

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