Logical bytecode reduction

Logical bytecode reduction
复制标题

逻辑字节码缩减

DOI:
10.1145/3453483.3454091
复制
发表时间:
2021
期刊:
42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI
影响因子:
--
通讯作者:
Palsberg, Jens
Palsberg, Jens
中科院分区:
--
文献类型:
--
作者:
Kalhauge, Christian Gram;Palsberg, Jens

文献摘要

参考文献

被引文献

相似文献

对于具有内部依赖性的输入来说,将导致故障的输入减少到较小的输入是一项挑战,因为大多数子输入都是无效的。Kalhauge和Palsberg在这个问题上取得了进展,他们将任务映射为依赖图的约简问题,从而完全避免了无效输入。他们的工具J-Reduce有效地将Java字节码减少到原始大小的24%,这使其成为迄今为止最有效的工具。然而,他们的工具的输出通常太大,对bug报告没有帮助。在本文中,我们展示了对依赖关系进行更细粒度的建模会导致更多的减少。具体地说,我们使用命题逻辑来指定依赖关系,并展示了这是如何在Java字节码中工作的。一旦我们有了一个指定所有有效子输入的命题公式,我们就运行一个算法来找到一个小的、有效的、诱导失败的输入。我们的算法交错运行有缺陷的程序,并调用一个寻找最小满意赋值的过程。我们的实验表明,我们可以将Java字节码减少到原始大小的4.6%,这比J-Reduce实现的24.3%好5.3倍。更小的输出更适合bug报告。
Reducing a failure-inducing input to a smaller one is challenging for input with internal dependencies because most sub-inputs are invalid. Kalhauge and Palsberg made progress on this problem by mapping the task to a reduction problem for dependency graphs that avoids invalid inputs entirely. Their tool J-Reduce efficiently reduces Java bytecode to 24 percent of its original size, which made it the most effective tool until now. However, the output from their tool is often too large to be helpful in a bug report. In this paper, we show that more fine-grained modeling of dependencies leads to much more reduction. Specifically, we use propositional logic for specifying dependencies and we show how this works for Java bytecode. Once we have a propositional formula that specifies all valid sub-inputs, we run an algorithm that finds a small, valid, failure-inducing input. Our algorithm interleaves runs of the buggy program and calls to a procedure that finds a minimal satisfying assignment. Our experiments show that we can reduce Java bytecode to 4.6 percent of its original size, which is 5.3 times better than the 24.3 percent achieved by J-Reduce. The much smaller output is more suitable for bug reports.
类型安全方法内联
DOI: --
发表时间: 2002
影响因子: 1.3
作者:
Neal Glew;J. Palsberg
通讯作者: J. Palsberg
DOI: 10.1145/3368089.3409738
发表时间: 2020-11
期刊: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子: --
作者:
Bobby R. Bruce;Tianyi Zhang;Jaspreet Arora;G. Xu;Miryung Kim
通讯作者: Bobby R. Bruce;Tianyi Zhang;Jaspreet Arora;G. Xu;Miryung Kim
Java 应用程序提取器的实践经验
DOI: 10.1145/320384.320414
发表时间: 1999
期刊: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
F. Tip;C. Laffra;P. Sweeney;D. Streeter
通讯作者: D. Streeter
报告元程序中的错误
DOI: --
发表时间: 2020
期刊:
影响因子: --
作者:
Christian Gram Kalhauge
通讯作者: Christian Gram Kalhauge