2013 IEEE International Conference on Software Maintenance 2013
DOI: 10.1109/icsm.2013.93
|View full text |Cite
|
Sign up to set email alerts
|

Large-Scale Automated Refactoring Using ClangMR

Abstract: Maintaining large codebases can be a challenging endeavour. As new libraries, APIs and standards are introduced, old code is migrated to use them. To provide as clean and succinct an interface as possible for developers, old APIs are ideally removed as new ones are introduced. In practice, this becomes difficult as automatically finding and transforming code in a semantically correct way can be challenging, particularly as the size of a codebase increases.In this paper, we present a real-world implementation o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2018
2018
2024
2024

Publication Types

Select...
4
2
2

Relationship

0
8

Authors

Journals

citations
Cited by 26 publications
(8 citation statements)
references
References 7 publications
0
8
0
Order By: Relevance
“…Concurrent with FindBugs experimentation, the C++ workflow at Google was improving with the addition of new checks to the Clang compiler. The Clang team implemented new compiler checks, along with suggested fixes, then used ClangMR 38 to run the updated compiler in a distributed way over the entire Google codebase, refine checks, and programmatically fix all existing instances of a problem in the codebase. Once the codebase was cleansed of an issue, the Clang team enabled the new diagnostic as a compiler error (not a warning, which the Clang team found Google developers ignored) to break the build, a report difficult to disregard.…”
Section: Make It a Compiler Workflowmentioning
confidence: 99%
“…Concurrent with FindBugs experimentation, the C++ workflow at Google was improving with the addition of new checks to the Clang compiler. The Clang team implemented new compiler checks, along with suggested fixes, then used ClangMR 38 to run the updated compiler in a distributed way over the entire Google codebase, refine checks, and programmatically fix all existing instances of a problem in the codebase. Once the codebase was cleansed of an issue, the Clang team enabled the new diagnostic as a compiler error (not a warning, which the Clang team found Google developers ignored) to break the build, a report difficult to disregard.…”
Section: Make It a Compiler Workflowmentioning
confidence: 99%
“…However, Tricorder fixes are typically manually specified along with the analysis check, whereas Sapfixes are detected and checked by automatically-constructed tests as with SAPFIX. Automated refactoring has also been widely studied [60] and has found deployment at scale in industry [61]. However, refactoring seeks to apply known-to-be semantically safe changes; essentially altering syntax without disrupting semantics.…”
Section: Automated Fault Fixing (Repair)mentioning
confidence: 99%
“…Major companies like Google (71) and Microsoft (35) have employed code refactoring for leveraging the internal quality of their software projects. As a software development practice, code refactoring consists of applying two or more transformations on the code structure of a given project (25).…”
Section: Code Refactoring and Transformation Typesmentioning
confidence: 99%
“…Therefore, characterizing the actual effect of batches on smell introduction and removal is essential to guide developers in enhancing code structures via code refactoring. In fact, code refactoring has been largely employed by the industry for removing poor code structures (35,46,60,71). In this context, a previous study (7) has presented the very first study aimed to empirically assess the batch effect on code smell introduction and removal.…”
Section: An Empirical Exploration Of Batch Characteristics In Realmentioning
confidence: 99%
See 1 more Smart Citation