paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Flexeme: untangling commits using lexical flows

Flexeme:利用词法流拆分纠缠的提交
FSE Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2020匹配度 3/10 · 该论文属于程序分析与开发者工具方向,提出基于程序依赖图和名字流的提交拆分方法,但与用户核心关注的 LLM/Agent 与静态分析交叉、浮点程序分析、贝叶斯程序分析均无明显关联。引用 19 inbox
Profir-Petru Pârțachi, Santanu Kumar Dash, Miltiadis Allamanis, Earl T. Barr
crossref: 2026-09-12

AI 速览

一句话:提出 δ-NFG(带名字流的多版本程序依赖图)与 Flexeme 方法,用图聚类自动拆分纠缠提交,准确率提升 0.14 且快 32 倍。

开发者常将多个不相关的改动打包进同一提交,形成所谓的纠缠提交(tangled commit),这会妨碍 git bisect 的使用、增加补丁理解难度,并给仓库挖掘研究带来噪声。本文提出 δ-NFG:一种同时编码多个程序版本、并以跨边名字/词素标注数据流的多版本程序依赖图,可直接且统一地刻画提交。工具 Flexeme 从提交构建 δ-NFG,再对其施加基于图相似度的凝聚聚类,从而把提交拆分为若干单一关注点的提交。在 C# 语料上,其实现 Heddle 将拆分任务的准确率从此前最优提升 0.14,达到 0.81,同时运行速度比此前最优方法快 32 倍。

问题
纠缠提交把缺陷修复、新特性等不同关注点的改动混在一起,限制了 git bisect 等工具的使用,并使补丁理解与软件仓库挖掘更加困难。
方法
提出 δ-NFG——同时编码多个程序版本并以名字/词素标注数据流边的多版本程序依赖图,Flexeme 据此构建提交表示,并用基于图相似度的凝聚聚类完成拆分。
评估
在 C# 语料上进行提交拆分任务评估,实现 Heddle 取得 0.81 的准确率,较此前最优提升 0.14,且速度快 32 倍。
原文摘要(Abstract)

Today, most developers bundle changes into commits that they submit to a shared code repository. Tangled commits intermix distinct concerns, such as a bug fix and a new feature. They cause issues for developers, reviewers, and researchers alike: they restrict the usability of tools such as git bisect, make patch comprehension more difficult, and force researchers who mine software repositories to contend with noise. We present a novel data structure, the 𝛿-NFG, a multiversion Program Dependency Graph augmented with name flows. A 𝛿-NFG directly and simultaneously encodes different program versions, thereby capturing commits, and annotates data flow edges with the names/lexemes that flow across them. Our technique, Flexeme, builds a 𝛿-NFG from commits, then applies Agglomerative Clustering using Graph Similarity to that 𝛿-NFG to untangle its commits. At the untangling task on a C# corpus, our implementation, Heddle, improves the state-of-the-art on accuracy by 0.14, achieving 0.81, in a fraction of the time: Heddle is 32 times faster than the previous state-of-the-art.

链接与引用

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

BibTeX
@inproceedings{paperbot5812,
  title = {Flexeme: untangling commits using lexical flows},
  author = {Profir-Petru Pârțachi and Santanu Kumar Dash and Miltiadis Allamanis and Earl T. Barr},
  booktitle = {FSE},
  year = {2020},
  doi = {10.1145/3368089.3409693}
}