GitHub Copilot: the perfect Code compLeeter?

2024年06月17日
  • 简介
    本文旨在使用自定义自动化框架,基于LeetCode问题集评估GitHub Copilot生成的代码质量。我们评估Copilot在4种编程语言(Java、C++、Python3和Rust)中的结果。我们的目标是评估Copilot在代码生成阶段的可靠性、生成代码的正确性以及其对编程语言、问题难度和问题主题的依赖性。此外,我们还评估了代码的时间和内存效率,并将其与平均人类结果进行比较。总共,我们为每种编程语言生成了1760个问题的解决方案,并评估了每个问题的所有Copilot建议,导致在2个月的时间内向LeetCode提交了超过50000个提交。我们发现Copilot成功解决了大多数问题。然而,Copilot在Java和C++中生成代码的成功率要高于Python3和Rust。此外,在Python3的情况下,Copilot在代码生成阶段表现出相当不可靠。我们还发现Copilot的排名靠前的建议并不总是最好的。此外,我们还分析了问题主题如何影响正确率。最后,根据LeetCode的统计信息,我们可以得出结论,Copilot生成的代码比平均人类更有效率。
  • 图表
  • 解决问题
    评估GitHub Copilot在LeetCode问题集上生成代码的质量
  • 关键思路
    使用自动化框架评估Copilot在代码生成阶段的可靠性和生成代码的正确性,以及其对编程语言、问题难度和主题的依赖性。同时评估代码的时间和内存效率,并与人类平均结果进行比较。
  • 其它亮点
    论文评估了Copilot在Java、C++、Python3和Rust四种编程语言上的表现,共生成了1760个问题的解决方案,并评估了每个问题的所有Copilot建议。结果表明,Copilot成功解决了大多数问题,但在Python3和Rust方面表现不佳。此外,Copilot的排名靠前的建议并不总是最好的,问题的主题也会影响代码的正确率。最后,根据来自LeetCode的统计信息,可以得出结论,Copilot生成的代码比平均人类更高效。
  • 相关研究
    与该领域相关的其他研究包括:《DeepCoder: Learning to Write Programs》、《Neural Program Synthesis》、《Code Generation Using a Transformer-Based Learned Model from Natural Language》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论