paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Refactoring Detection in C++ Programs with RefactoringMiner++

使用 RefactoringMiner++ 检测 C++ 程序中的重构
FSE Proceedings of the 33rd ACM International Conference on the Foundations of Software Engineering2025匹配度 2/10 · 该论文是软件工程/开发者工具方向的重构检测工具,与用户画像中的核心方向(ML/Agentic 程序的静态分析、LLM 改进静态分析与形式化验证、浮点程序分析、贝叶斯程序分析)均无直接交集,仅作为程序分析工具在“代码差分/分析”层面有极弱的邻接性。引用 0 inbox
Benjamin Ritz, Aleksandar Karakaš, Denis Helic
crossref: 2026-09-12

AI 速览

一句话:提出首个公开可用的 C++ 重构检测工具 RefactoringMiner++,基于 Java 的 RefactoringMiner 3 扩展实现。

提交中经常包含重构——旨在改进软件设计且保持行为的代码修改,代码审查者难以将其与改变行为的变更区分开来。过去二十年出现了许多自动重构检测工具,但大多仅支持 Java 项目。本文提出 RefactoringMiner++,它基于当前最先进的 Java 重构检测器 RefactoringMiner 3,是(据作者所知)首个公开可用的 C++ 重构检测工具。由于源于 Java 检测器,该工具尚不支持许多 C++ 特有的重构,但支持最常见的语言无关重构类型,并调和了若干语言不兼容问题。RefactoringMiner 的详尽评估为其性能提供了信心;作者还在一个小型种子数据集上测试了该工具,并通过一个同时包含重构与行为改变变更的简短演示展示了其能力。

问题
代码提交中的重构与行为修改难以区分,给代码审查带来挑战;现有自动重构检测工具大多只针对 Java,缺乏对 C++ 项目的支持。
方法
以 Java 重构检测器 RefactoringMiner 3 为基础,构建面向 C++ 的 RefactoringMiner++,支持最常见的语言无关重构类型,并处理若干语言不兼容性。
评估
借助 RefactoringMiner 原有的详尽评估佐证性能,并在一个小型种子数据集上测试,通过含重构与行为改变变更的演示展示工具能力。
原文摘要(Abstract)

Commits often involve refactorings—behavior-preserving code modifications aiming at software design improvements. Refactoring operations pose a challenge to code reviewers, as distinguishing them from behavior-altering changes is often not a trivial task. Accordingly, research on automated refactoring detection tools has flourished over the past two decades, however, the majority of suggested tools is limited to Java projects. In this work, we present RefactoringMiner++, a refactoring detection tool based on the current state of the art: RefactoringMiner 3. While the latter focuses exclusively on Java, our tool is—to the best of our knowledge—the first publicly available refactoring detection tool for C++ projects. Being based on a refactoring detector for Java projects, our tool lacks support for many refactorings specific to C++. The most common language-independent refactoring types, however, are supported and even several language incompatibilities were reconciled. RefactoringMiner's thorough evaluation provides confidence in our tool's performance. In addition, we test RefactoringMiner++ on a small seeded dataset and demonstrate the tool's capability in a short demo involving both refactorings and behavior-altering changes. A screencast demonstrating our tool can be found at https://www.youtube.com/watch?v=tFTysQfGYSM.

链接与引用

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

BibTeX
@inproceedings{paperbot8994,
  title = {Refactoring Detection in C++ Programs with RefactoringMiner++},
  author = {Benjamin Ritz and Aleksandar Karakaš and Denis Helic},
  booktitle = {FSE},
  year = {2025},
  doi = {10.1145/3696630.3728602}
}