Improving code completion with program history
Author
Abstract
Code completion is a widely used productivity tool. It takes away the burden
of remembering and typing the exact names of methods or classes: As a developer
starts typing a name, it provides a progressively refined list of candidates matching
the name. However, the candidate list usually comes in alphabetic order, i.e., the environment
is only second-guessing the name based on pattern matching, relying on
human intervention to pick the correct one. Finding the correct candidate can thus be
cumbersome or slower than typing the full name.
We present an approach to improve code completion based on recorded program
histories. We define a benchmarking procedure measuring the accuracy of a code
completion engine and apply it to several completion algorithms on a dataset consisting
of the history of several systems. Further, we use the change history data to
improve the results offered by code completion tools. Finally, we propose an alternative
interface for completion tools that we released to developers and evaluated.
Patrocinador
Financial support of the Swiss National Science foundation for the project “REBASE” (SNF
Project No. 115990).
Quote Item
Autom Softw Eng (2010) 17: 181–212
Collections