Please use this identifier to cite or link to this item: https://hdl.handle.net/10216/74598
Author(s): MIGUEL AREIAS
Contributor(s): Ricardo Rocha
Title: On Applying Linear Tabling to Logic Programs
Issue Date: 2010
Abstract: Logic programming languages, such as Prolog, are derived from Horn Clause Logic and provide a well understood resolution based inference mechanism. Although Prolog is a popular and successful language, its potential is limited by the SLD resolution method on which it is based. SLD resolution was proven to be inecient when dealing with innite loops and redundant subcomputations. Tabled evaluation is a recognized and powerful technique that overcomes those limitations on traditional Prolog systems based on SLD resolution. We can distinguish two main categories of tabling mechanisms: suspension-based tabling and linear-based tabling. While suspension-based mechanisms are considered to obtain better results in general, they have more memory space requirements and are more complex and hard to implement than linear tabling mechanisms. The work presented on this thesis was focused on making a deep study about linear tabling, in order to understand how dierent linear tabling strategies can aect the evaluation ow of tabled programs and improve its overall performance. Arguably, the SLDT and DRA strategies are the two most successful extensions to standard linear tabled evaluation. In this work, we propose a new strategy, named DRS, and we present a framework, on top of the Yap system, that supports the combination of all these three linear tabling strategies. Our implementation shares the underlying execution environment and most of the data structures used to implement tabling in the YapTab engine, which is the actual suspension-based tabling mechanism of the Yap Prolog system. All these common features allows us to make a rst and fair comparison between the linear tabling strategies, used solely or combined with the other, and YapTab's suspension-based mechanism, in order to better understand the advantages and weaknesses of each feature. The obtained results conrmed that suspension-based mechanisms have, in general, better performance than linear tabling and that the dierence between both mechanisms can be highly reduced by using the correct combination of linear tabling strategies.
Description: As linguagens de Programação em Lógica que derivam da lógica de Horn, tal como o Prolog, têm mecanismos de resolução baseados em inferência que são bastante conhecidos. Embora o Prolog seja uma linguagem com bastante sucesso, o seu potencial é limitado pelo seu mecanismo de resolucão, que é baseado na resolucão SLD. O mecanismo de resolução SLD foi provado ser bastante ineficiente quando avalia programas logicos que têm ciclos infinitos ou sub-computações redundantes. A tabulacão é uma técnica de implementação bastante reconhecida e poderosa que permite ultrapassar essas limitações em sistemas de Prolog que são baseados na resolução SLD. Actualmente, a técnica de tabulação pode ser dividida em dois grandes mecanismos: por suspensão das pilhas de execução e por execução linear. Os mecanismos por suspensão das pilhas de execução são considerados terem melhores resultados, no entanto eles têm mais requisitos em termos de memória e são mais complexos de implementar do que os mecanismos lineares. O trabalho apresentado nesta tese pretende fazer um estudo aprofundado sobre os mecanismos de tabulação linear, de forma a perceber como as diferentes estratégias de tabulação afectam o fluxo de avaliação de um programa lógico e melhoram a performance geral do sistema. As estratégias SLDT e DRA são duas das mais conhecidas e bem sucedidas estratégias implementadas em sistemas de tabulação linear. Neste trabalho, propomos uma nova estratégia, que foi denominada de DRS, e apresentamos uma plataforma integrada, que suporta a combinação das três estratégias. A nossa implementação partilha o ambiente de execução e a maioria das estructuras de dados usadas pela máquina de execução do YapTab, que é o actual mecanismo de tabulação baseado em suspensão de pilhas do sistema Yap Prolog. A combinação de todas as estratégias e mecanismos na nossa plataforma permitiu-nos fazer uma primeira comparação justa entre todas as estratégias lineares, usadas sozinhas ou combinadas, e o mecanismo original do YapTab, de forma a perceber as vantagens e desvantagens de cada um. Os resultados obtidos, confirmam que os mecanismos baseados em suspensão têm, no geral, melhores resultados do que os mecanismos lineares, sendo que a diferença entre os resultados de ambos os sistemas pode ser em grande parte reduzida através da combinação correcta das melhores estratégias lineares.
Subject: Ciência de computadores, Ciências da computação e da informação
Computer science, Computer and information sciences
Scientific areas: Ciências exactas e naturais::Ciências da computação e da informação
Natural sciences::Computer and information sciences
DOI: 10.34626/ckah-n545
URI: https://hdl.handle.net/10216/74598
Document Type: Dissertação
Rights: openAccess
License: https://creativecommons.org/licenses/by-nc/4.0/
Appears in Collections:FCUP - Dissertação

Files in This Item:
File Description SizeFormat 
24046.pdfDissertação604.51 kBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons