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

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

Programmation en logique. UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando.

Apresentações semelhantes


Apresentação em tema: "Programmation en logique. UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando."— Transcrição da apresentação:

1 programmation en logique

2 UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando Chaves Dantas Ítalo Tobias de Souza Dantas José Maria de Oliveira Cavalcante Thiago Medeiros de Menezes

3 Características Como Programar em Prolog? Aplicações Prolog versus Linguagens Imperativas APRESENTAÇÃO À LINGUAGEM PROLOG Aspectos Gerais Considerações Finais Por que estudar Prolog?

4 O nome Prolog é um acrônimo para programmation en logique; Linguagem enquadrada nos paradigmas lógico e declarativo da programação; Projetada, em 1972, por Alain Colmerauer e Philippe Roussel na França; Sua semântica foi formalizada por Robert Kowalski baseada no conceito das cláusulas de Horn; Desenvolvida para criar programas de tradução de linguagens naturais como português, francês e inglês; O nome Prolog é um acrônimo para programmation en logique; Linguagem enquadrada nos paradigmas lógico e declarativo da programação; Projetada, em 1972, por Alain Colmerauer e Philippe Roussel na França; Sua semântica foi formalizada por Robert Kowalski baseada no conceito das cláusulas de Horn; Desenvolvida para criar programas de tradução de linguagens naturais como português, francês e inglês; ASPECTOS GERAIS

5 Tem na lógica um formalismo conveniente para representar e processar o conhecimento de maneira natural; Linguagem não-numérica, orientada a símbolos; É adequada à solução de problemas envolvendo objetos e suas relações; Tem sido aplicada em inteligência artificial, redes de computadores, educação, base de dados e sistemas paralelos. Tem na lógica um formalismo conveniente para representar e processar o conhecimento de maneira natural; Linguagem não-numérica, orientada a símbolos; É adequada à solução de problemas envolvendo objetos e suas relações; Tem sido aplicada em inteligência artificial, redes de computadores, educação, base de dados e sistemas paralelos. ASPECTOS GERAIS

6 Há uma preferência por serviços de especificação no mercado de trabalho; Pode ser vista como uma linguagem de programação e de especificação; Eficaz na elaboração de ambientes e interfaces computacionais para seres humanos; Permite definir e estender sistemas reflexivos, utilizados em robótica; É adequado para a descrição do mundo real com todos os seus aspectos e sutilezas. Há uma preferência por serviços de especificação no mercado de trabalho; Pode ser vista como uma linguagem de programação e de especificação; Eficaz na elaboração de ambientes e interfaces computacionais para seres humanos; Permite definir e estender sistemas reflexivos, utilizados em robótica; É adequado para a descrição do mundo real com todos os seus aspectos e sutilezas. POR QUE ESTUDAR PROLOG?

7 A programação limita-se a fornecer uma descrição do problema que se pretende computar; A execução de um programa em Prolog é efetivamente a prova de um dado teorema; Obtém respostas alternativas através de backtracking; Suporta código recursivo e iterativo, dispensando o uso de mecanismos como while, for e repeat ; Apesar do longo tempo de desenvolvimento, ainda não é uma linguagem portável. A programação limita-se a fornecer uma descrição do problema que se pretende computar; A execução de um programa em Prolog é efetivamente a prova de um dado teorema; Obtém respostas alternativas através de backtracking; Suporta código recursivo e iterativo, dispensando o uso de mecanismos como while, for e repeat ; Apesar do longo tempo de desenvolvimento, ainda não é uma linguagem portável. CARACTERÍSTICAS

8 É uma implicação cujo antecedente é uma conjunção de fórmulas atômicas e cujo conseqüente consiste em, no máximo, uma fórmula atômica. Lógica: ( α 1... α n) β Prolog: β :- ( α 1,..., α n) CLÁUSULAS DE HORN

9 A evolução da busca por soluções assume a do padrão da busca em profundidade em árvores; Quando a pesquisa falha ou é encontrado um nó terminal, o sistema retorna pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas; O backtracking pode se tornar em uma fonte de ineficiência, uma vez que o programa pode executar passos tentando satisfazer objetivos que não contribuirão para a solução do problema. A evolução da busca por soluções assume a do padrão da busca em profundidade em árvores; Quando a pesquisa falha ou é encontrado um nó terminal, o sistema retorna pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas; O backtracking pode se tornar em uma fonte de ineficiência, uma vez que o programa pode executar passos tentando satisfazer objetivos que não contribuirão para a solução do problema. BACKTRACKING

10 TIPOS DE DADOS sapato, Sapato átomos X, _X variáveis 43, -35, a = 97 números inteiros 43.0,.8e21 números em ponto flutuante $ele foi ao cinema$, ele foi ao cinema strings nasceu(joca, natal) estruturas [a, b, c] listas

11 CONCEITOS BÁSICOS CONSULTAS ?-mae(pedro). REGRAS mae(Ana) :- mulher(Ana). FATOS mae(pedro, ana).

