Behavior sampling: a technique for automated retrieval of reusable components
ICSE '92 Proceedings of the 14th international conference on Software engineering
Signature matching: a key to reuse
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Generalized behavior-based retrieval
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Specification matching of software components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Supporting reuse by delivering task-relevant and personalized information
Proceedings of the 24th International Conference on Software Engineering
Retrieving Library Identifiers via Equational Matching of Types
Proceedings of the 10th International Conference on Automated Deduction
Using structural context to recommend source code examples
Proceedings of the 27th international conference on Software engineering
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
XSnippet: mining For sample code
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
MapReduce: simplified data processing on large clusters
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Assieme: finding and leveraging implicit references in a web search interface for programmers
Proceedings of the 20th annual ACM symposium on User interface software and technology
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Parseweb: a programmer assistant for reusing open source code on the web
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Code Conjurer: Pulling Reusable Software out of Thin Air
IEEE Software
Sourcerer: mining and searching internet-scale software repositories
Data Mining and Knowledge Discovery
SNIFF: A Search Engine for Java Using Free-Form Queries
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A test-driven approach to code search and its application to the reuse of auxiliary functionality
Information and Software Technology
Interactive synthesis of code snippets
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Using structure-based recommendations to facilitate discoverability in APIs
Proceedings of the 25th European conference on Object-oriented programming
Data-driven synthesis for object-oriented frameworks
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Type-directed completion of partial expressions
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Typestate-based semantic code search over partial programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
In today's API-rich world, programmer productivity depends heavily on the programmer's ability to discover the required APIs. In this paper, we present a technique and tool, called MathFinder, to discover APIs for mathematical computations by mining unit tests of API methods. Given a math expression, MathFinder synthesizes pseudo-code to compute the expression by mapping its subexpressions to API method calls. For each subexpression, MathFinder searches for a method such that there is a mapping between method inputs and variables of the subexpression. The subexpression, when evaluated on the test inputs of the method under this mapping, should produce results that match the method output on a large number of tests. We implemented MathFinder as an Eclipse plugin for discovery of third-party Java APIs and performed a user study to evaluate its effectiveness. In the study, the use of MathFinder resulted in a 2x improvement in programmer productivity. In 96% of the subexpressions queried for in the study, MathFinder retrieved the desired API methods as the top-most result. The top-most pseudo-code snippet to implement the entire expression was correct in 93% of the cases. Since the number of methods and unit tests to mine could be large in practice, we also implement MathFinder in a MapReduce framework and evaluate its scalability and response time.