Academic
Publications
A search engine for finding highly relevant applications

A search engine for finding highly relevant applications,10.1145/1806799.1806868,Mark Grechanik,Chen Fu,Qing Xie,Collin McMillan,Denys Poshyvanyk,Chad

A search engine for finding highly relevant applications   (Citations: 9)
BibTex | RIS | RefWorks Download
A fundamental problem of finding applications that are highly rel- evant to development tasks is the mismatch between the high-level intent reflected in the descriptions of these tasks and low-level implementation details of applications. To reduce this mismatch we created an approach called Exemplar (EXEcutable exaMPLes ARchive) for finding highly relevant software projects from large archives of applications. After a programmer enters a natural- language query that contains high-level concepts (e.g., MIME, data sets), Exemplar uses information retrieval and program analysis techniques to retrieve applications that implement these concepts. Our case study with 39 professional Java programmers shows that Exemplar is more effective than Sourceforge in helping program- mers to quickly find highly relevant applications.
Cumulative Annual
View Publication
The following links allow you to view full publications. These links are maintained by other sources not affiliated with Microsoft Academic Search.
    • ...The idea of using functional abstractions to improve code search was proposed and implemented elsewhere [3, 10, 23, 32]; however, these code search engines do not automatically analyze how functions are used in the context of other functions, despite the fact that understanding the chains of function invocations is a key question that programmers ask...
    • ...Exemplar, SNIFF, and Mica use documentation for API calls for query expansion [10, 32, 3]. SNIFF then performs the intersection of types in these code chunks to retain the most relevant and common part of the code chunks...

    Collin McMillanet al. Portfolio: finding relevant functions and their usage

    • ...These include automatically generating code snippets based on a pair of input and output types given by the programmer [15], searching for API examples or applications, from private code repositories [16] [17] [18], or from the Internet [19] [20] [21] [22]...
    • ...The Internet has been used as a medium for sharing code and seeking code-specific help [25] [26], and many recent work have been directed towards finding relevant code and documentation on the web [19] [20] [26] [21] [22]...

    Daqing Houet al. Obstacles in Using Frameworks and APIs: An Exploratory Study of Progra...

    • ...Extensive past work has been done in searching [19] [5] [2] [1] [6], explaining and exploring examples [4] [12] [13], and understanding and debugging [11]...

    Chandan Raj Rupakhetiet al. Satisfying Programmers' Information Needs in API-Based Programming

    • ...The idea of using functional abstractions to improve code search was proposed and implemented elsewhere [1, 6, 14, 21]; however, these code search engines do not automatically analyze how functions are used in the context of other functions...
    • ...Some search based primarily on textual artifacts extracted from source code or produced by programmers [22, 7], in contrast to other approaches which use documentation external to retrieved functions (such as documentation for API calls) [6, 21, 1]. Portfolio, on the other hand, uses PageRank and SANs to help programmers navigate and understand usages of retrieved functions...

    Collin McMillanet al. Portfolio: a search engine for finding functions and their usages

    • ...The APIs which software uses are often strong indicators of the functionality that that software provides [3, 1], and in prior research we determined that the set of APIs used by programs is an highly-effective criterion when finding source code relevant to programmers’ tasks [8]...
    • ...Prior to developing Portfolio, we built a search engine called Exemplar 2 to retrieve relevant applications from large software repositories [8]...

    Collin McMillanet al. Searching, selecting, and synthesizing source code

Sort by: