Type migration is a refactoring activity in which an existing type is replaced with another one throughout the source code. Manually performing type migration is tedious as programmers need to find all instances of the type to be migrated, along with its dependencies that propagate over assignment operations, method hierarchies, and subtypes. Existing automated approaches for type migration are not adequate for large codebases – they perform an intensive whole-program analysis that does not scale. If we could represent the type structure of the program as graphs, then we could employ a MapReduce parallel and distributed process that scales to hundreds of millions of LOC. We implemented this approach as an IDE-independent tool called T2R, which integrates with most build systems. We evaluated T2R’s accuracy, usefulness and scalability on seven open source projects and one proprietary codebase of 300M LOC. T2R generated 130 type migration patches with 97% accuracy, out of which 98% were accepted by the original developers.
Fri 31 MayDisplayed time zone: Eastern Time (US & Canada) change
16:00 - 17:20 | Program TransformationsNew Ideas and Emerging Results / Technical Track / Papers at Van-Horne Chair(s): Cindy Rubio-González University of California, Davis | ||
16:00 20mTalk | Global Optimization of Numerical Programs via Prioritized Stochastic Algebraic TransformationsTechnical Track Technical Track Xie Wang Nanjing University, Huaijin Wang Nanjing University, Zhendong Su ETH Zurich, Enyi Tang Nanjing University, Xin Chen Nanjing University, Weijun Shen Nanjing University, Zhenyu Chen Nanjing University, Linzhang Wang , Xianpei Zhang Nanjing University, Xuandong Li Nanjing University | ||
16:20 20mTalk | Type Migration in Ultra-Large-Scale CodebasesTechnical Track Technical Track Ameya Ketkar Oregon State University, USA, Ali Mesbah University of British Columbia, Davood Mazinanian University of British Columbia, Danny Dig School of EECS at Oregon State University, Eddie Aftandilian Google Pre-print | ||
16:40 20mTalk | Dynamic Slicing for AndroidTechnical Track Technical Track Tanzirul Azim Microsoft, USA, Arash Alavi University of California, Riverside, Iulian Neamtiu New Jersey Institute of Technology, Rajiv Gupta UC Riverside | ||
17:00 10mTalk | Conditional Compilation is Dead, Long Live Conditional Compilation!NIER New Ideas and Emerging Results Pre-print | ||
17:10 10mTalk | Discussion Period Papers |