Natural language processing for programming aims to use NLP techniques to assist programming. It is increasingly prevalent for its effectiveness in improving productivity. Distinct from natural language, a programming language is highly structured and functional. Constructing a structure-based representation and a functionality-oriented algorithm is at the heart of program understanding and generation. In this paper, we conduct a systematic review covering tasks, datasets, evaluation methods, techniques, and models from the perspective of the structure-based and functionality-oriented property, aiming to understand the role of the two properties in each component. Based on the analysis, we illustrate unexplored areas and suggest potential directions for future work.
翻译:面向编程的自然语言处理旨在应用自然语言处理技术辅助编程。因其在提升生产力方面的有效性,相关研究日益普及。与自然语言不同,编程语言具有高度结构化和功能化的特性。构建基于结构的表示和面向功能的算法是程序理解与生成的核心。本文从结构化与功能化属性视角出发,对任务、数据集、评估方法、技术及模型展开系统性综述,旨在阐明这两种属性在各组件中的作用。基于分析结果,我们揭示了尚未探索的研究领域,并提出了未来工作的潜在方向。