Refactoring Programs Using Large Language Models with Few-Shot Examples

2023年11月20日
  • 简介
    一个更简单直接的程序是提高可维护性、编写安全和无错误程序的关键因素。然而,由于工作量大和破坏已有程序的风险,程序员不愿意进行代码重构,这也导致潜在的学习经验的流失。为了缓解这种情况,我们展示了使用大型语言模型(LLM)GPT-3.5 来建议用户编写的 Python 程序的简化版本的应用,旨在鼓励用户学习如何编写更好的程序。我们提出了一种方法,利用 LLM 的少样本提示,通过在先前的单次示例评估基础上选择最适合每个目标编程问题的代码重构示例。定量评估表明,通过生成每个程序10个候选项,95.68% 的程序可以进行重构,平均圈复杂度减少了17.35%,平均行数减少了25.84%,过滤掉只生成语义正确的程序。此外,定性评估显示出了出色的代码格式化能力,同时还观察到了删除或翻译注释等不必要的行为。
  • 图表
  • 解决问题
    使用大型语言模型GPT-3.5来建议用户编写更简单的Python程序,以鼓励用户学习如何编写更好的程序。这是一个新问题吗?
  • 关键思路
    使用GPT-3.5生成少量示例,提示用户进行代码重构,以减少程序的复杂性和行数,并提高程序的可读性。通过选择最适合每个目标编程问题的代码重构示例,以减少破坏已有程序的风险。
  • 其它亮点
    论文使用GPT-3.5生成少量示例,提示用户进行代码重构,以减少程序的复杂性和行数,并提高程序的可读性。研究表明,95.68%的程序可以通过生成10个候选项来进行重构,平均圆形复杂度降低了17.35%,平均行数减少了25.84%。实验结果显示出色的代码格式化能力。研究者还观察到一些不必要的行为,如删除或翻译注释。
  • 相关研究
    最近的研究包括使用神经网络进行代码重构的工作,如“Deep Code Comment Generation”和“CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing”。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论