arXivDaily arXiv每日学术速递 周一至周五更新
arXiv cs/0308007cs.PL
收藏

论或-表法在逻辑程序中的应用

On Applying Or-Parallelism and Tabling to Logic Programs

Ricardo Rocha, Fernando Silva, Vitor Santos Costa

摘要:

在过去的几年里,人们在增加Prolog的声明性和表达性方面做出了越来越大的努力。表已被证明是一种可行的技术,有效地克服SLD的无限循环和冗余的子计算的敏感性。我们的研究表明,隐式或并行是一个自然的适合逻辑程序与制表。为了证实这一信念,我们已经设计并实现了一个或并行制表引擎- OPTYap -我们使用共享内存并行机来评估其性能。据我们所知,OPTYap是逻辑编程系统的并行制表引擎的第一个实现。OPTYap建立在Yap高效的顺序Prolog引擎之上。它的执行模型是基于SLG-WAM的制表,和环境复制或并行。初步结果表明,提出的机制,并行搜索的上下文中的SLD决议确实可以有效地和自然地推广到并行表计算,并由此产生的系统可以实现良好的性能共享内存并行机。更重要的是,它强调了我们的信念,通过应用或并行和制表逻辑程序的应用范围可以增加逻辑程序设计。

英文摘要:

The past years have seen widening efforts at increasing Prolog's declarativeness and expressiveness. Tabling has proved to be a viable technique to efficiently overcome SLD's susceptibility to infinite loops and redundant subcomputations. Our research demonstrates that implicit or-parallelism is a natural fit for logic programs with tabling. To substantiate this belief, we have designed and implemented an or-parallel tabling engine -- OPTYap -- and we used a shared-memory parallel machine to evaluate its performance. To the best of our knowledge, OPTYap is the first implementation of a parallel tabling engine for logic programming systems. OPTYap builds on Yap's efficient sequential Prolog engine. Its execution model is based on the SLG-WAM for tabling, and on the environment copying for or-parallelism. Preliminary results indicate that the mechanisms proposed to parallelize search in the context of SLD resolution can indeed be effectively and naturally generalized to parallelize tabled computations, and that the resulting systems can achieve good performance on shared-memory parallel machines. More importantly, it emphasizes our belief that through applying or-parallelism and tabling to logic programs the range of applications for Logic Programming can be increased.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