Pesquisa
1079
Benchmarking Prolog Interpreters
A. L. Martins and A. F. Silva
1 Abstract — Interpreters have the advantage of creating a safe environment in addition to provide portability. In the context of Prolog, several interpreters were developed following the model of the WAM. But what to say about the performance of the known interpreters? This article points to the differences in performance among the known Prolog interpreters. For this, we used several metrics to measure the performance and compare them. Finally, our findings show that there is a big difference in performance among the interpreters analyzed.
KeywordS — Interpreters, Prolog, Software performance.
I. INTRODUÇÃO PRINCIPAL motivação para o uso de programação em lógica é permitir que os programadores descrevam o que eles querem separadamente de como alcançar este objetivo. Isto é baseado na premissa que qualquer algoritmo consiste de duas partes: uma especificação, a lógica, e uma descrição de como executar esta especificação, o controle. Programas lógicos são declarações que especificam as propriedades do resultado esperado, sendo a maior parte do controle automaticamente provida pelo sistema, o que mantém o controle claramente separado da lógica. Várias linguagens lógicas foram propostas [1, 2, 3], destas a mais popular é PROLOG [4, 5] que foi originalmente criada para resolver problemas em linguagem natural. A semântica de PROLOG provê um balanceamento entre eficiente implementação e completude lógica [6, 7]. Isto atenta não apenas para a descrição de um mecanismo de prova de teoremas, mas também de uma linguagem de programação usual. A primeira implementação de PROLOG foi o interpretador desenvolvido por Roussel e Colmerauer na década de 70 [8]. Em 1977, David Warren criou o primeiro compilador de PROLOG, o DEC-10 PROLOG [9] que gerava código ASSEMBLY para o DEC-10. A investigação na implementação de PROLOG continuou com a