TY - GEN
T1 - Program sliding
AU - Ettinger, Ran
PY - 2012/1/1
Y1 - 2012/1/1
N2 - As program slicing is a technique for computing a subprogram that preserves a subset of the original program's functionality, program sliding is a new technique for computing two such subprograms, a slice and its complement, the co-slice. A composition of the slice and co-slice in a sequence is expected to preserve the full functionality of the original code. The co-slice generated by sliding is designed to reuse the slice's results, correctly, in order to avoid re-computation causing excessive code duplication. By isolating coherent slices of code, making them extractable and reusable, sliding is shown to be an effective step in performing advanced code refactorings. A practical sliding algorithm, based on the program dependence graph representation, is presented and evaluated through a manual sliding-based refactoring experiment on real Java code.
AB - As program slicing is a technique for computing a subprogram that preserves a subset of the original program's functionality, program sliding is a new technique for computing two such subprograms, a slice and its complement, the co-slice. A composition of the slice and co-slice in a sequence is expected to preserve the full functionality of the original code. The co-slice generated by sliding is designed to reuse the slice's results, correctly, in order to avoid re-computation causing excessive code duplication. By isolating coherent slices of code, making them extractable and reusable, sliding is shown to be an effective step in performing advanced code refactorings. A practical sliding algorithm, based on the program dependence graph representation, is presented and evaluated through a manual sliding-based refactoring experiment on real Java code.
KW - Program slicing
KW - co-slicing
KW - refactoring
KW - reuse
KW - sliding
UR - http://www.scopus.com/inward/record.url?scp=84879732807&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-31057-7_31
DO - 10.1007/978-3-642-31057-7_31
M3 - Conference contribution
AN - SCOPUS:84879732807
SN - 9783642310560
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 713
EP - 737
BT - ECOOP 2012 - Object-Oriented Programming
PB - Springer Verlag
T2 - 26th European Conference on Object-Oriented Programming, ECOOP 2012
Y2 - 11 June 2012 through 16 June 2012
ER -