Searching, Selecting, And Synthesizing Source Code Components

McMillan, Collin · W&M Publish (College of William & Mary) · 2012

ABSTRACT PAGE As programmers develop software, they instinctively sense that source code exists that could be reused if found – many programming tasks are common to many software projects across different domains. Oftentimes, a programmer will attempt to create new software from this existing source code, such as third-party libraries or code from online repositories. Unfortunately, several major challenges make it difficult to locate the relevant source code and to reuse it. First, there is a fundamental mismatch between the high-level intent reflected in the descriptions of source code, and the low-level implementation details. This mismatch is known as the concept assignment problem, and refers to the frequent case when the keywords from comments or identifiers in code do not match the features implemented in the code. Second, even if relevant source code is found, programmers must invest significant intellectual effort into understanding how to reuse the different functions, classes, or other components present in the source code. These components may be specific to a particular application, and difficult to reuse. One key source of information that programmers use to understand source code is the set of re-lationships among the source code components. These relationships are typically structural data,

Read the paper · More papers on PaperTik