Evaluation of the Code Generation Capabilities of ChatGPT 4: A Comparative Analysis in 19 Programming Languages

  • 2025-01-04 17:17:01
  • L. C. Gilbert
  • 0

Abstract

This bachelor's thesis examines the capabilities of ChatGPT 4 in codegeneration across 19 programming languages. The study analyzed solution ratesacross three difficulty levels, types of errors encountered, and code qualityin terms of runtime and memory efficiency through a quantitative experiment. Atotal of 188 programming problems were selected from the LeetCode platform, andChatGPT 4 was given three attempts to produce a correct solution with feedback.ChatGPT 4 successfully solved 39.67% of all tasks, with success ratesdecreasing significantly as problem complexity increased. Notably, the modelfaced considerable challenges with hard problems across all languages. ChatGPT4 demonstrated higher competence in widely used languages, likely due to alarger volume and higher quality of training data. The solution rates alsorevealed a preference for languages with low abstraction levels and statictyping. 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 structuralcharacteristics of these languages. The model exhibited above-average runtimeefficiency in all programming languages, showing a tendency toward staticallytyped and low-abstraction languages. Memory efficiency results variedsignificantly, with above-average performance in 14 languages and below-averageperformance in five languages. A slight preference for low-abstractionlanguages and a leaning toward dynamically typed languages in terms of memoryefficiency were observed. Future research should include a larger number oftasks, iterations, and less popular languages. Additionally, ChatGPT 4'sabilities in code interpretation and summarization, debugging, and thedevelopment of complex, practical code could be analyzed further. ---- Diese Bachelorarbeit untersucht die F\"ahigkeiten von ChatGPT 4 zurCode-Generierung in 19 Programmiersprachen. Betrachtet wurden dieL\"osungsraten zwischen drei Schwierigkeitsgraden, die aufgetretenenFehlerarten und die Qualit\"at des Codes hinsichtlich der Laufzeit- undSpeichereffizienz in einem quantitativen Experiment. Dabei wurden 188Programmierprobleme der Plattform LeetCode entnommen, wobei ChatGPT 4 jeweilsdrei Versuche hatte, mittels Feedback eine korrekte L\"osung zu generieren.ChatGPT 4 l\"oste 39,67 % aller Aufgaben erfolgreich, wobei die Erfolgsrate mitzunehmendem Schwierigkeitsgrad deutlich abnahm und bei komplexen Problemen inallen Sprachen signifikante Schwierigkeiten auftraten. Das Modell zeigte eineh\"ohere Kompetenz in weit verbreiteten Sprachen, was wahrscheinlich auf einegr\"o{\ss}ere Menge und h\"ohere Qualit\"at der Trainingsdatenzur\"uckzuf\"uhren ist. Bez\"uglich der L\"osungsraten zeigte das Modell zudemeine Pr\"aferenz f\"ur Sprachen mit niedrigem Abstraktionsniveau und statischerTypisierung. Bei Sprachen hoher Popularit\"at trat der Fehler Wrong Answer amh\"aufigsten auf, w\"ahrend bei weniger popul\"aren Sprachen Compiler- undLaufzeitfehler \"uberwogen, was auf h\"aufige Missverst\"andnisse undVerwechslungen bez\"uglich der spezifischen strukturellen Eigenschaften dieserSprachen zur\"uckzuf\"uhren ist. ChatGPT 4 demonstrierte in allenProgrammiersprachen eine \"uberdurchschnittliche Laufzeiteffizienz undtendierte diesbez\"uglich erneut zu statisch typisierten und niedrigabstrahierten Sprachen. Die Werte zur Speichereffizienz variierten erheblich,wobei in 14 Sprachen \"uberdurchschnittliche und in f\"unf Sprachenunterdurchschnittliche Werte erzielt wurden. Es zeigte sich diesbez\"uglicheine leichte Tendenz zugunsten von niedrig abstrahierten sowie eine Pr\"aferenzzu dynamisch typisierten Sprachen. Zuk\"unftige Forschung sollte eine h\"ohereAnzahl an Aufgaben, Iterationen und unpopul\"aren Sprachen einbeziehen.Dar\"uber hinaus k\"onnten die F\"ahigkeiten von ChatGPT 4 in derCode-Interpretation und -Zusammenfassung, im Debugging und in der Entwicklungkomplexer, praxisbezogener Codes analysiert werden.

 

Quick Read (beta)

loading the full paper ...