GitHub Copilot:完美的代码补全器吗?
软件工程
2024-06-18 v1 人工智能
摘要
本文旨在基于LeetCode题库评估GitHub Copilot生成代码的质量,我们使用自定义的自动化框架。我们针对4种编程语言:Java、C++、Python3和Rust进行评估。旨在评估Copilot在代码生成阶段的可靠性、生成代码的正确性以及其对编程语言、问题难度级别和问题主题的依赖性。除此之外,我们还评估了代码的时间和内存效率,并将其与平均人类结果进行比较。总体而言,我们为每种编程语言生成1760个问题的解答,并对Copilot对每个问题的所有建议进行评估,结果为5个月内超过50000次提交。我们发现,Copilot成功解决了大多数问题。然而,Copilot在Java和C++中生成代码的成功率高于Python3和Rust。此外,针对Python3,Copilot在代码生成阶段表现相当不可靠。我们还发现,Copilot的top-ranked建议并不总是最佳选择。此外,我们分析了问题主题对正确率的影响。最后,根据LeetCode的统计信息,我们可以得出结论:Copilot生成的代码比平均人类更高效。
引用
@article{arxiv.2406.11326,
title = {GitHub Copilot: the perfect Code compLeeter?},
author = {Ilja Siroš and Dave Singelée and Bart Preneel},
journal= {arXiv preprint arXiv:2406.11326},
year = {2024}
}
备注
10 pages, 6 figures. Code available: https://github.com/IljaSir/CopilotSolverForLeetCode