ACM Home Page
Please provide us with feedback. Feedback
Jungloid mining: helping to navigate the API jungle
Full text PdfPdf (256 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Function interfaces table of contents
Pages: 48 - 61  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
David Mandelin  University of California, Berkeley
Lin Xu  University of California, Berkeley
Rastislav Bodík  University of California, Berkeley
Doug Kimelman  IBM Corporation
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 124,   Citation Count: 33
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065018
What is a DOI?

ABSTRACT

Reuse of existing code from class libraries and frameworks is often difficult because APIs are complex and the client code required to use the APIs can be hard to write. We observed that a common scenario is that the programmer knows what type of object he needs, but does not know how to write the code to get the object.In order to help programmers write API client code more easily, we developed techniques for synthesizing jungloid code fragments automatically given a simple query that describes that desired code in terms of input and output types. A jungloid is simply a unary expression; jungloids are simple, enabling synthesis, but are also versatile, covering many coding problems, and composable, combining to form more complex code fragments. We synthesize jungloids using both API method signatures and jungloids mined from a corpus of sample client programs.We implemented a tool, prospector, based on these techniques. prospector is integrated with the Eclipse IDE code assistance feature, and it infers queries from context so there is no need for the programmer to write queries. We tested prospector on a set of real programming problems involving APIs; prospector found the desired solution for 18 of 20 problems. We also evaluated prospector in a user study, finding that programmers solved programming problems more quickly and with more reuse when using prospector than without prospector.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
R. Alur, P. Černý, P. Madhusudan, and W. Nam. Synthesis of interface specifications for java classes.
2
 
3
4
5
 
6
A. J. Ko, B. A. Myers, and H. H. Aung. Six learning barriers in end-user programming systems.
 
7
 
8
 
9
K. J. Lieberherr, W. Hürsch, I. Silva-Lepe, and C. Xiao. Experience with a graph-based propagation pattern programming tool. In G. F. et al., editor, International Workshop on CASE, pages 114--119, Montréal, Canada, 1992. IEEE Computer Society.
 
10
M. Rittri. Retrieving library identifiers via equational matching of types, Jan. 24 1997.
 
11
D. W. Stringer-Calvert. Signature Matching for Ada Software Reuse. Master of engineering, Department of Computer Science, University of York, Mar. 1994.
 
12
 
13
 
14
 
15
J. Whaley, M. C. Martin, and M. S. Lam. Automatic extraction of object-oriented component interfaces, July 11 2002.
16
17
 
18
A. M. Zaremski and J. M. Wing. Signature matching: a tool for using software libraries, July 22 1996.
 
19
A. M. Zaremski and J. M. Wing. Specification matching of software components, Dec. 11 1997.

CITED BY  33

Collaborative Colleagues:
David Mandelin: colleagues
Lin Xu: colleagues
Rastislav Bodík: colleagues
Doug Kimelman: colleagues