学习推荐具有全局上下文的方法名
Learning to Recommend Method Names with Global Context
摘要:
在编程中,程序实体的名称,特别是方法的名称,是理解代码功能的直观特征。为了确保程序的可读性和可维护性,方法名应该被正确命名。具体来说,这些名称应该是有意义的,并且与代码库中相关上下文中使用的其他名称一致。近年来,提出了许多自动化方法来建议一致的方法名称,其中基于神经机器翻译(NMT)的模型被广泛使用,并取得了最先进的结果。然而,这些基于NMT的模型主要集中在从方法体或周围方法中提取特定于代码的特征,而忽略了目标方法的特定于项目的上下文和文档。我们进行了统计分析,以探索方法名称和它们的上下文之间的关系。基于统计结果,我们提出了GTNM,一个基于全局变换器的神经模型,用于方法名称建议,它同时考虑了本地上下文,特定于项目的上下文和方法的文档。在java方法上的实验结果表明,我们的模型在方法名建议上的性能大大优于现有的结果,证明了我们提出的模型的有效性。
英文摘要:
In programming, the names for the program entities, especially for the methods, are the intuitive characteristic for understanding the functionality of the code. To ensure the readability and maintainability of the programs, method names should be named properly. Specifically, the names should be meaningful and consistent with other names used in related contexts in their codebase. In recent years, many automated approaches are proposed to suggest consistent names for methods, among which neural machine translation (NMT) based models are widely used and have achieved state-of-the-art results. However, these NMT-based models mainly focus on extracting the code-specific features from the method body or the surrounding methods, the project-specific context and documentation of the target method are ignored. We conduct a statistical analysis to explore the relationship between the method names and their contexts. Based on the statistical results, we propose GTNM, a Global Transformer-based Neural Model for method name suggestion, which considers the local context, the project-specific context, and the documentation of the method simultaneously. Experimental results on java methods show that our model can outperform the state-of-the-art results by a large margin on method name suggestion, demonstrating the effectiveness of our proposed model.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。