Natural Language-based Software Analyses and Tools for Software Maintenance
Author : Pollock, Lori; Vijay-Shanker, K.; Hill, Emily; Sridhara, Giriprasad; Shepherd, David
Date : 2012
Editor : De Lucia, A
Publisher : Springer
Volume : LNCS 7171
Pages : 102-134
Keyword(s) : software maintenance, natural language program analysis, software engineering tools
Document Type : Book chapter
Abstract :
Signi cant portions of software life cycle resources are devoted to program maintenance, which motivates the development of automated techniques and tools to support the tedious, error-prone tasks. Natural language clues from programmers’ naming in literals, identifers, and comments can be leveraged to improve the effectiveness of many software tools. For example, they can be used to increase the accuracy of software search tools, improve the ability of program navigation tools to recommend related methods, and raise the accuracy of other program analyses by providing access to natural language information. This chapter focuses on how to capture, model, and apply the programmers’ conceptual knowledge expressed in both linguistic information as well as programming language structure and semantics. We call this kind of analysis Natural Language Program Analysis (NLPA) since it combines natural language processing techniques with program analysis to extract information for analysis of the source program.