最佳分割和查询(扩展版)
Optimal Divide and Query (extended version)
摘要:
自动调试是一种半自动调试技术,允许程序员精确地识别错误的位置,而无需检查源代码。该技术已经成功地适应了所有的范例,并且已经为Haskell,Prolog或Java等语言发布了成熟的实现。在过去的三十年中,Shapiro提出并由Hirunkitti改进的算法一直被认为是最佳的。在本文中,我们首先表明,该算法不是最优的,而且,在某些情况下,它是无法找到所有可能的解决方案,因此它是不完整的。然后,我们提出了一个新的版本的算法,证明是最佳的,我们引入一些方程,让算法来确定所有的最优解。
英文摘要:
Algorithmic debugging is a semi-automatic debugging technique that allows the programmer to precisely identify the location of bugs without the need to inspect the source code. The technique has been successfully adapted to all paradigms and mature implementations have been released for languages such as Haskell, Prolog or Java. During three decades, the algorithm introduced by Shapiro and later improved by Hirunkitti has been thought optimal. In this paper we first show that this algorithm is not optimal, and moreover, in some situations it is unable to find all possible solutions, thus it is incomplete. Then, we present a new version of the algorithm that is proven optimal, and we introduce some equations that allow the algorithm to identify all optimal solutions.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。