Extracting Executable Transformations from Distilled Code Changes. Stevens, R. & De Roover, C. In Bavota, G., Pinzger, M., & Marcus, A., editors, SANER 2017 - 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering, pages 171–181, 3, 2017.
doi  abstract   bibtex   
Change distilling algorithms compute a sequence of fine-grained changes that, when executed in order, transform a given source AST into a given target AST. The resulting change sequences are used in the field of mining software repositories to study source code evolution. Unfortunately, detecting and specifying source code evolutions in such a change sequence is cumbersome. We therefore introduce a tool-supported approach that identifies minimal executable subsequences in a sequence of distilled changes that implement a particular evolution pattern, specified in terms of intermediate states of the AST that undergoes each change. This enables users to describe the effect of multiple changes, irrespective of their execution order, while ensuring that different change sequences that implement the same code evolution are recalled. Correspondingly, our evaluation is two-fold. Using examples, we demonstrate the expressiveness of specifying source code evolutions through intermediate ASTs. We also show that our approach is able to recall different implementation variants of the same source code evolution in open-source histories.
@inproceedings{6b8496b1d5894f65885e022bddddf24f,
  title     = "Extracting Executable Transformations from Distilled Code Changes",
  abstract  = "Change distilling algorithms compute a sequence of fine-grained changes that, when executed in order, transform a given source AST into a given target AST. The resulting change sequences are used in the field of mining software repositories to study source code evolution. Unfortunately, detecting and specifying source code evolutions in such a change sequence is cumbersome. We therefore introduce a tool-supported approach that identifies minimal executable subsequences in a sequence of distilled changes that implement a particular evolution pattern, specified in terms of intermediate states of the AST that undergoes each change. This enables users to describe the effect of multiple changes, irrespective of their execution order, while ensuring that different change sequences that implement the same code evolution are recalled. Correspondingly, our evaluation is two-fold. Using examples, we demonstrate the expressiveness of specifying source code evolutions through intermediate ASTs. We also show that our approach is able to recall different implementation variants of the same source code evolution in open-source histories.",
  author    = "Reinout Stevens and {De Roover}, Coen",
  year      = "2017",
  month     = "3",
  day       = "21",
  doi       = "10.1109/SANER.2017.7884619",
  language  = "English",
  isbn      = "978-1-5090-5501-2",
  pages     = "171--181",
  editor    = "Gabriele Bavota and Martin Pinzger and Andrian Marcus",
  booktitle = "SANER 2017 - 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering",
  edition   = "24",
}

Downloads: 0