论文
面向学习者的程序修复:一个带迭代编辑驱动检索增强的解法生成器
Learner-Tailored Program Repair: A Solution Generator with Iterative Edit-Driven Retrieval Enhancement
摘要
随着大语言模型(LLM)在编程领域的发展,智能编程辅导系统得到了广泛的关注。然而,大多数研究都集中在修复编程学习者的错误代码上,而不提供错误的根本原因。为了解决这一差距,我们引入了一项新任务,即 \textbf{LPR} (\textbf{L}earner-Tailored \textbf{P}rogram \textbf{R}epair)。然后,我们提出了一个新颖有效的框架,\textbf{\textsc{\MethodName{}}}(\textbf{L}earner-Tailored \textbf{S}olution \textbf{G}enerator),以增强程序修复,同时提供有缺陷代码的错误描述。在第一阶段,我们利用修复解决方案检索框架构建解决方案检索数据库,然后采用编辑驱动的代码检索方法来检索有价值的解决方案,指导大语言模型识别和修复有缺陷代码中的错误。第二阶段,我们提出了一种解决方案引导的程序修复方法,在检索解决方案的指导下修复代码并提供解释。此外,我们提出了一种迭代检索增强方法,利用生成代码的评估结果迭代优化检索方向并探索更合适的修复策略,从而提高实际编程辅导场景中的性能。实验结果表明,我们的方法大大优于一组基线,验证了我们的框架对于新提出的 LPR 任务的有效性。