paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Revizor: A Data-Driven Approach to Automate Frequent Code Changes Based on Graph Matching

Revizor:一种基于图匹配的数据驱动方法,用于自动化频繁代码变更
ASE 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)2021匹配度 2/10 · 论文聚焦从版本历史挖掘重复代码变更模式并在 PyCharm 中推荐与自动执行 quick fix,属于软件工程/IDE 工具与代码变更模式挖掘,未涉及 LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析,仅与 PL/开发者工具背景有微弱关联。引用 1 inbox
Oleg Smirnov, Artyom Lobanov, Yaroslav Golubev, Elena Tikhomirova, Timofey Bryksin
crossref: 2026-09-12

AI 速览

一句话:提出 Revizor,用图表示代码变更并从版本历史挖掘重复模式,在 PyCharm 中推荐并自动执行快速修复。

开发者常在项目中重复进行相同或相似的代码修改,这些重复变更构成可复用的变更模式。本文提出 Revizor,旨在为 PyCharm 构建自定义插件:插件可接收从开源仓库版本历史中收集的变更模式,在编辑器中高亮模式可应用的位置;若开发者接受快速修复,插件自动完成相应编辑。该方法采用基于图的代码变更表示,因此能够支持复杂的分布式代码模式,而不仅限于局部连续修改。作者构建了工具与测试插件原型,并邀请有经验的开发者评估其可用性与性能,反馈积极。工具源代码与插件原型已在 GitHub 开源。

问题
开发者经常重复实施相同的代码变更,但缺少从版本历史中挖掘这些模式并在 IDE 中主动推荐应用的工具。
方法
Revizor 使用图结构表示代码变更以捕捉复杂分布式模式,并据此生成 PyCharm 插件,在编辑器中高亮可应用位置并自动执行快速修复。
评估
作者实现了 Revizor 工具与测试插件原型,并由有经验的开发者对其可用性和性能进行主观评估,获得了积极评价。
原文摘要(Abstract)

Many code changes that developers make in their projects are repeated and constitute recurrent change patterns. It is of interest to collect such patterns from the version history of open-source repositories and suggest the most useful of them as quick fixes. In this paper, we present Revizor—a tool aimed to build custom plugins for PyCharm, a popular Python IDE. A Revizor-based plugin can take change patterns and highlight potential places for their application in the developer’s code editor. If the developer accepts the quick fix, the plugin automatically performs the edit. Our approach uses a graph-based representation of code changes, which allows it to support complex distributed code patterns. Experienced developers have also rated the usability and the performance of such Revizor-based plugin positively.The source code of the tool and test plugin prototype are available on GitHub: https://github.com/JetBrains-Research/revizor. A demonstration video with a short tool description can be found on YouTube: https://youtu.be/5eLs14nco7E.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6481,
  title = {Revizor: A Data-Driven Approach to Automate Frequent Code Changes Based on Graph Matching},
  author = {Oleg Smirnov and Artyom Lobanov and Yaroslav Golubev and Elena Tikhomirova and Timofey Bryksin},
  booktitle = {ASE},
  year = {2021},
  doi = {10.1109/ase51524.2021.9678635}
}