PROPROLOGLOG
nHistóricoHistórico
• Esta Linguagem foi projetada e implementada por
Colmerauer
e seu grupo de IA , na Universidade de Marseille, onde foi escrito
o primeiro interpretador Prolog na linguagem ALGOL-W.
• Méloni em 1973, implementou uma nova versão escrita em
FORTRAN.
• Roberts em 1977 implementou na Universidade de
Waterloo
uma versão totalmente escrita em linguagem de máquina.
PROPROLOGLOG
Mas a linguagem Mas a linguagem Prolog só Prolog só passou a atrairpassou a atrair
um amplo interesse a nível mundial, quando foi um amplo interesse a nível mundial, quando foi
lançada a versão lançada a versão DEC-10 DEC-10 que inclui o primeiro que inclui o primeiro
compilador Prolog escrito em Prolog.compilador Prolog escrito em Prolog.
Após o lançamento desta nova versão, foi anunciado Após o lançamento desta nova versão, foi anunciado
no Japãono Japão
o projeto do super computador de quinta geração. o projeto do super computador de quinta geração.
PROPROLOGLOG
nO que é O que é PROPROLOG ?LOG ?
nAlgumas Definições.Algumas Definições.
nPROPROLOG é uma linguagem declarativa, LOG é uma linguagem declarativa,
que permite a representação dos dados que permite a representação dos dados
em lógica simbólicaem lógica simbólica
nPROPROLOG é uma linguagem interativa LOG é uma linguagem interativa
que permite resolver problemas que que permite resolver problemas que
envolvem representação simbólica de envolvem representação simbólica de
objetos e seus relacionamentosobjetos e seus relacionamentos
PROPROLOGLOG
nO que Relação, Classificação e Seriação ?O que Relação, Classificação e Seriação ?
nO que é Programação em Lógica ?O que é Programação em Lógica ?
PROPROLOGLOG
likes(ralph,prolog)likes(ralph,prolog)
likes(reader,prolog) if explains(ralph,prolog)likes(reader,prolog) if explains(ralph,prolog)
explains(ralph,prolog)explains(ralph,prolog)
nSignificam:Significam:
Ralph gosta de prolog;Ralph gosta de prolog;
O leitor gostará de prolog se Ralph explicar O leitor gostará de prolog se Ralph explicar
Prolog;Prolog;
Ralph explica PrologRalph explica Prolog
PROPROLOGLOG
n
Estrutura de um programa Estrutura de um programa PROPROLOGLOG
domainsdomains
prolog,person=symbolprolog,person=symbol
predicatespredicates
likes(person,prolog)likes(person,prolog)
explains(person,prolog)explains(person,prolog)
clausesclauses
likes(ralph,prolog).likes(ralph,prolog).
likes(reader,prolog) if explains (ralph,prolog).likes(reader,prolog) if explains (ralph,prolog).
explains(ralph,prolog)explains(ralph,prolog)
PROPROLOGLOG
nUtilizaçãoUtilização
nSistemas EspecialistasSistemas Especialistas
nLinguagem NaturalLinguagem Natural
nEngenharia de SoftwareEngenharia de Software
nBD RelacionaisBD Relacionais
nManipulação de fórmulas matemáticasManipulação de fórmulas matemáticas
nProva automática de teoremasProva automática de teoremas
nRobótica...Robótica...
PROPROLOGLOG
n Principais característicasPrincipais características
nOrientada para processamento simbólicoOrientada para processamento simbólico
nRepresenta uma implementação da lógica Representa uma implementação da lógica
como linguagem de programaçãocomo linguagem de programação
nApresenta semântica declarativa inerente a Apresenta semântica declarativa inerente a
lógicalógica
nPermite obtenção de respostas alternativasPermite obtenção de respostas alternativas
nPermite recuperação dedutiva de informaçãoPermite recuperação dedutiva de informação
PROPROLOGLOG
nSuporta estrutura de dados que permite Suporta estrutura de dados que permite
simular registros ou listassimular registros ou listas
nrepresenta programas e dados através representa programas e dados através
do mesmo formalismodo mesmo formalismo
nIncorpora facilidades computacionais Incorpora facilidades computacionais
extra e metalógicasextra e metalógicas
PROPROLOGLOG
nLimitaçõesLimitações
nExistência de diferentes implementações Existência de diferentes implementações
nDificuldade de integrar com outras Dificuldade de integrar com outras
linguagenslinguagens
nDificuldades de depuraçãoDificuldades de depuração