Refactoring Programs Using Large Language Models with Few-Shot Examples
Atsushi Shirafuji, Yusuke Oda, Jun Suzuki, Makoto Morishita, Yutaka, Watanobe

TL;DR
This paper explores using GPT-3.5 with few-shot prompting to automatically refactor Python programs into simpler, more maintainable versions, achieving significant complexity reduction while maintaining correctness.
Contribution
It introduces a novel method for selecting optimal refactoring examples for each problem, improving the effectiveness of LLM-based code simplification.
Findings
95.68% of programs can be refactored with 10 candidates
17.35% reduction in cyclomatic complexity on average
25.84% decrease in lines of code after filtering
Abstract
A less complex and more straightforward program is a crucial factor that enhances its maintainability and makes writing secure and bug-free programs easier. However, due to its heavy workload and the risks of breaking the working programs, programmers are reluctant to do code refactoring, and thus, it also causes the loss of potential learning experiences. To mitigate this, we demonstrate the application of using a large language model (LLM), GPT-3.5, to suggest less complex versions of the user-written Python program, aiming to encourage users to learn how to write better programs. We propose a method to leverage the prompting with few-shot examples of the LLM by selecting the best-suited code refactoring examples for each target programming problem based on the prior evaluation of prompting with the one-shot example. The quantitative evaluation shows that 95.68% of programs can be…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Advanced Malware Detection Techniques
MethodsRefunds@Expedia|||How do I get a full refund from Expedia? · {Dispute@FaQ-s}How to file a dispute with Expedia? · 15 Ways to Contact How can i speak to someone at Delta Airlines · Attention Is All You Need · Cosine Annealing · Dense Connections · Dropout · Softmax · Linear Warmup With Cosine Annealing · Linear Layer
