Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1595696.1595728acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Learning from examples to improve code completion systems

Published: 24 August 2009 Publication History

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

[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.

Cited By

View all
  • (2024)A Combinatorial Strategy for API Completion: Deep Learning and HeuristicsElectronics10.3390/electronics1318366913:18(3669)Online publication date: 15-Sep-2024
  • (2024)Vision Paper: Proof-Carrying Code CompletionsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering Workshops10.1145/3691621.3694932(35-42)Online publication date: 27-Oct-2024
  • (2024)DroidCoder: Enhanced Android Code Completion with Context-Enriched Retrieval-Augmented GenerationProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695063(681-693)Online publication date: 27-Oct-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE '09: Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
August 2009
408 pages
ISBN:9781605580012
DOI:10.1145/1595696
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 August 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code completion
  2. code recommender
  3. content assist
  4. integrated development environment

Qualifiers

  • Research-article

Conference

ESEC/FSE09
Sponsor:
ESEC/FSE09: Joint 12th European Software Engineering Conference
August 24 - 28, 2009
Amsterdam, The Netherlands

Acceptance Rates

ESEC/FSE '09 Paper Acceptance Rate 32 of 217 submissions, 15%;
Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)184
  • Downloads (Last 6 weeks)17
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A Combinatorial Strategy for API Completion: Deep Learning and HeuristicsElectronics10.3390/electronics1318366913:18(3669)Online publication date: 15-Sep-2024
  • (2024)Vision Paper: Proof-Carrying Code CompletionsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering Workshops10.1145/3691621.3694932(35-42)Online publication date: 27-Oct-2024
  • (2024)DroidCoder: Enhanced Android Code Completion with Context-Enriched Retrieval-Augmented GenerationProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695063(681-693)Online publication date: 27-Oct-2024
  • (2024)A Systematic Literature Review on the Influence of Enhanced Developer Experience on Developers' Productivity: Factors, Practices, and RecommendationsACM Computing Surveys10.1145/368729957:1(1-46)Online publication date: 7-Oct-2024
  • (2024)Multi-line AI-Assisted Code AuthoringCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663836(150-160)Online publication date: 10-Jul-2024
  • (2024)Significant Productivity Gains through Programming with Large Language ModelsProceedings of the ACM on Human-Computer Interaction10.1145/36611458:EICS(1-29)Online publication date: 17-Jun-2024
  • (2024)Exploring and Improving Code Completion for Test CodeProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644421(137-148)Online publication date: 15-Apr-2024
  • (2024)Generating Java Methods: An Empirical Assessment of Four AI-Based Code AssistantsProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644402(13-23)Online publication date: 15-Apr-2024
  • (2024)AI-Assisted Code Authoring at Scale: Fine-Tuning, Deploying, and Mixed Methods EvaluationProceedings of the ACM on Software Engineering10.1145/36437741:FSE(1066-1085)Online publication date: 12-Jul-2024
  • (2024)Which Syntactic Capabilities Are Statistically Learned by Masked Language Models for Code?Proceedings of the 2024 ACM/IEEE 44th International Conference on Software Engineering: New Ideas and Emerging Results10.1145/3639476.3639768(72-76)Online publication date: 14-Apr-2024
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media