NL-Debugging: Exploiting Natural Language as an Intermediate Representation for Code Debugging

Debugging is a critical aspect of LLM's coding ability. Early debugging efforts primarily focused on code-level analysis, which often falls short when addressing complex programming errors that require a deeper understanding of algorithmic logic. Recent advancements in large language models (LLMs) have shifted attention toward leveraging natural language reasoning to enhance code-related tasks. However, two fundamental questions remain unanswered: What type of natural language format is most effective for debugging tasks? And what specific benefits does natural language reasoning bring to the debugging process? In this paper, we introduce NL-DEBUGGING, a novel framework that employs natural language as an intermediate representation to improve code debugging. By debugging at a natural language level, we demonstrate that NL-DEBUGGING outperforms traditional debugging methods and enables a broader modification space through direct refinement guided by execution feedback. Our findings highlight the potential of natural language reasoning to advance automated code debugging and address complex programming challenges.
View on arXiv@article{zhang2025_2505.15356, title={ NL-Debugging: Exploiting Natural Language as an Intermediate Representation for Code Debugging }, author={ Weiming Zhang and Qingyao Li and Xinyi Dai and Jizheng Chen and Kounianhua Du and Weinan Zhang and Weiwen Liu and Yasheng Wang and Ruiming Tang and Yong Yu }, journal={arXiv preprint arXiv:2505.15356}, year={ 2025 } }