Tópicos Avançados de Informática
Implementação de Linguagens de Programação Lógica
Ano Lectivo de 2003/2004
Resumo
Obter o máximo de desempenho nas aplicações foi desde sempre um dos
maiores objectivos da investigação na programação lógica. Este
objectivo só pode ser conseguido através de modelos de computação
avançados que sejam capazes de uma execução eficiente através da
redução do espaço de procura, da extracção de paralelismo e da
optimização do código intermédio e de baixo nível gerado.
Pretende-se neste módulo fazer uma introdução à compilação de
linguagens de programação lógicas, cobrindo vários modelos de execução
e salientando as motivações em termos de eficiência que estes permitem
obter.
Programa
- A "Warren's Abstract Machine" (WAM)
- Possíveis optimizações na WAM
- Tradução de código WAM para C e para código nativo
- Exploração implícita de paralelismo em programas lógicos
- Tabelação como forma de aumentar o poder declarativo da linguagem
- Redução do espaço de procura: o "Extended Andorra Model" (EAM)
Aulas Teóricas
Avaliação
A avaliação dos alunos faz-se por realização de um exame final escrito.
Bibliografia
- Warren's Abstract Machine, Hassan Ait-Kaci, The MIT Press, 1991.
- WAMCC: Compiling Prolog to C, Philippe Codognet and Daniel Diaz,
Proceedings of the 12th International Conference on Logic
Programming, 1995.
- Parallel Execution of Prolog Programs: A Survey. G. Gupta,
E. Pontelli, K. Ali, M. Carlsson and M. V. Hermenegildo. ACM
Transactions on Programming Languages and Systems. Volume 23(4),
páginas 472--602. 2001.
- Efficient Access Mechanisms for Tabled Logic Programs. I. V.
Ramakrishnan, P. Rao, K. Sagonas, T. Swift and
D. S. Warren. Journal of Logic Programming. Volume 38(1),
páginas 31--54. 1999.
- The Wonder Years of Sequential Prolog Implementation. P. Van
Roy. Journal of Logic Programming. Volume 19/20, páginas
385--441, 1994.
- The Extended Andorra Model with Implicit Control. David
H. D. Warren. ICLP'90 Workshop on Parallel Logic
Programming. Israel, 1990.