Automated Migration of Build Scripts using Dynamic Analysis and Search-Based Refactoring
The efficiency of a build system is an important enabler of the productivity of software developers. As a result, developer teams have been adopting build systems that allow them to maximize build parallelization. However, migrating the existing legacy build scripts to new build systems is tedious and error-prone. Yet, there has been no prior work that automate migration of build scripts.
This paper proposes the first approach for migrating legacy build scripts to new build systems. Our approach works in two phases. In the first phase, from a set of build execution traces, we synthesize build scripts that accurately capture the intent of the original build. However, the synthesized build scripts are typically long and hard to maintain. In the second phase, we apply refactorings that raise the level of abstraction of the synthesized scripts (e.g., extracting common code). As the application order of refactorings may lead to different build scripts, we use a search-based approach that explores various refactoring sequences to identify the best (e.g., shortest) build script. We optimize search-based refactoring with state matching and partial-order reduction to explore more sequences in the same amount of time. We implemented the proposed two-phase migration approach in a tool, called Metamorphosis, which has recently been used within Microsoft.
Conference DayThu 23 OctDisplayed time zone: Tijuana, Baja California change
15:30 - 17:00
|Adaptive LL(*) Parsing: The Power of Dynamic Analysis|
Terence ParrUniversity of San Francisco, Sam HarwellUniversity of Texas at Austin, Kathleen FisherTufts UniversityLink to publication File Attached
|Automated Migration of Build Scripts using Dynamic Analysis and Search-Based Refactoring|
Milos GligoricUniversity of Illinois at Urbana-Champaign, Wolfram SchulteMicrosoft, Chandra PrasadMicrosoft, Danny van VelzenMicrosoft, Iman NarasamdyaMicrosoft, Ben LivshitsMicrosoft ResearchLink to publication
|Mix10: Compiling MATLAB to X10 for High Performance|
OOPSLALink to publication
|Staged Parser Combinators for Efficient Data Processing|
Manohar JonnalageddaEPFL, Switzerland, Thierry CoppeyEPFL, Switzerland; Google, Sandro StuckiEPFL, Switzerland, Tiark RompfPurdue & Oracle Labs, Martin OderskyEcole Polytechnique Federale de LausanneLink to publication