Code Clone Refactoring in C# with Lambda Expressions
By: Takuto Kawamoto, Yoshiki Higo
"Extract Method" refactoring is a technique for consolidating code clones. Parameterization approaches are used to extract a single method from multiple code clones that contain differences. This approach parameterizes expressions and behaviors within a method. In particular, behavior parameterization has been extensively studied in Java programs, but little research has been conducted on other programming languages. Lambda expressions can be used to parameterize behaviors, but the specifications of each programming language significantly affect the applicability of this technique. Therefore, the optimal "Extract Method" approach may vary depending on the programming language. In this study, we propose a C#-specific technique that uses lambda expressions to analyze and consolidate code clones. We evaluated our proposed method by applying it to code clones detected by the NiCad clone detector and measuring how many of them could be successfully consolidated. In total, 2,217 clone pairs from 22 projects were included in our evaluation. For the clone pairs determined to be refactorable, we also attempted refactoring actually. The proposed approach determined that 35.0% of all clone pairs were suitable for refactoring. Among these, 28.9% were successfully refactored.
Similar Papers
Code Refactoring with LLM: A Comprehensive Evaluation With Few-Shot Settings
Software Engineering
Makes computer code cleaner and easier to fix.
Teaching Code Refactoring Using LLMs
Software Engineering
Helps students learn to fix computer code better.
Refactoring with LLMs: Bridging Human Expertise and Machine Understanding
Software Engineering
Helps computers fix messy code automatically.