12 OPERADORES BÁSICOS pré-definidos _:-?-! não, e, ou lógicos not,; aritmética +-*///mod^is relacional ====:=\===\=<=<>>= outros member(elemento, [ ])\+

13 Escrita de compiladores Prova de Teoremas Redes de Computadores Sistemas Baseados em Conhecimento Sistemas de Bases de Dados Sistemas Especialistas Processamento de Linguagem Natural Educação Arquiteturas Não- Convencionais APLICAÇÕES

14 ParadigmasImperativoEstruturado Orientado a Objetos ConcorrenteDeclarativoFuncionalLógico PROLOG VERSUS LINGUAGENS IMPERATIVAS

15 Imperativo Processo de Mudanças de Estados Variável, Valor e Atribuição Execução de passos algorítmicos Declarativo Especificações sobre a Tarefa a Ser Realizada Predicados Dedução Automática Difícil Implementação computacional Imperativo Processo de Mudanças de Estados Variável, Valor e Atribuição Execução de passos algorítmicos Declarativo Especificações sobre a Tarefa a Ser Realizada Predicados Dedução Automática Difícil Implementação computacional PARADIGMAS

16 PROLOG VERSUS LINGUAGENS IMPERATIVAS Imperativasprolog processamento numéricoprocessamento simbólico soluções algorítmicassoluções heurísticas modificação difícilfácil modificação melhor solução possíveltodas as soluções possíveis fácil re-usabilidadedifícil re-usabilidade iteratividade integradaiteratividade separada apenas respostas corretas incluem respostas parcialmente corretas conexão a base de dadosnão conecta a base de dados alta produtividade baixa produtividade

17 INTEGRANDO PROLOG Para que!??? Possibilidade de buscas mais complexas não definidas através de SQL. Prolog interpreta um scripts. Passos para integração Definição de conjuntos e regras em script prolog.pl; Utilização de programação Imperativa para selecionar situações; Verificar veracidade das situações com execução de um script prolog; Organizar resultados; Torna o prolog mais reutilizável; Para que!??? Possibilidade de buscas mais complexas não definidas através de SQL. Prolog interpreta um scripts. Passos para integração Definição de conjuntos e regras em script prolog.pl; Utilização de programação Imperativa para selecionar situações; Verificar veracidade das situações com execução de um script prolog; Organizar resultados; Torna o prolog mais reutilizável;

18 CONSIDERAÇÕES FINAIS Para resolução de problemas lógicos, podemos utilizar o Prolog como uma forma de facilitar o encontro de uma solução; Pelo fato de ser uma linguagem interpretada, pode ser facilmente incorporada a uma linguagem de programação que faça chamadas de execução de programas; Prolog é uma linguagem muito utilizada na área da pesquisa, desenvolvimento de projetos científico, vem tentando ser utilizada no mercado. Para resolução de problemas lógicos, podemos utilizar o Prolog como uma forma de facilitar o encontro de uma solução; Pelo fato de ser uma linguagem interpretada, pode ser facilmente incorporada a uma linguagem de programação que faça chamadas de execução de programas; Prolog é uma linguagem muito utilizada na área da pesquisa, desenvolvimento de projetos científico, vem tentando ser utilizada no mercado.

19 BEBREGAL, Benjamín Callejas; ACIOLY, Benedito Melo. Introdução à Lógica Clássica para a Ciência da Computação, versão preliminar 2007. DANTAS, Luciano Assis. Descobrindo o Prolog. Disponível em http://www.linhadecodigo.com. br/Artigo.aspx?id=1697. Acesso em 25 jul. 2009. MITSUO, Marcelo Niside. Prolog. Disponível em http://www.din.uem.br/ia/ferramen/prolog/. Acesso em 25 jul. 2009. PALLAZZO, Luiz A. M.. Introdução à Programação Prolog. Disponível em http://www.dsc.upe.br/~mlc/ Prolog/introducaoProgramacaoProlog_Palazzo.pdf. Acesso em 25 jul. 2009. Prolog. Disponível em http://pt.wikipedia.org/wiki/ Prolog#Extens.C3.B5es. Acesso em 25 jul. 2009. BEBREGAL, Benjamín Callejas; ACIOLY, Benedito Melo. Introdução à Lógica Clássica para a Ciência da Computação, versão preliminar 2007. DANTAS, Luciano Assis. Descobrindo o Prolog. Disponível em http://www.linhadecodigo.com. br/Artigo.aspx?id=1697. Acesso em 25 jul. 2009. MITSUO, Marcelo Niside. Prolog. Disponível em http://www.din.uem.br/ia/ferramen/prolog/. Acesso em 25 jul. 2009. PALLAZZO, Luiz A. M.. Introdução à Programação Prolog. Disponível em http://www.dsc.upe.br/~mlc/ Prolog/introducaoProgramacaoProlog_Palazzo.pdf. Acesso em 25 jul. 2009. Prolog. Disponível em http://pt.wikipedia.org/wiki/ Prolog#Extens.C3.B5es. Acesso em 25 jul. 2009. REFERÊNCIAS


Carregar ppt "Programmation en logique. UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando."

Apresentações semelhantes


Anúncios Google