1 / 14

Programação Lógica: PROLOG

Programação Lógica: PROLOG. Leandro Aguiar Daidy Márcio Melo. Sumário. Programação Lógica Aplicações PROLOG Conclusão. 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;

jeanne
Download Presentation

Programação Lógica: PROLOG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Sumário • Programação Lógica • Aplicações • PROLOG • 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; • 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;

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

  5. PROLOG • 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; • Representa uma implementação da lógica como linguagem de programação;

  6. PROLOG • 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 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; • Permite associar o processo de especificação ao processo de codificação de programas; • 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 é 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. • A força do PROLOG reside em sua capacidade de Busca e Casamento de Padrões.

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

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

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

  11. PROLOG: conceitos • 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: • seus predicados são os mesmos, • eles possuem o mesmo número de argumentos e, • os argumentos são iguais. • 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: factorial (0,1). factorial (N,F) :- N>0, N1 is N-1, Factorial (N1,F1), F is N*F1. • 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. • Apesar da linguagem PROLOG ser uma das mais conhecidas, as arquiteturas voltadas para ter essa linguagem como nativa não tiveram o mesmo êxito.

More Related