A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Lógica: PROLOG Leandro Aguiar Daidy Márcio Melo.

Apresentações semelhantes


Apresentação em tema: "Programação Lógica: PROLOG Leandro Aguiar Daidy Márcio Melo."— Transcrição da apresentação:

1 Programação Lógica: PROLOG Leandro Aguiar Daidy Márcio Melo

2 Sumário Programação Lógica Programação Lógica –Aplicações –PROLOG Conclusão Conclusão

3 Programação Lógica A programação em lógica se desenvolveu no início dos anos 70 a partir de alguns trabalhos sobre prova de teoremas; A programação em lógica se desenvolveu no início dos anos 70 a partir de alguns trabalhos sobre prova de teoremas; Desde então ela tem demonstrado ser um formalismo simples, mas muito poderoso, que é bastante adequado tanto para a representação do conhecimento quanto como ferramenta de programação; Desde então ela tem demonstrado ser um formalismo simples, mas muito poderoso, que é bastante adequado tanto para a representação do conhecimento quanto como ferramenta de programação; Primeira linguagem de programação que seguiu o novo paradigma associado à programação em lógica: PROLOG; Primeira linguagem de programação que seguiu o novo paradigma associado à programação em lógica: PROLOG;

4 Aplicações Sistemas Baseados no Conhecimento; Sistemas Baseados no Conhecimento; Sistemas de Bases de Dados; Sistemas de Bases de Dados; Sistemas Especialistas; Sistemas Especialistas; Processamento da Linguagem Natural; Processamento da Linguagem Natural; Educação. Educação.

5 PROLOG PROLOG é uma linguagem baseada em um conjunto de conceitos: PROLOG é uma linguagem baseada em um conjunto de conceitos: –casamento de padrões; –estruturação em forma de árvore; –backtracking automático É uma linguagem orientada ao processamento simbólico; É uma linguagem orientada ao processamento simbólico; Representa uma implementação da lógica como linguagem de programação; Representa uma implementação da lógica como linguagem de programação;

6 PROLOG Apresenta uma semântica declarativa inerente à lógica; Apresenta uma semântica declarativa inerente à lógica; Permite a definição de programas reversíveis, isto é, programas que não distinguem entre os argumentos de entrada e os de saída; Permite a definição de programas reversíveis, isto é, programas que não distinguem entre os argumentos de entrada e os de saída; Permite a obtenção de respostas alternativas; Permite a obtenção de respostas alternativas; Suporta código recursivo e iterativo para a descrição de processos e problemas, dispensando os mecanismos tradicionais de controle, tais como while, repeat, etc; Suporta código recursivo e iterativo para a descrição de processos e problemas, dispensando os mecanismos tradicionais de controle, tais como while, repeat, etc; Permite associar o processo de especificação ao processo de codificação de programas; Permite associar o processo de especificação ao processo de codificação de programas; Representa programas e dados através do mesmo formalismo. Representa programas e dados através do mesmo formalismo.

7 PROLOG: Diferenças em relação às outras linguagens PROLOG: é uma linguagem declarativa - especifica o quê se sabe e o quê deve ser feito. PROLOG: é uma linguagem declarativa - especifica o quê se sabe e o quê deve ser feito. PROLOG é mais direcionada ao conhecimento, menos direcionada aos algoritmos. PROLOG é mais direcionada ao conhecimento, menos direcionada aos algoritmos. PROLOG não possui estruturas de controle como do-while, repeat-until, if-then-else, for, case ou switch como os encontrados em outras linguagens: em PROLOG utiliza-se métodos lógicos para declarar como o programa atinge seu objetivo. PROLOG não possui estruturas de controle como do-while, repeat-until, if-then-else, for, case ou switch como os encontrados em outras linguagens: em PROLOG utiliza-se métodos lógicos para declarar como o programa atinge seu objetivo. A força do PROLOG reside em sua capacidade de Busca e Casamento de Padrões. A força do PROLOG reside em sua capacidade de Busca e Casamento de Padrões.

8 PROLOG: conceitos Termos Termos –Constante Exemplo: paulo, 3, 'UFRGS' Exemplo: paulo, 3, 'UFRGS' –Variável –Termo composto Exemplo: suc(suc(suc(0))); Exemplo: suc(suc(suc(0))); Compiladores/Interpretadores Compiladores/Interpretadores –Exemplos: Kernel PrologL Kernel PrologL GNU Prolog GNU Prolog SWI Prolog SWI Prolog Visual Prolog; Visual Prolog;

9 PROLOG: conceitos Átomos Exemplo: lápis, ana, brasil, livro, tesoura, guarda- roupa; Exemplo: lápis, ana, brasil, livro, tesoura, guarda- roupa; Predicado Predicado –Exemplos: homem(pedro) homem(pedro) mulher(ana) mulher(ana) brigou(carlos,maria) brigou(carlos,maria)

10 PROLOG: conceitos Frases Frases casado(pedro,maria). casado(pedro,maria). casado(carlos,ana). casado(carlos,ana). ?- casado(carlos,maria). ?- casado(carlos,maria). ?- casado(carlos,ana). ?- casado(carlos,ana). Fatos Fatos

11 PROLOG: conceitos Consulta (ou questão): Consulta (ou questão): –Uma consulta é escrita da mesma maneira que um fato, sendo diferenciada pelo interpretador ou por sua colocação em um local previamente definido e separado dos fatos; Dizemos que dois fatos (ou um fato e uma questão) são unificam (são iguais) se: Dizemos que dois fatos (ou um fato e uma questão) são unificam (são iguais) se: 1.seus predicados são os mesmos, 2.eles possuem o mesmo número de argumentos e, 3.os argumentos são iguais. 4.o PROLOG encontra um fato que se iguala a questão, ele retorna "YES", indicando que a questão tem resposta verdadeira; caso contrário, ele retorna "NO".

12 Exemplo Programa: Programa: factorial (0,1). factorial (N,F) :- N>0, N1 is N-1, Factorial (N1,F1), F is N*F1. Consulta: Consulta: ?- factorial(3,W).

13 Exemplo Estrutura de Árvores

14 Conclusão PROLOG é uma boa ferramenta na representação de fatos do mundo real que seriam dificilmente ou até mesmo impossíveis de serem modelados em linguagens imperativas. PROLOG é uma boa ferramenta na representação de fatos do mundo real que seriam dificilmente ou até mesmo impossíveis de serem modelados em linguagens imperativas. Apesar da linguagem PROLOG ser uma das mais conhecidas, as arquiteturas voltadas para ter essa linguagem como nativa não tiveram o mesmo êxito. Apesar da linguagem PROLOG ser uma das mais conhecidas, as arquiteturas voltadas para ter essa linguagem como nativa não tiveram o mesmo êxito.


Carregar ppt "Programação Lógica: PROLOG Leandro Aguiar Daidy Márcio Melo."

Apresentações semelhantes


Anúncios Google