Jungloid mining: helping to navigate the API jungle
By David Mandelin, Lin Xu, Rastislav Bodík, D. Kimelman. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2005
515 citations recorded by the source corpus.
Subfields: Computer Networks and Communications, Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/382e55821fbc7285395a33267e267f705e4a8d30
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Tien Nhut Nguyen
- Charles Sutton
- Rishabh Singh
- Premkumar T. Devanbu
- Sumit Gulwani
- Sebastian Proksch
- Earl T. Barr
- Hoan Anh Nguyen
In Information Systems
- Charles Sutton
- Tien Nhut Nguyen
- Miltiadis Allamanis
- Premkumar T. Devanbu
- Rishabh Singh
- Earl T. Barr
- Anh Tuan Nguyen
- Michael Pradel
In Software
- Charles Sutton
- Rishabh Singh
- Tien Nhut Nguyen
- Premkumar T. Devanbu
- Miltiadis Allamanis
- Earl T. Barr
- Sumit Gulwani
- Michael Pradel
Citations in the corpus
- Synthesis of loop-free programs (2011, methodology): “We present a synthesis procedure that takes as input a speci.”
- MAPO: Mining and Recommending API Usage Patterns (2009, background): “Prospector developed by Mandelin et al. [22] synthesizes solution jungloids from a jungloid query.”
- Example-centric programming: integrating web search into the development environment (2010, methodology): “This work has addressed the availability of example code problem by mining code repositories [25, 28] or synthesizing example code from API specifications [21].”
- Two studies of opportunistic programming: interleaving web foraging, learning, and writing code (2009, methodology): “Stylos and Myers describe how programmers may learn APIs, based on observations of three " small programming projects " [32].”
- Graph-based mining of multiple object usage patterns (2009, methodology): “Similar tools include Prospector [ 22 ] and MAPO [32].”
- Portfolio: finding relevant functions and their usage (2011, methodology): “Programming task-oriented tools like Prospector, Hipikat, Strathcona, and xSnippet assist programmers in writing complicated code [21, 7, 14, 27].”
- Code completion with statistical language models (2014, background): “Prospector [23] is an approach which automatically discovers a sequence of API calls that transform an object of a given input type into an object of a given output type.”
- Program Synthesis Using Natural Language (2015, background): “This API may consist either of operations in an existing programming language [34, 41, 54] or a DSL constructed for a specific class of tasks [32, 33].”
- Oracle-guided component-based program synthesis (2010, methodology): “From Type Signatures: Jungloid mining tool [18] synthesizes code-fragments (over a given set of API methods annotated with their type signatures) given a simple query that describes the desired code using input and output types.”
- FrAngel: component-based synthesis with control structures (2018, background): “Using large libraries is not easyÐeven experienced programmers can spend hours identifying the few necessary functions in a library [Mandelin et al. 2005].”
- Genetic programming for Reverse Engineering (2013, unknown): “Algorithms such at Prospector [66] solve exactly this issue, synthesising such glue code from input and output types.”
- Detecting object usage anomalies (2007, methodology): “[24] and XSNIPPET by Sahavechaphan and Claypool [29].”
- A Study of "Wheat" and "Chaff" in Source Code (2015, background): “Work on code search breaks the problem into three subproblems 1) how to store and index code [2, 20], 2) what queries (and results) to support [27, 28], and 3) how to filter and rank the results [2, 18, 21].”
- Emergent, crowd-scale programming practice in the IDE (2014, methodology): “In software engineering systems, user practice and designer intention differ across several levels of abstraction: programmers use library APIs in undocumented and unexpected ways [26], language idioms evolve over time [34], and programmers repurpose source code for new tasks [3, 9].”
- Predicting a Correct Program in Programming by Example (2015, methodology): “PROSPECTOR [17] synthesizes jungloid code fragments (chain of objects and method calls from type τin to type τout) by ranking jungloids using the primary criterion of length, and secondary criteria of number of crossed package boundaries and generality of output type.”