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

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

Lógica para Programação 1 Linguagens de Programação Linguagem de Programação é um sistema formal de regras de descrição, com sintaxe e semântica bem definidas,

Apresentações semelhantes


Apresentação em tema: "Lógica para Programação 1 Linguagens de Programação Linguagem de Programação é um sistema formal de regras de descrição, com sintaxe e semântica bem definidas,"— Transcrição da apresentação:

1 Lógica para Programação 1 Linguagens de Programação Linguagem de Programação é um sistema formal de regras de descrição, com sintaxe e semântica bem definidas, capaz de representar um programa de computador. Classificação por níveis: Linguagens de muito alto nível (SQL, PROLOG, Haskell) Linguagens de alto nível (Pascal, Fortran, C, C++, Java,...) Linguagens de baixo nível (linguagem máquina e assembly)

2 Lógica para Programação 2 Motivação

3 Lógica para Programação 3 PROGRAMAÇÃO DECLARATIVA o programador limita-se a fornecer uma teoria, i.e. a exprimir directamente o seu conhecimento sobre o domínio da aplicação, sem se preocupar em descrever como esse conhecimento deve ser utilizado para responder às interrogações do utilizador. Kowalski: Algorithm = Logic + Control Paradigma Lógico: Um programa é um conjunto de afirmações e regras (cláusulas - fórmulas da lógica de 1ª ordem modificadas), que descrevem o conhecimento dos objectos e relações entre eles num determinado domínio, sobre o qual são introduzidas questões e, recorrendo à técnica de pesquisa por retrocesso (backtracking), são fornecidas respostas (consequências lógicas) (PROLOG, CTL, etc.).

4 Lógica para Programação 4 LÓGICA ? linguagem (família de alfabetos + gramática) relação de consequência ( ) (conjunto de fórmulas fórmula) PROGRAMA teoria (conhecimento sobre determinado domínio) "EXECUTAR" P sobre uma interrogação (fórmula) Q é determinar se P Q Exemplo: A empresa Leite&Ca foi chamada a desenvolver um sistema para apurar os benefícios resultantes do novo esquema de isenção e redução de propinas. Para tal, socorreu-se da legislação em vigor.

5 Lógica para Programação 5 Exemplo

6 Lógica para Programação 6 Algorithm = Logic + Control O controlo é deixado, neste caso, ao processador lógico. Mas veremos que o conhecimento sobre como o processador lógico funciona permite optimizar programas, conduzindo a estilos de representação – técnicas de programação – que complementam o carácter declarativo da programação. Propriedades do processador: correcção só se obtêm respostas correctas? completude/adequação obtêm-se todas as respostas possíveis?

7 Lógica para Programação 7 QUE LÓGICAS ? Idealmente, a escolha da lógica é feita consoante o tipo de conhecimento que queremos representar. Mas a definição de processadores lógicos não é trivial... Os sistemas de programação em lógica existentes baseiam-se essencialmente em fragmentos da lógica de 1ª ordem. PROLOG P e ¬Q cláusulas de Horn execução é uma refutação (construtiva): derivação de uma contradição a partir de P e ¬Q – redução ao absurdo Mas existem outros sistemas (e.g. lógica modal – MOLOG)

8 Lógica para Programação 8 ALGUMA CRONOLOGIA: 1965:J.Alan Robinson publica o princípio de resolução 1972:R. Kowalski formula a interpretação procedimental da lógica clausal 1973:Alain Colmerauer et al implementam o primeiro sistema Prolog 1976:Primeira conferência internacional sobre Programação em Lógica 1977:Keith Clark publica resultados sobre a negação (regra da falha finita) 1981:Anúncio do projecto japonês sobre sistemas de quinta geração que identifica a Programação em Lógica como tecnologia chave 1984Inicia-se a publicação do Journal of Logic Programming 1984:John Lloyd publica o primeiro livro sobre os fundamentos teóricos da PL


Carregar ppt "Lógica para Programação 1 Linguagens de Programação Linguagem de Programação é um sistema formal de regras de descrição, com sintaxe e semântica bem definidas,"

Apresentações semelhantes


Anúncios Google