When Names Disappear: Revealing What LLMs Actually Understand About Code

Cuong Chi Le, Minh V. T. Pham, Cuong Duc Van, Hoang N. Phan, Huy N. Phan +1 more
10/3/2025
cs.SEcs.CL

No confident code implementation found for this paper.

Abstract

Large Language Models (LLMs) achieve strong results on code tasks, but how they derive program meaning remains unclear. We argue that code communicates through two channels: structural semantics, which define formal behavior, and human-interpretable naming, which conveys intent. Removing the naming channel severely degrades intent-level tasks such as summarization, where models regress to line-by-line descriptions. Surprisingly, we also observe consistent reductions on execution tasks that should depend only on structure, revealing that current benchmarks reward memorization of naming patterns rather than genuine semantic reasoning. To disentangle these effects, we introduce a suite of semantics-preserving obfuscations and show that they expose identifier leakage across both summarization and execution. Building on these insights, we release ClassEval-Obf, an obfuscation-enhanced benchmark that systematically suppresses naming cues while preserving behavior. Our results demonstrate that ClassEval-Obf reduces inflated performance gaps, weakens memorization shortcuts, and provides a more reliable basis for assessing LLMs' code understanding and generalization.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{le2025when,
  title  = {When Names Disappear: Revealing What LLMs Actually Understand About Code},
  author = {Cuong Chi Le and Minh V. T. Pham and Cuong Duc Van and Hoang N. Phan and Huy N. Phan and Tien N. Nguyen},
  year   = {2025},
  eprint = {2510.03178},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2510.03178v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2510.03178.svg)](https://codeofpaper.com/paper/2510.03178)

Discussion