一种基于连续调用的表执行程序转换
A Program Transformation for Continuation Call-Based Tabled Execution
摘要:
关于程序终止和降低复杂性的表式评估的优点是众所周知的--因为一些建议(特别是那些基于暂停的建议)需要大量的实施、可移植性和维护工作。这种实现的努力减少了程序转换为基础的连续调用技术,在一些效率的成本。然而,Ramesh和Cheng对这个建议的传统表述限制了表谓词和非表谓词的交错,因此不能用于任意程序。在本文中,我们提出了一个完整的翻译连续调用技术,使用传统的建议所需的运行时支持,解决了这些问题,并使之有可能执行任意tableed程序。我们目前的性能结果表明,CCall提供了一个有用的权衡,可以与国家的最先进的实现竞争。
英文摘要:
The advantages of tabled evaluation regarding program termination and reduction of complexity are well known --as are the significant implementation, portability, and maintenance efforts that some proposals (especially those based on suspension) require. This implementation effort is reduced by program transformation-based continuation call techniques, at some efficiency cost. However, the traditional formulation of this proposal by Ramesh and Cheng limits the interleaving of tabled and non-tabled predicates and thus cannot be used as-is for arbitrary programs. In this paper we present a complete translation for the continuation call technique which, using the runtime support needed for the traditional proposal, solves these problems and makes it possible to execute arbitrary tabled programs. We present performance results which show that CCall offers a useful tradeoff that can be competitive with state-of-the-art implementations.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。