Automating Program Transformations based on Examples of Systematic Edits

38
Опубликовано 27 июня 2016, 21:18
The cost of software maintenance is rising dramatically and has been estimated to account for more than 90% of the total cost for software. During software maintenance, developers fix bugs, add features, migrate applications to new settings, and refactor code. Recent studies show that many code changes are similar, but not identical, and are applied to multiple locations. Automatically making these systematic edits will significantly improve programmer productivity and software quality. In this talk, I will present approaches to automate program transformations based on exemplar code changes provided by developers. By inferring systematic edits and relevant context from one or more exemplar changes, my automated approaches can (1) apply similar changes to other locations, (2) locate code that requires similar changes, and (3) refactor code which undergoes systematic edits. The combination of these techniques opens a new way of helping developers automate tedious and error-prone tasks. These techniques have the potential to guide automated software development and maintenance activities based on existing code changes mined from version histories for bug fixes, feature additions, refactoring, and software migration.
автотехномузыкадетское