Programação em Lógica

Ano lectivo 1999/00 (semestre ímpar)

Programa

Para cumprir com os objectivos expostos, são cobertas as seguintes matérias:

1.Introdução e motivação para a disciplina
        1.Apresentação da disciplina
        2.Breve história da Programação em Lógica
        3.Conceitos básicos de Programação em Lógica
             1.Factos e regras
             2.Programas e perguntas
             3.Semântica declarativa e operacional
             4.Mecanismo de retrocesso ("backtracking")
             5.Termos
   2.Linguagem Prolog e seus constructores
        1.Programação de relações simples sobre números naturais (usando functor suc/1)
        2.Programação de predicados sobre listas
        3.Outras estruturas de dados recursivas
        4.Cálculo aritmético em Prolog
        5.Recursividade terminal e não-terminal
        6.Controlo procedimental e "cuts"
        7.Negação por falha finita
        8.Predicados Prolog de inspecção de termos e meta-lógicos
        9.Predicados de input/output
       10.Predicados de manipulação de programas
   3.Técnicas de Programação em Lógica
        1.Programação com uso de não-determinismo
        2.Listas de diferença e outras estruturas incompletas
        3.Meta-programação com Programação em Lógica
        4.Programação de interpretadores
        5.Programação de analisadores sintáticos e aplicação a "interfaces" de língua natural
   4.Tópicos avançados
        1.Mecanismos de tabulação
        2.Ilustração do uso de tabulação em programação de fechos transitivos e em representação de conhecimento