测试GPT-4在19种语言中生成代码的能力,发现越复杂越难,热门语言表现更好。
Evaluation of the Code Generation Capabilities of ChatGPT 4: A Comparative Analysis in 19 Programming Languages
- 用LeetCode 188题测试,每题给3次机会并反馈修正。
- 整体正确率仅39.67%,难题成功率大幅下降。
- 对主流语言更擅长,但低抽象、静态类型语言更优。
本学士论文研究ChatGPT 4在19种编程语言中的代码生成能力。通过量化实验分析了三类难度问题的解题率、错误类型及代码质量(运行时间和内存效率)。从LeetCode平台选取188个编程题,每次题目给予三次尝试并提供反馈。结果表明,ChatGPT 4成功解决39.67%的任务,且随着问题复杂度上升,成功率显著下降;在所有语言中,难题均面临较大挑战。模型在主流语言中表现更佳,可能得益于更丰富高质量的训练数据。解题率显示其偏好低抽象层级和静态类型语言。对流行语言,最常见的错误是“答案错误”(Wrong Answer);对冷门语言,则以编译和运行时错误为主,反映对其语法结构理解偏差。模型在所有语言中运行效率均高于平均水平,倾向静态类型与低抽象语言。内存效率差异显著:14种语言表现优于平均,5种低于平均。其内存使用呈现轻微偏向低抽象语言,同时倾向于动态类型语言。未来研究建议扩大任务量、迭代次数及冷门语言覆盖范围,并深入分析模型在代码解释、摘要、调试及复杂实用代码开发方面的能力。
原文摘要 · Abstract (English)
This bachelor's thesis examines the capabilities of ChatGPT 4 in code generation across 19 programming languages. The study analyzed solution rates across three difficulty levels, types of errors encountered, and code quality in terms of runtime and memory efficiency through a quantitative experiment. A total of 188 programming problems were selected from the LeetCode platform, and ChatGPT 4 was given three attempts to produce a correct solution with feedback. ChatGPT 4 successfully solved 39.67% of all tasks, with success rates decreasing significantly as problem complexity increased. Notably, the model faced considerable challenges with hard problems across all languages. ChatGPT 4 demonstrated higher competence in widely used languages, likely due to a larger volume and higher quality of training data. The solution rates also revealed a preference for languages with low abstraction levels and static typing. For popular languages, the most frequent error was "Wrong Answer," whereas for less popular languages, compiler and runtime errors prevailed, suggesting frequent misunderstandings and confusion regarding the structural characteristics of these languages. The model exhibited above-average runtime efficiency in all programming languages, showing a tendency toward statically typed and low-abstraction languages. Memory efficiency results varied significantly, with above-average performance in 14 languages and below-average performance in five languages. A slight preference for low-abstraction languages and a leaning toward dynamically typed languages in terms of memory efficiency were observed. Future research should include a larger number of tasks, iterations, and less popular languages. Additionally, ChatGPT 4's abilities in code interpretation and summarization, debugging, and the development of complex, practical code could be analyzed further. ---- Diese Bachelorarbeit untersucht die Fähigkeiten von ChatGPT 4 zur Code-Generierung in 19 Programmiersprachen. Betrachtet wurden die Lösungsraten zwischen drei Schwierigkeitsgraden, die aufgetretenen Fehlerarten und die Qualität des Codes hinsichtlich der Laufzeit- und Speichereffizienz in einem quantitativen Experiment. Dabei wurden 188 Programmierprobleme der Plattform LeetCode entnommen, wobei ChatGPT 4 jeweils drei Versuche hatte, mittels Feedback eine korrekte Lösung zu generieren. ChatGPT 4 löste 39,67 % aller Aufgaben erfolgreich, wobei die Erfolgsrate mit zunehmendem Schwierigkeitsgrad deutlich abnahm und bei komplexen Problemen in allen Sprachen signifikante Schwierigkeiten auftraten. Das Modell zeigte eine höhere Kompetenz in weit verbreiteten Sprachen, was wahrscheinlich auf eine größere Menge und höhere Qualität der Trainingsdaten zurückzuführen ist. Bezüglich der Lösungsraten zeigte das Modell zudem eine Präferenz für Sprachen mit niedrigem Abstraktionsniveau und statischer Typisierung. Bei Sprachen hoher Popularität trat der Fehler Wrong Answer am häufigsten auf, während bei weniger populären Sprachen Compiler- und Laufzeitfehler überwogen, was auf häufige Missverständnisse und Verwechslungen bezüglich der spezifischen strukturellen Eigenschaften dieser Sprachen zurückzuführen ist. ChatGPT 4 demonstrierte in allen Programmiersprachen eine überdurchschnittliche Laufzeiteffizienz und tendierte diesbezüglich erneut zu statisch typisierten und niedrig abstrahierten Sprachen. Die Werte zur Speichereffizienz variierten erheblich, wobei in 14 Sprachen überdurchschnittliche und in fünf Sprachen unterdurchschnittliche Werte erzielt wurden. Es zeigte sich diesbezüglich eine leichte Tendenz zugunsten von niedrig abstrahierten sowie eine Präferenz zu dynamisch typisierten Sprachen. Zukünftige Forschung sollte eine höhere Anzahl an Aufgaben, Iterationen und unpopulären Sprachen einbeziehen. Darüber hinaus könnten die Fähigkeiten von ChatGPT 4 in der Code-Interpretation und -Zusammenfassung, im Debugging und in der Entwicklung komplexer, praxisbezogener Codes analysiert werden.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。