Standard

Querying distilled code changes to extract executable transformations. / Stevens, Reinout; Molderez, Tim Christiaan; De Roover, Coen.

In: Empirical Software Engineering, Vol. 24, No. 1, 15.02.2019, p. 491-535.

Research output: Contribution to journalArticleResearchpeer-review

Harvard

APA

Vancouver

Author

Stevens, Reinout ; Molderez, Tim Christiaan ; De Roover, Coen. / Querying distilled code changes to extract executable transformations. In: Empirical Software Engineering. 2019 ; Vol. 24, No. 1. pp. 491-535.

BibTeX

@article{6099bdf33aa743e3bfcfa0ca97153bc9,
title = "Querying distilled code changes to extract executable transformations",
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. We show that our approach is able to recall different implementation variants of the same source code evolution in histories of different software projects. We also evaluate the expressiveness and ease-of-use of our approach in a user study.",
keywords = "Change distilling, Change querying, Logic meta-programming",
author = "Reinout Stevens and Molderez, {Tim Christiaan} and {De Roover}, Coen",
year = "2019",
month = "2",
day = "15",
doi = "10.1007/s10664-018-9644-3",
language = "English",
volume = "24",
pages = "491--535",
journal = "Empirical Software Engineering",
issn = "1382-3256",
publisher = "Springer Verlag",
number = "1",

}

RIS

TY - JOUR

T1 - Querying distilled code changes to extract executable transformations

AU - Stevens, Reinout

AU - Molderez, Tim Christiaan

AU - De Roover, Coen

PY - 2019/2/15

Y1 - 2019/2/15

N2 - 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. We show that our approach is able to recall different implementation variants of the same source code evolution in histories of different software projects. We also evaluate the expressiveness and ease-of-use of our approach in a user study.

AB - 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. We show that our approach is able to recall different implementation variants of the same source code evolution in histories of different software projects. We also evaluate the expressiveness and ease-of-use of our approach in a user study.

KW - Change distilling

KW - Change querying

KW - Logic meta-programming

UR - http://www.scopus.com/inward/record.url?scp=85053271297&partnerID=8YFLogxK

U2 - 10.1007/s10664-018-9644-3

DO - 10.1007/s10664-018-9644-3

M3 - Article

VL - 24

SP - 491

EP - 535

JO - Empirical Software Engineering

JF - Empirical Software Engineering

SN - 1382-3256

IS - 1

ER -

ID: 39131650