Programmers often copy and paste code so that they can reuse the existing code to complete a similar task. Many times, modifications to the newly pasted code include renaming all instances of an identifier, such as a variable name, consistently throughout the fragment. When these modifications are done manually, undetected inconsistencies and errors can result in the code, for example, a single instance can be missed and mistakenly not renamed. To help programmers avoid making this type of copy-paste error, we created a tool, named CReN, to provide tracking and identifier renaming support within copy-and-paste clones in an integrated development environment (IDE). CReN tracks the code clones involved when copying and pasting occurs in the IDE and infers a set of rules based on the relationships between the identifiers in these code fragments. These rules capture the programmer's intentions, for example, that a particular group of identifiers should be renamed consistently together. Programmers can also provide feedback to improve the accuracy of the inferred rules by specifying that a particular instance of an identifier is to be renamed separately. We introduce our CReN tool, which is implemented as an Eclipse plug-in in Java.
[1]
Zhendong Su,et al.
Context-based detection of clone-related bugs
,
2007,
ESEC-FSE '07.
[2]
Martin P. Robillard,et al.
Tracking Code Clones in Evolving Software
,
2007,
29th International Conference on Software Engineering (ICSE'07).
[3]
Yuanyuan Zhou,et al.
CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code
,
2004,
OSDI.
[4]
Andrew Begel,et al.
Managing Duplicated Code with Linked Editing
,
2004,
2004 IEEE Symposium on Visual Languages - Human Centric Computing.
[5]
Michael I. Jordan,et al.
Bug isolation via remote program sampling
,
2003,
PLDI.