260 likes | 427 Views
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
E N D
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
O que é PROLOG? • PROgrammation en LOGique • Alain Colmerauer • Univ. Aix-Marseille, 1972 • Robert Kowalski • Univ. Edimburgo, 1974 Introdução à Programação Prolog
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
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
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
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
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
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
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
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
Programas = Lógica + Controle O programador codifica somente a lógica. O ambiente de programação executa o controle. Introdução à Programação Prolog
Programas = Especificações Formais a b. b c, d. . . . Introdução à Programação Prolog
Programas = Especificações Formais a b. b c, d. . . . Introdução à Programação Prolog
Programas = Especificações Formais a b. b c, d. . . . ok Introdução à Programação Prolog
Programas = Protótipos Projetos grandes e caros ... ... podem ser prototipados rapidamente. Introdução à Programação Prolog
Programas = Bases de Dados prolog bd Introdução à Programação Prolog
Programas = Programas ... C/C++ Java Delphi Prolog Lisp ... etc Introdução à Programação Prolog
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.
Sistemas Especialistas • Diagnóstico médico, • Controle Ambiental, • Cultura Animal, • Controle de Tráfego Aéreo, • Indústria Aeroespacial. Introdução à Programação Prolog
Engenharia de Software • Especificações Formais, • Prototipação, • Modelagem de Processos, • Engenharia Reversa, • Manutenção de Software. Introdução à Programação Prolog
Simulação e Educação • Modelagem Ambiental, • Modelagem Organizacional, • Sistemas Tutoriais Inteligentes, • Ensino de Lógica a Adolescentes. Introdução à Programação Prolog
Suporte à Decisão • Mercados de estoques, ações e capital, • Apoio à decisões judiciais, • Análise de Investimentos, etc. Introdução à Programação Prolog
Bases de Dados Dedutivas O cálculo de predicados de primeira ordem possui expressividade equivalente à da álgebra relacional. Introdução à Programação Prolog
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
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