In plain words: A test tweaks one detail in a program to see if a code model's answer follows real programming rules, using only its outputs. Across ten models and four concepts, the models failed at how values move and how step order is decided.
Abstract · Do Large Code Models Understand Programming Concepts? Counterfactual Analysis for Code Predicates
Large Language Models' success on text generation has also made them better at code generation and coding tasks. While a lot of work has demonstrated their remarkable performance on tasks such as code completion and editing, it is still unclear as to why. We help bridge this gap by exploring to what degree auto-regressive models understand the logical constructs of the underlying programs. We propose Counterfactual Analysis for Programming Concept Predicates (CACP) as a counterfactual testing framework to evaluate whether Large Code Models understand programming concepts. With only black-box access to the model, we use CACP to evaluate ten popular Large Code Models for four different programming concepts. Our findings suggest that current models lack understanding of concepts such as data flow and control flow.
Ashish Hooda, Mihai Christodorescu, Miltiadis Allamanis, Aaron Wilson, Kassem Fawaz, Somesh Jha
arXiv:2402.05980 · cs.SE, cs.AI, cs.LG, cs.PL · submitted Feb 8, 2024 · updated Feb 12, 2025
abstract · pdf · html