Understanding Code Change with Micro-Changes
Lei Chen, Michele Lanza, Shinpei Hayashi

TL;DR
This paper introduces a micro-change-based approach to interpret code diffs, translating them into natural language descriptions to improve understanding of software changes, especially in conditional logic, through an automated detector.
Contribution
The paper presents a novel catalog of micro-changes and an automated detector to better interpret code diffs in natural language, aiding software comprehension.
Findings
The micro-change detector explains over 67% of code changes in studied repositories.
The approach simplifies understanding code diffs by translating them into natural language.
Focus on changes affecting conditional logic demonstrates effectiveness.
Abstract
A crucial activity in software maintenance and evolution is the comprehension of the changes performed by developers, when they submit a pull request and/or perform a commit on the repository. Typically, code changes are represented in the form of code diffs, textual representations highlighting the differences between two file versions, depicting the added, removed, and changed lines. This simplistic representation must be interpreted by developers, and mentally lifted to a higher abstraction level, that more closely resembles natural language descriptions, and eases the creation of a mental model of the changes. However, the textual diff-based representation is cumbersome, and the lifting requires considerable domain knowledge and programming skills. We present an approach, based on the concept of micro-change, to overcome these difficulties, translating code diffs into a series of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNatural Language Processing Techniques
