返回
Computation Tree Logic Guided Program Repair
DOI:10.1109/TSE.2025.3625772.png)
摘要
En 中文
时序逻辑如计算树逻辑(CTL)已被广泛用作表达形式化方法来捕获丰富的行为规范。CTL能够表达可达性、终止性、不变性以及响应性等难以测试的性质。本文提出了一种由CTL性质引导的无限状态程序自动修复机制。我们生成的补丁避免了测试套件引导修复中出现的过拟合问题,即修复后的代码可能无法通过给定测试套件之外的测试。为了实现这一愿景,我们提出了一种基于Datalog的新型查找与修复框架,Datalog是一种广泛用于程序分析的领域特定语言,它通过分层否定轻松支持CTL的嵌套固定点语义。具体而言,我们的框架将程序和CTL性质编码为Datalog事实和规则,并通过修改事实以通过分析规则来执行修复。在框架中,为了实现分析和修复结果,我们采用并改进了现有技术——包括循环概要和Datalog符号执行(SEDL)。我们的方法在CTL验证基准测试上达到了56.6%的分析准确率,在终止性/响应性基准测试上达到了88.5%,分别超过了基准性能的27.7%和76.9%。我们的方法修复了所有检测到的错误,而现有工具未能实现这一点。
Keyword:
Program analysis and automated repair
datalog
loop summarisation
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.1W

