Tópicos Avançados de Informática
Implementação de Linguagens de Programação Lógica
Ano Lectivo de 2003/2004
Aulas Teóricas
- Warren's Abstract Machine
Representação de termos na
WAM - a HEAP. Implementação da unificação. Compilação de
factos. Compilação de "queries". Compilação de regras - noção de
variáveis permanentes e de ambientes. Implementação de
backtracking - noção de pontos de escolha e de trilha. Geração
de código WAM para pequenos programas Prolog.
- Paralelismo
Principais formas de
paralelismo. Princípio da ortogonalidade. Paralelismo-Ou: modelo
básico de execução, principais problemas a resolver, binding
arrays, cópia de ambientes, stack splitting.
- Tabelação
Modelo básico de execução. Completude e
líderes. Extensões de suporte: novas instruções, mecanismos de
suspensão/recuperação da computação, organização da tabela.
- Execução de Prolog com Alto Desempenho
Principais
formas de implementação de Prolog usando a WAM: vantagens e
desvantagens de cada uma. O algoritmo Two-Streams. Uma linguagem
intermédia de mais baixo nível. Optimização de código
intermédio. Compilação para código assembly.
- The Extended Andorra Model
O modelo Basic Andorra
Model: vantagens, limitações e problemas. O modelo Extended
Andorra Model: motivação, características e conceitos.
Controle implícito e explícito. As operações principais. O
modelo de execução e controle. O problema da não terminação de
certos programas prolog e uma possível solução.
Última Actualização: 27 de Novembro de 2003