ACM Home Page
Please provide us with feedback. Feedback
Learning from examples to improve code completion systems
Full text PdfPdf (1.19 MB)
Source
Foundations of Software Engineering archive
Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium table of contents
Amsterdam, The Netherlands
SESSION: Tools & environment table of contents
Pages 213-222  
Year of Publication: 2009
ISBN:978-1-60558-001-2
Authors
Marcel Bruch  Darmstadt University of Technology, Darmstadt, Germany
Martin Monperrus  Darmstadt University of Technology, Darmstadt, Germany
Mira Mezini  Darmstadt University of Technology, Darmstadt, Germany
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 37,   Downloads (12 Months): 63,   Citation Count: 0
Additional Information:

abstract   references   index terms  

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/1595696.1595728
What is a DOI?

ABSTRACT

The suggestions made by current IDE's code completion features are based exclusively on static type system of the programming language. As a result, often proposals are made which are irrelevant for a particular working context. Also, these suggestions are ordered alphabetically rather than by their relevance in a particular context. In this paper, we present intelligent code completion systems that learn from existing code repositories. We have implemented three such systems, each using the information contained in repositories in a different way. We perform a large-scale quantitative evaluation of these systems, integrate the best performing one into Eclipse, and evaluate the latter also by a user study. Our experiments give evidence that intelligent code completion systems which learn from examples significantly outperform mainstream code completion systems in terms of the relevance of their suggestions and thus have the potential to enhance developers' productivity.


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
Overview of the Third Text REtrieval Conference (TREC-3), Gaithersburg, MD, USA, 1990. NIST.
 
2
R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of items in large databases. In SIGMOD Int'l Conf. Management of Data, pages 207--216. ACM, 1993.
 
3
K. Beck and R. E. Johnson. Patterns generate architectures. In ECOOP, pages 139--149. Springer, 1994.
 
4
C. M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.
 
5
M. Bruch, T. Schäfer, and M. Mezini. FrUiT: IDE support for framework understanding. In OOPSLA Workshop Eclipse Technology Exchange, pages 55--59. ACM, 2006.
 
6
M. Bruch, T. Schäfer, and M. Mezini. On evaluating recommender systems for api usages. In RSSE'08, pages 16--20, New York, NY, USA, 2008. ACM.
 
7
G. Butler, R. K. Keller, and H. Mili. A framework for framework documentation. ACM Computing Surveys, 32(1):15--21, 2000.
 
8
T. Cover and P. Hart. Nearest neighbor pattern classification. IEEE Transactions on Information Theory, 1967.
 
9
Eclipse Foundation. SWT: The standard widget toolkit. http://www.eclipse.org/swt/, 2006.
 
10
W. Frakes and B. Nejmeh. Software reuse through information retrieval. SIGIR Forum, 21(1-2):30--36, 1987.
 
11
D. Gangopadhyay and S. Mitra. Design by framework completion. Automated Software Eng., 3(3/4):219--237, 1996.
 
12
Google code search. http://www.google.com/codesearch.
 
13
R. Hill and J. Rideout. Automatic method completion. In ASE, pages 228--235, 2004.
 
14
R. Holmes and G. C. Murphy. Using structural context to recommend source code examples. In ICSE, pages 117--125. ACM, 2005.
 
15
R. E. Johnson. Documenting frameworks using patterns. In OOPSLA, pages 63--72. ACM, 1992.
 
16
M. Kersten and G. C. Murphy. Using task context to improve programmer productivity. In FSE, pages 1--11. ACM, 2006.
 
17
Koders. http://www.koders.com.
 
18
R. Kohavi. A study of cross-validation and bootstrap for accuracy estimation and model selection. In Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence, pages 1137--1145, 1995.
 
19
D. Mandelin, L. Xu, R. Bodík, and D. Kimelman. Jungloid mining: helping to navigate the api jungle. In PLDI, pages 48--61. ACM, 2005.
 
20
A. Michail. Data mining library reuse patterns using generalized association rules. In ICSE, pages 167--176. ACM, 2000.
 
21
G. C. Murphy, M. Kersten, and L. Findlater. How are java software developers using the eclipse ide? IEEE Softw., 23(4):76--83, 2006.
 
22
R. Robbes and M. Lanza. How program history can improve code completion. In Proceedings of ASE, 2008.
 
23
N. Sahavechaphan and K. Claypool. Xsnippet: Mining for sample code. In OOPSLA, pages 413--430. ACM, 2006.
 
24
T. Schäfer, M. Eichberg, M. Haupt, and M. Mezini. The SEXTANT software exploration tool. IEEE TSE, 32(9):753--768, 2006.
 
25
S. Thummalapenta and T. Xie. Parseweb: a programmer assistant for reusing open source code on the web. In ASE, pages 204--213. ACM, 2007.
 
26
C. J. van Rijsbergen. Information retrieval. Butterworths, London, 1979.
 
27
Y. Ye, G. Fischer, and B. Reeves. Integrating active information delivery and reuse repository systems. In FSE, pages 60--68. ACM, 2000.