1 / 45

Conceitos de Linguagem de Programação

Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos. Conceitos de Linguagem de Programação. ● Expressa programas na forma de lógica simbólica; ● Um processo de inferência lógica é usado para produzir os resultados;

bonita
Download Presentation

Conceitos de Linguagem de Programação

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. Linguagens Lógicas Alunos: Emico Ferreira SantanaSilas Silva Santos Conceitos deLinguagem de Programação

  2. ● Expressa programas na forma de lógica simbólica; • ● Um processo de inferência lógica é usado para produzir os resultados; • – Não são declarados os procedimentos para determinar os resultados; • – Declarados as especificações dos resultados desejados; • ● Programas declarativos; Abordagem:

  3. ● Proposição: • – Declaração lógica que pode ou não ser verdadeira; • – Consiste em objetos e relações entre si; • ● Lógica Formal: • – Desenvolvida para fornecer um método para descrever • proposições; • – Buscando que essas proposições formalmente declaradas fossem verificadas quanto a validade; • – Relação entre lógica formal e a matemática; • ● Axiomas fundamentais da teoria dos números e dos conjuntos são o conjunto inicial de proposições presumidas como verdadeiras; Introdução ao Calculo de Predicados:

  4. ● Lógica Simbólica: • – Pode ser utilizada para as necessidades básicas da lógica formal: • ● Expressar proposições; • ● Expressar relações entre proposições; • ● Descrever como novas proposições podem ser inferidas de outras que se presumem verdadeiras; • – Calculo de predicados: • ● Forma particular de lógica simbólica usada para a programação lógica; Introdução ao Calculo de Predicados:

  5. ● Os objetivos de proposições de programação lógica são apresentados por termos simples, constantes ou variáveis; • – Constante: • ● É um símbolo que representa um objeto; • – Variável: • ● É um símbolo que pode representar diferentes objetos em diferentes tempos; • – No sentido matemático; Proposições:

  6. ● Proposições atômicas: • – Proposições simples; • – Constituído de termos compostos; • ● Elemento de uma relação matemática; • – Aparência de uma função matemática; • – Termo composto e formado por duas partes: • ● Functor: • – Símbolo de função que nomeia a relação; • ● Lista ordenada de parâmetros: • – 1-tupla: termo composto com um único parâmetro; • – 2-tupla: termo composto com dois parâmetros; Proposições:

  7. ●Proposições: • ● Exemplo: • – homem( jack) • ● 1-tupla na relação chamada homem; • – gosta( bob, bife ) • ● 2-tupla na relação chamada gosta; • – Se adicionar homem( fred ), a relação homem terá dois elementos distintos; • – Todos os termos simples dessas proposições são constantes e sem nenhuma semântica intrínseca; • ● homem, jack, gosta, bob, bife e fred; Proposições:

  8. ●Proposições: • ● Declarado de duas maneiras: • – Proposição definida como verdadeira; • – A verdade da proposição precisa ser determinado; • ● Ou seja: • – Podem ser declarados como fatos ou consultas; • ● Proposições compostas: • – Tem duas ou mais proposições atômicas, ligadas por conectores lógicos ou operadores; • ● Da mesma maneira que expressões logicas compostas são construídas em linguagens imperativas; Proposições:

  9. ●Proposições: • ● Nomes, símbolos e significados dos conectores lógicos do calculo de predicado sao os seguintes: • – Negação (¬): ¬a (não a); • – Conjunção (∩): a∩b(a e b); • – Disjunção(∪): a∪b(a ou b); • – Equivalência (≡): a≡b(a e equivalente a b); • – Implicação: • ● (⊃): a⊃b(a implica b); • ● (⊂): a ⊂ b (b implica a); Proposições:

  10. ●Proposições Compostas: • ● ¬ : precedência mais elevada; • ● ∩, e ∪ ≡ tem precedência maior que ⊃ e ⊂; • ● Exemplo: • – a ∩¬ b ⊃ d ; • ● ( a ∩ ( ¬ b ) ) ⊃ d ; Proposições:

  11. ●Proposições (Variáveis): • ● Variáveis podem aparecer em proposições, mas somente quando introduzidas por símbolos especiais, os quantificadores; • ● Dois quantificadores no calculo de predicado: • – Sendo X uma variável e P uma proposição; • – Universal: ∀ X P • ● Para todo X, P e verdadeiro; • – Existencial: ∃ X . P • ● Existe um valor de X tal que P seja verdadeiro; • ● Ponto (.), simplesmente separa a variável da proposição; Proposições:

  12. ●Proposições (Variáveis): • ● Exemplo: • – ∀ X . ( mulher( X ) ⊃ humano( X )) • ● Significa que para qualquer valor de X, se X for uma mulher, X e humano; • – ∃ X . ( mãe( mary, X ) ⊃ homem( X )) • ● Significa que existe um valor de X tal que mary e mãe de X e X e um homem (mary tem um filho); Proposições:

  13. ●O escopo dos quantificadores universais e • existenciais são as proposições atômicas as • quais eles são anexados; • ● Pode ser estendido utilizando parênteses; • ● Os quantificadores universais e existenciais tem precedência mais elevada do que qualquer um dos operadores; Proposições:

  14. ● Calculo de Predicados: • – É a base para as linguagens de programação logica; • ● Minimizar redundâncias; • – Problema do calculo de Predicados: • ● Existem muitas maneiras diferentes de declarar proposições com o mesmo significado; • – Muita redundância; • ● Não constitui um problema para logica; • – Mas o calculo de predicado será um serio problema para sistemas automatizados; • ● Forma Clausal: • – Forma padrão, relativamente simples, de proposições; • ● Sem perda de generalidade; Forma Clausal :

  15. ●Forma Clausal: • ● Sintaxe de uma proposição na Forma Clausal: • – B1 U B2 U … U Bn ⊂ A1 ∩ A2 ∩ … ∩ An • ● Sendo os As e Bs termos; • – Significado: • ● Se todos os As forem verdadeiros, pelo menos um B será verdadeiro; • – Características: • ● Quantificadores existenciais não são necessários; • ● Quantificadores universais ficam implícitos no uso de variáveis nas proposições atômicas; • ● Nenhum outro operador além de conjunção e disjunção é necessário; • ● Ordem da clausal geral: • – Disjunção no lado esquerdo e a conjunção no lado direito; Forma Clausal :

  16. ●Forma Clausal: • ● Antecedente: • – É o lado direito de uma proposição • ● Consequente: • – Consequência da verdade de seu antecedente; • ● Exemplos: • – gosta( bob, truta ) ⊂ gosta(bob, peixe ) ∩ peixe( truta ) • ● “Se bob gosta de peixe e truta e um peixe, então bob gosta de truta”; • – pai( louis, alan) U pai ( louis, violet ) ⊂ pai( alan, bob ) ∩ mae( violet, bob ) ∩ avo( louis, bob ) • ● “Se alane pai de bob e violet e mãe de bob e louis e avo de bob, então louise pai de alanou de violet”; Forma Clausal :

  17. ●Calculo de Predicados e Demonstração de Teoremas: • ● Calculo de Predicados oferece um método para expressar coleções de preposições; • – Um uso das coleções de preposições édeterminar se quaisquer fatos interessantes ou uteis podem ser inferidos a partir das mesmas; • – Processo semelhante ao dos matemáticos, que buscam descobrir novos teoremas que possam ser inferidos a partir de axiomas e de teoremas conhecidos; Calculo de Predicados e Demonstração de Teoremas :

  18. ● Resolução: • – Èuma regra de inferência; • ● Permite a computação de preposições inferidas a partir de proposições dadas; • ● Constitui assim, um método potencial na demonstração automática de teoremas; • – Idealizada para ser aplicada a proposições na forma clausal; Calculo de Predicados e Demonstração de Teoremas :

  19. ●Conceito de resolução: • ● Supondo duas proposições com as formas: • – P1 ⊂ P2 • ● P2 implica em P1; • – Q1 ⊂ Q2 • ● Q2 implica em Q1; • – Supondo ainda que P1 seja idêntico a Q2, de modo que seja possível renomear P1 e Q2 como T; • ● T ⊂ P2 • ● Q1 ⊂ T • – Assim: • ● Q1 ⊂ P2 • – O Processo de inferir tal proposição a partir de duas proposições originais é uma resolução; Conceito de resolução :

  20. ●Conceito de resolução: • ● Exemplo: • – Considerando duas proposições: • ● mais_velho( joanne, jake ) ⊂ mae( joanne, jake ) • ● mais_sabio( joanne, jake ) ⊂ mais_velho( joanne, jake ) • – Proposição usando resolução: • ● mais_sabio( joanne, jake ) ⊂ mae( joanne, jake ) • – Construção da resolução: • ● Os termos do lado esquerdo das duas proposições são unidos por um E para formar o lado esquerdo da nova proposição; • – Mesmo processo para o lado direito; • ● O termo que aparece em ambos os lados da nova proposição e removido; Conceito de resolução :

  21. ●Conceito de resolução: • ● Exemplo: • – Considerando duas proposições: • ● pai( bob, jake ) U mae( bob, jake ) ⊂ pais( bob, jake ) • – Se: bob é um dos pais de jake, isto implica que bob é ou o pai ou a mãe de jake; • ● avo( bob, fred ) ⊂ pai( bob, jake ) ∩ pai( jake, fred ) • – E: bob é pai de jake e jakeé pai de fred, isto implica que bob é avô de fred; • – Proposição usando resolução: • ● pai( bob, jake), é a proposição atômica que permitiu a operação; • ● mae( bob, jake ) U avo( bob, fred ) ⊂ pais( bob, jake ) ∩ pai( jake, fred ) • – Entao: • ● Se: bob é um dos pais de jake e jakeé o pai de fred, então ou bob é mãe de jake ou bob é avô de fred; Conceito de resolução :

  22. ●Conceito de resolução: • ● Os conceitos, em geral são mais complexos que os exemplos; • – Principalmente com variáveis em proposições; • ● A resolução precisa determinar os valores para essas variáveis para que o processo de comparação possa ocorrer; • ● Unificação: • – Processo de determinar valores uteis; • ● Instanciação: • – Atribuição temporária de valores a variáveis para permitir a unificação; Conceito de resolução :

  23. ●Conceito de resolução: • ● Capacidade de detectar inconsistência em um conjunto de dado de proposição: • – Essa propriedade permite que a resolução seja usada para demonstrar teoremas: • ● Prova pela contradição: • – Método de prova indireta, não-construtiva; • – Assumindo-se como verdade o contrario do que queremos provar e então chegando-se a uma contradição. • ● Hipóteses: • – Proposições originais; • ● Meta: • – A negação do teorema; Conceito de resolução :

  24. ●Conceito de resolução: • ● Demonstração de teoremas e a base da programação logica; • – Lista de fatos dados; • – Relações como hipóteses; • – Meta a ser inferida a partir das hipóteses; • ● Utilizado a resolução; • ● Quando proposições são usadas para resolução, somente um tipo restrito de forma clausal pode ser ativado; • – Simplifica o processo de resolução; Conceito de resolução :

  25. ●Cláusulas de Horn: • ● Tipos especiais de proposições; • ● Podem estar em somente duas formas: • – Uma única proposição atômica no lado esquerdo; • – Ou, lado esquerdo vazio; • ● Cláusulas de Horn encabeçadas: • – Uma única proposição atômica no lado esquerdo; • ● Declaração de relações; • – gosta( bob, truta ) ⊂ gosta( bob, peixe ) ∩ peixe( truta ) • ● Cláusulas de Horn sem-cabeça: • – Lado esquerdo vazio; • ● Declaração de fatos; • – pai( bob, jake ) Cláusulas de Horn :

  26. ●Cláusulas de Horn: • ● Se a condição expressa pelo corpo da clausula: • – progenitor (X, Y) - é verdadeira então, segue como consequência logica que a cabeça - filho(Y, X) - também o é; • – Por outro lado, se não for possível demonstrar que o corpo da cláusula éverdadeiro, o mesmo irá se aplicar à cabeça. Cláusulas de Horn :

  27. ●“Logic Programming”; • ● Programação Baseada em Lógica éuma forma de implementar computações que coincidem com provas de teoremas; • – Se P então Q; • ● onde P e Q denotam declarações; • – Podem ser verdade ou falsa, mas não ambas; • ● A declaração P é a hipótese do teorema; • ● Enquanto que Q é a conclusão; • ● Possibilita dupla interpretação dos passos de computação que ocorrem durante a execução de um programa; • – Permitem que as especificações lógico-formais de certos problemas sejam também os próprios programas executáveis que resolvem aqueles problemas; Programação Baseada em Lógica

  28. ●Inspirada na observação que provar um teorema lógico • “sem criatividade” é um processo intelectual bastante • semelhante a acompanhar a execução de um programa • imperativo passo a passo, obedecendo as regras de • inferência determinadas para a logica em uso: • ● E partindo de um conjunto de expressões fornecidas (conjunto de axiomas); • ● Novas expressões são geradas até que uma expressão alvo seja obtida (um teorema); • ● Ou alternativamente que a impossibilidade de gerar aquela expressão alvo seja estabelecida (teorema foi refutado); Logic Programming :

  29. ●Expressão: • ● Tanto as expressões fornecidas originalmente, como as expressões geradas durante o processo de busca do teorema (ou impossibilidade), podem em geral ser particularizadas; • ● Exemplo: • – Dedução que “Sócrates é mortal”, com base nas premissas: • ● “Sócrates é um homem e todo homem é mortal”; • ● “se Sócrates é homem, ele também émortal”; • – “Sócrates éhomem” fornece “Sócrates é mortal”; LogicProgramming:

  30. ●Particularização: • ● Forma de passar parâmetros entre sentenças; • ● “todo homem é mortal”; • – “se X éhomem ele também émortal”; • ● Sendo X uma variável; • ● “Sócrates éhomem”; • ● Forneceu o valor “Sócrates” a variável X; LogicProgramming:

  31. ●História: • ● Artigo de 1965 de J. A. Robinson; • – Apresenta resultados teóricos que possibilitaram a construção de linguagens de programação baseadas em particularização de sentenças e prova de teoremas; • ● Primeira metade dos anos de 1970: • – Primeiras implementações Prolog; História :

  32. ●Historia: • ● Anos 1980 – Projeto de Quinta Geração: • – Objetivo principal: • ● Era o desenvolvimento de hardware e software de alto desempenho, caracterizando uma nova geração de computadores; • – Maquinas PSI (“Personal Sequential Inference machines”); • – Paradigma básico; • ● Atingiram maturidade teórico e pratico; • – Desenvolvido no Japão; Historia :

  33. ●Características: • ● Linguagem Declarativa: • – Descrição do problema que se pretende computar; • – Base de Dados: • ● Coleção de fatos; • – Relações Logicas (regras): • ● Domínio relacional do problema; Características :

  34. ●A Relação: • ● Basicamente, nada existe na mente humana sem relação; • – Não podemos conceber a existência de um objeto no mundo que não tenha uma relação no tempo e no espaço; • ● Tudo é relação; • ● A relação entre os objetos é que os define no mundo • – Exemplo: • ● Dois irmãos existem por ter pais em comum; • ● Sem a relação de paternidade a definição irmãos não existiria; A Relação :

  35. ●A Relação: • ● A Classificação e A Seriação: • – Elementos fundamentais para a evolução cognitiva do homem, a classificação e a seriação permitem o agrupamento para discernimento e a organização hierárquica dos elementos do mundo; • ● Exemplo: • – Analisar o comportamento desde o nascimento: • ● Inicialmente os bebes possuem movimentos de reflexos, que são repetidos durante meses ate o momento em que são combinados entre si e outros elementos sensoriais; • ● Isto dá ínicioao sistema cíclico de aprendizado; • ● Uma vez portadora deste sistema, a criança pode distinguir os objetos ao seu redor classificando-os e atribuindo a eles relações de hierarquia; • – A classificação e a seriação funcionam paralelamente; A Relação :

  36. ●A Relação: • ●É necessário que tenhamos estes conceitos de relações na Linguagem Prolog; • – Sendo que, através desta linguagem de programação, iremos representar o mundo através de relações; • – A Linguagem de programação Prolog, que significa programação em lógica, não ébaseada no sequenciamento de procedimentos, mas na definição de relações, na forma com a qual se representa o mundo que se quer implementar no computador; A Relação :

  37. ● Implementação mais popular dos conceitos de • programação em lógica; • ● Alguns recursos: • – Representação e manipulação de negação explicita nas • clausulas; • – Funções e predicados predefinidos para a aritmética de • números inteiros e de ponto flutuante; • – Operadores meta-lógicospara controlar regras de • escolha utilizada; • – Recursos, semelhantes, de Entrada/Saída de dados; Linguagem Prolog :

  38. ● Conversão usual entre logica de notação e • linguagem de programação: • – Conectivo ← pelos caracteres :- • – Conectivo ^ pela virgula (,) • – Terminar cada clausula com um ponto (.) • – Todas as variáveis iniciam com letra maiúscula; Linguagem Prolog :

  39. ● Especificações são Programas: • – A linguagem de especificação éentendida pela máquina e é, por si só, uma linguagem de programação; • ● Naturalmente, o refinamento de especificações émais efetivo do que o refinamento de programas; • ● Um número ilimitado de cláusulas diferentes pode ser usado e predicados (procedimentos) com qualquer numero de argumentos são possíveis; • ● Não ha distinção entre o programa e os dados; • ● As cláusulas podem ser usadas com grande vantagem sobre as construções convencionais para a representação de tipos abstratos de dados; • ● A adequação da lógica para a representação simultânea de programas e suas especificações a torna um instrumento especialmente útil para o desenvolvimento de ambientes e protótipos; Linguagem Prolog :

  40. ● Capacidade Dedutiva: • – O conceito de computação confunde-se com o de (passo de) inferência; • – A execução de um programa é a prova do teorema • representado pela consulta formulada, com base nos • axiomas representados pelas cláusulas (fatos e regras) do programa; Linguagem Prolog :

  41. ● Não-determinismo: • – Os procedimentos podem apresentar múltiplas • respostas, da mesma forma que podem solucionar • múltiplas e aleatoriamente variáveis condições de • entrada; • – Através de um mecanismo especial, denominado • "backtracking", uma sequencia de resultados alternativos pode ser obtida; Linguagem Prolog :

  42. ● Reversibilidade das Relações: • – Ou "computação bidirecional"; • – Os argumentos de um procedimento podem alternativamente, em diferentes chamadas representar ora parâmetros de entrada, ora de saída; • ● Os procedimentos podem assim ser projetados para atender a múltiplos propósitos; • – A execução pode ocorrer em qualquer sentido, dependendo do contexto; • ● Por exemplo, o mesmo procedimento para inserir um elemento no topo de uma pilha qualquer pode ser usado, em sentido contrario, para remover o elemento que se encontrar no topo desta pilha; Linguagem Prolog :

  43. ● Tríplice Interpretação dos Programas em Logica: • – Um programa em logica pode ser semanticamente • interpretado de três modos distintos: • ● (1) por meio da semântica declarativa, inerente à lógica; • ● (2) por meio da semântica procedimental, onde as cláusulas dos programas são vistas como entrada para um método de prova; • ● (3) por meio da semântica operacional, onde as cláusulas são • vistas como comandos para um procedimento particular de • prova por refutação; • – Essas três interpretações são intercambiáveis segundo a • particular abordagem que se mostrar mais vantajosa ao • problema que se tenta solucionar; Linguagem Prolog :

  44. ● Recursão: • – Forma natural de ver e representar dados e programas; • ● Entretanto, na sintaxe da linguagem não ha laços do tipo "for" ou • "while": • – Podem ser programados; • – São desnecessários; • – Não usam comandos de atribuição; • ● Uma estrutura de dados contendo variáveis livres pode ser retornada • como a saída de um procedimento: • – Essas variáveis livres podem ser posteriormente instanciadas por • outros procedimentos produzindo o efeito de atribuições implícitas a • estruturas de dados; • ● Variáveis livres são automaticamente agrupadas por meio de • referências transparentes ao programador; Linguagem Prolog :

  45. ● Vantagens: • – É de aprendizado muito mais fácil e natural do que as linguagens • procedimentais convencionais, podendo inclusive ser ministrada a • estudantes entre o final do primeiro e o inicio do segundo grau com grande • aproveitamento; • – Implementa com precisão todos os novos modelos surgidos nos últimos • anos, inclusive redes neurais, algoritmos genéticos, sociedades de agentes • inteligentes, sistemas concorrentes e paralelos; • – Permite a implementação de extensões, inclusive em nível meta, e a • definição precisa de sistemas reflexivos (essenciais, por exemplo, a • robótica); • – Libera o programador dos problemas associados ao controle de suas • rotinas, permitindo-lhe concentrar-se nos aspectos lógicos da situação a • representar. Linguagem Prolog :

More Related