[논문 리뷰] Evaluierung der Code-Generierungsfähigkeiten von ChatGPT 4: Eine vergleichende Analyse in 19 Programmiersprachen
이 연구는 188개의 LeetCode 문제를 활용하여 19개의 프로그래밍 언어에서 GPT-4의 코드 생성 능력을 평가하며, 성공률, 오류 유형, 세 가지 난이도 수준에서의 코드 효율성을 분석한다. GPT-4는 전체 성공률 39.67%를 기록했으며, 복잡한 문제에서 성능이 크게 떨어지고 언어 간으로 성능 격차가 뚜렷하다. 특히 인기 있고 정적 타이핑, 낮은 추상화 수준을 가진 언어에서 더 높은 정확도를 보이며, 언어 유형에 따라 고유한 오류 패턴을 보였다.
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. German 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. Zusätzliche Informationen Die Arbeit wurde im Rahmen eines Bachelorstudiums an der Universität Potsdam angefertigt und wurde mit der Note 1,5 (sehr gut) bewertet.
연구 동기 및 목표
- 19개의 다양한 프로그래밍 언어에서 GPT-4의 코드 생성 성능을 평가하기 위해.
- 문제 난이도(쉬움, 보통, 어려움)에 따라 성공률가 어떻게 변하는지 분석하기 위해.
- GPT-4가 다양한 프로그래밍 언어에서 생성한 코드에서 발생하는 오류의 유형을 식별하고 분류하기 위해.
- GPT-4가 생성한 코드의 런타임 및 메모리 효율성을 인간의 솔루션과 비교하여 평가하기 위해.
- GPT-4의 성능 및 오류 프로파일에서 언어별 패턴을 식별하기 위해.
제안 방법
- 쉬움 55개, 보통 94개, 어려움 39개로 총 188개의 LeetCode 문제를 수집하여 세 가지 난이도 수준에 분류.
- GPT-4를 사용하여 세 번의 시도를 반복하는 이터레이티브 프롬프팅 전략을 적용: 초기 생성, 피드백 기반 개선, 최종 시도.
- LeetCode의 테스트 셋과 실행 피드백을 이용해 정확도를 평가.
- 런타임 및 메모리 효율성을 인간 솔루션 대비 성능 백분위수를 비교하여 측정.
- 오류를 '틀린 답변', '컴파일 오류', '런타임 오류', '논리 오류'로 분류.
- 언어의 인기, 타이핑 파라다임, 추상화 수준을 중심으로 언어별로 결과를 분석.
실험 결과
연구 질문
- RQ1F1: GPT-4는 19개의 프로그래밍 언어에서 다양한 난이도의 일반적인 프로그래밍 문제를 얼마나 효과적으로 해결하는가?
- RQ2F2: GPT-4의 코드 출력에서 다양한 프로그래밍 언어 간에 어떤 유형의 오류가 발생하는가?
- RQ3F3: GPT-4가 생성한 솔루션의 런타임 및 메모리 사용량은 인간 솔루션과 비교해 얼마나 효율적인가?
주요 결과
- GPT-4는 총 188개 문제에서 전체 성공률 39.67%를 기록했다.
- 문제 난이도가 증가함에 따라 성공률이 크게 감소했다: 쉬움 문제는 63.6%, 보통 문제는 42.6%, 어려움 문제는 20.5%.
- GPT-4는 C, 자바, 타입스크립트와 같이 인기 있고 정적 타이핑, 낮은 추상화 수준을 가진 언어에서 더 높은 성공률를 보였다.
- 인기 있는 언어에서는 가장 흔한 오류 유형이 '틀린 답변'(틀린 논리)이었고, 덜 인기 있는 언어에서는 '컴파일 오류'와 '런타임 오류'가 지배적이었다.
- 모든 19개 언어에서 GPT-4가 생성한 코드는 평균 이상의 런타임 효율성을 보였으며, 낮은 추상화 수준과 정적 타이핑 언어를 선호하는 경향을 보였다.
- 메모리 효율성은 크게 다양했다: 14개 언어는 평균 이상의 메모리 사용량을 기록했고, 5개 언어는 평균 이하였으며, 메모리 효율성 측면에서 약간의 동적 타이핑 언어 선호 경향을 보였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.