2018
DOI: 10.48550/arxiv.1803.03806
|View full text |Cite
Preprint
|
Sign up to set email alerts
|

Learning Quick Fixes from Code Repositories

Abstract: Code analyzers such as Error Prone and FindBugs detect code patterns symptomatic of bugs, performance issues, or bad style. These tools express patterns as quick fixes that detect and rewrite unwanted code. However, it is difficult to come up with new quick fixes and decide which ones are useful and frequently appear in real code. We propose to rely on the collective wisdom of programmers and learn quick fixes from revision histories in software repositories. We present REVISAR, a tool for discovering common J… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
42
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 15 publications
(42 citation statements)
references
References 29 publications
0
42
0
Order By: Relevance
“…2 At first blush, this may look like a pattern matching or clone detection problem, where a code fragment that is a candidate for refactoring might be a clone of code that was refactored in the past to introduce an API call. Another candidate approach might aim to extract generalizable code transformations from a small set of specific examples of transformations [4,10,21,22,26,31,32].…”
Section: Finding Missed Refactoring Opportunitiesmentioning
confidence: 99%
See 2 more Smart Citations

Mining Idioms in the Wild

Sivaraman,
Abreu,
Scott
et al. 2021
Preprint
“…2 At first blush, this may look like a pattern matching or clone detection problem, where a code fragment that is a candidate for refactoring might be a clone of code that was refactored in the past to introduce an API call. Another candidate approach might aim to extract generalizable code transformations from a small set of specific examples of transformations [4,10,21,22,26,31,32].…”
Section: Finding Missed Refactoring Opportunitiesmentioning
confidence: 99%
“…In recent years, we have seen an emerging trend of tools and techniques that synthesize program transformations from examples of code edits [4,10,21,22,26,31,32]. The synthesized transformation should satisfy the given examples while producing correct edits on unseen inputs.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation

Mining Idioms in the Wild

Sivaraman,
Abreu,
Scott
et al. 2021
Preprint
“…The algorithms described in all of these works can be used to compute what we will call ⊑-common generalizations below in the present paper. Although none of these works develop a general (non-equational) taxonomy allowing to extend the results beyond that simple setting, nor discusses variable-or injectivity-based variants of antiunification operators, their usages do point out other interesting (and recent) applications of anti-unification when focused on unordered goals, namely detection of recursion schemes in functional programs (as explained in [2]) and techniques for learning bugfixes from software code repositories (an example being [27]).…”
Section: Motivation and Objectivesmentioning
confidence: 99%
“…Rolim et al (2017) use such clusters to synthesize small programs that perform the edit. The approach is based on Rolim et al (2018) extract manually designed syntactic features from code and cluster over multiple changes to find repeatable edit rules. Similarly, Paletov et al (2018) extract syntactic features specifically targeting edits in cryptography API protocols.…”
Section: Related Workmentioning
confidence: 99%