paperbot · PL 论文追踪

全部论文 待读 收藏

P2 ReduKtor: How We Stopped Worrying About Bugs in Kotlin Compiler

ReduKtor:我们如何不再担心 Kotlin 编译器中的 Bug
ASE 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)2019匹配度 2/10 · 论文聚焦 Kotlin 编译器的 delta debugging 与缺陷缩减,虽然用到程序切片等程序分析技术,但应用场景是编译器调试,与用户关注的 PL→AI、AI→PL、浮点程序分析、贝叶斯程序分析等核心方向没有直接关联。引用 1 inbox
Daniil Stepanov, Marat Akhin, Mikhail Belyaev
crossref: 2026-09-12

AI 速览

一句话:提出结合程序切片、层次化 delta debugging 与 Kotlin 特有变换的缺陷缩减方法,并实现工具 ReduKtor。

编译器开发中的缺陷定位通常依赖 delta debugging,即把触发缺陷的输入程序缩减为最小复现用例,但每种新语言都有独特语法特性,使现有工具与方法的复用效率大打折扣。本文是一篇经验论文,针对 JetBrains 较新的语言 Kotlin,提出一种新的组合方法:程序切片、层次化 delta debugging 与 Kotlin 特有变换,三者相互协同。作者在原型工具 ReduKtor 中实现了该方法,并在合成与真实 Kotlin 程序上进行了大量评估,还与经典 delta debugging 技术做了性能对比。评估结果支持该方法在 Kotlin delta debugging 上的实际可用性,也表明要同时使用语言无关与语言相关技术,才能获得最佳的缩减效率与性能。

问题
编译器缺陷定位需要将触发缺陷的输入程序缩减为最小复现例,而 Kotlin 等新语言的独有特性使现有 delta debugging 工具难以直接高效复用。
方法
将程序切片、层次化 delta debugging 与 Kotlin 特有变换相结合,并在原型工具 ReduKtor 中实现自动化的 Kotlin 程序缩减。
评估
在合成与真实 Kotlin 程序上进行大量评估,并与经典 delta debugging 技术比较缩减效率与性能,验证了方法的实用性以及语言无关与语言相关技术结合的必要性。
原文摘要(Abstract)

Bug localization is well-known to be a difficult problem in software engineering, and specifically in compiler development, where it is beneficial to reduce the input program to a minimal reproducing example; this technique is more commonly known as delta debugging. What additionally contributes to the problem is that every new programming language has its own unique quirks and foibles, making it near impossible to reuse existing tools and approaches with full efficiency. In this experience paper we tackle the delta debugging problem w.r.t. Kotlin, a relatively new programming language from JetBrains. Our approach is based on a novel combination of program slicing, hierarchical delta debugging and Kotlin-specific transformations, which are synergistic to each other. We implemented it in a prototype called ReduKtor and did extensive evaluation on both synthetic and real Kotlin programs; we also compared its performance with classic delta debugging techniques. The evaluation results support the practical usability of our approach to Kotlin delta debugging and also shows the importance of using both language-agnostic and language-specific techniques to achieve best reduction efficiency and performance.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot5258,
  title = {ReduKtor: How We Stopped Worrying About Bugs in Kotlin Compiler},
  author = {Daniil Stepanov and Marat Akhin and Mikhail Belyaev},
  booktitle = {ASE},
  year = {2019},
  doi = {10.1109/ase.2019.00038}
}