1 / 26

Prolog

Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação Introdução à Programação. Prolog. Luiz A. M. Palazzo Pelotas, maio de 2010. 1. Lógica e Programação de Computadores. O que é PROLOG?. PROgrammation en LOGique Alain Colmerauer

huey
Download Presentation

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. Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação Introdução à Programação Prolog Luiz A. M. Palazzo Pelotas, maio de 2010

  2. 1. Lógica e Programação de Computadores

  3. O que é PROLOG? • PROgrammation en LOGique • Alain Colmerauer • Univ. Aix-Marseille, 1972 • Robert Kowalski • Univ. Edimburgo, 1974 Introdução à Programação Prolog

  4. Principais características: • Lógica como linguagem de programação. • Raciocínio dedutivo sobre fatos e regras. • Processamento simbólico, • Semântica declarativa, procedimental e operacional. • Programas = Lógica + Controle. • Programas = Especificações Formais. • Programas = Protótipos. • Programas = Bases de dados. • Programas = Programas... Introdução à Programação Prolog

  5. Sócrates é homem. Todo homem é mortal. Quem é mortal? Sócrates é mortal. homem(sócrates). mortal(X)  homem(X). ?- mortal(Z). Z = sócrates. Programação em Lógica  Introdução à Programação Prolog

  6. Fatos, Regras e Consultas • A programação em lógica baseia-se em estruturas lógicas denominadas Cláusulas de Horn, que se apresentam em quatro formas distintas: • Fatos: a  • Regras: a  b • Consultas:  b • Vazia:  Introdução à Programação Prolog

  7. Fatos, Regras e Consultas • Fatos: São verdades incondicionais: pai(josé, joão). pai(joão, júlio). pai(júlio, jorge). Introdução à Programação Prolog

  8. Fatos, Regras e Consultas • Fatos: São verdades incondicionais: • pai(josé, joão). • pai(joão, júlio). • pai(júlio, jorge). • Regras: Podem ser verdadeiras ou não: • filho(X, Y)  pai(Y, X). • avô(X, Y)  pai(X, Z), pai(Z, Y). Introdução à Programação Prolog

  9. Fatos, Regras e Consultas • Fatos: São verdades incondicionais: • pai(josé, joão). • pai(joão, júlio). • pai(júlio, jorge). • Regras: Podem ser verdadeiras ou não: • filho(X, Y)  pai(Y, X). • avô(X, Y)  pai(X, Z), pai(Z, Y). • Consultas: Provocam a execução do programa: • ?- filho(júlio, X). X=joão • ?- avô(X, jorge). X=joão Introdução à Programação Prolog

  10. Processamento Simbólico deriv(x, 1). deriv(N, 0)  number(N). deriv(U+V, U1+V1)  deriv(U, U1), deriv(V, V1). deriv(U-V, U1-V1)  deriv(U, U1), deriv(V, V1). deriv(U*V, U1*V+U*V1)  deriv(U, U1), deriv(V, V1). Introdução à Programação Prolog

  11. Semântica Declarativa, Procedimental e Operacional • Os programas Prolog permitem trêspossíveis interpretações intercambiáveis: • (1) Declarativa, ao nível do cálculo de predicados de primeira ordem, • (2) Procedimental, ao nível da chamada de procedimentos, e • (3) Operacional, ao nível do controle da execução Introdução à Programação Prolog

  12. Programas = Lógica + Controle O programador codifica somente a lógica. O ambiente de programação executa o controle. Introdução à Programação Prolog

  13. Programas = Especificações Formais a  b. b  c, d. . . . Introdução à Programação Prolog

  14. Programas = Especificações Formais a  b. b  c, d. . . . Introdução à Programação Prolog

  15. Programas = Especificações Formais a  b. b  c, d. . . . ok Introdução à Programação Prolog

  16. Programas = Protótipos Projetos grandes e caros ... ... podem ser prototipados rapidamente. Introdução à Programação Prolog

  17. Programas = Bases de Dados prolog bd Introdução à Programação Prolog

  18. Programas = Programas ... C/C++ Java  Delphi Prolog Lisp ... etc Introdução à Programação Prolog

  19. Aplicações Avançadas Sistemas Especialistas, Engenharia de Software, Simulação, Educação, Suporte à Decisão, Programação Científica Bases de Dados Dedutivas, Programação da Web.

  20. Sistemas Especialistas • Diagnóstico médico, • Controle Ambiental, • Cultura Animal, • Controle de Tráfego Aéreo, • Indústria Aeroespacial. Introdução à Programação Prolog

  21. Engenharia de Software • Especificações Formais, • Prototipação, • Modelagem de Processos, • Engenharia Reversa, • Manutenção de Software. Introdução à Programação Prolog

  22. Simulação e Educação • Modelagem Ambiental, • Modelagem Organizacional, • Sistemas Tutoriais Inteligentes, • Ensino de Lógica a Adolescentes. Introdução à Programação Prolog

  23. Suporte à Decisão • Mercados de estoques, ações e capital, • Apoio à decisões judiciais, • Análise de Investimentos, etc. Introdução à Programação Prolog

  24. Bases de Dados Dedutivas O cálculo de predicados de primeira ordem possui expressividade equivalente à da álgebra relacional. Introdução à Programação Prolog

  25. Programação da Web • Extensões html e http • Web Semântica • SWI-Prolog • PiLLoW • Amzi! Prolog • Muitos outros (vale pesquisar) Introdução à Programação Prolog

  26. Alguns Ponteiros • Prolog na Wikipediahttp://pt.wikipedia.org/wiki/Prolog • Programação em Lógica http://vl.fmnet.info/logic-prog/ • SWI Prolog http://www.swi-prolog.org Introdução à Programação Prolog

More Related