• DocumentCode
    650763
  • Title

    Large-Scale Automated Refactoring Using ClangMR

  • Author

    Wright, Hyrum K. ; Jasper, Daniel ; Klimek, Malgorzata ; Carruth, Chandler ; Zhanyong Wan

  • Author_Institution
    Google, Inc., Mountain View, CA, USA
  • fYear
    2013
  • fDate
    22-28 Sept. 2013
  • Firstpage
    548
  • Lastpage
    551
  • Abstract
    Maintaining large code bases 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 code base increases. In this paper, we present a real-world implementation of a system to refactor large C++ code bases efficiently. A combination of the Clang compiler framework and the MapReduce parallel processor, ClangMR enables code maintainers to easily and correctly transform large collections of code. We describe the motivation behind such a tool, its implementation and then present our experiences using it in a recent API update with Google´s C++ code base.
  • Keywords
    C++ language; application program interfaces; parallel programming; program compilers; software maintenance; API update; Clang compiler framework; ClangMR; Google; MapReduce parallel processor; large C++ codebases; large-scale automated refactoring; Conferences; Google; Indexes; Semantics; Software systems; Standards; Transforms;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2013 29th IEEE International Conference on
  • Conference_Location
    Eindhoven
  • ISSN
    1063-6773
  • Type

    conf

  • DOI
    10.1109/ICSM.2013.93
  • Filename
    6676954