arXiv (Cornell University) · 2019 · 56 citations · 16 references
ComputingComputer ScienceComputational LinguisticsNatural Language ProcessingProgramming LanguagesAbstract Syntax TreesLanguage ModelingNatural Language UnderstandingText RepresentationWord EmbeddingsExtensive Search
Natural language processing has improved tremendously after the success of word embedding techniques such as word2vec. Recently, the same idea has been applied on source code with encouraging results. In this survey, we aim to collect and discuss the usage of word embedding techniques on programs and source code. The articles in this survey have been collected by asking authors of related work and with an extensive search on Google Scholar. Each article is categorized into five categories: 1. embedding of tokens 2. embedding of functions or methods 3. embedding of sequences or sets of method calls 4. embedding of binary code 5. other embeddings. We also provide links to experimental data and show some remarkable visualization of code embeddings. In summary, word embedding has been successfully applied on different granularities of source code. With access to countless open-source repositories, we see a great potential of applying other data-driven natural language processing techniques on source code in the future.
16
Laurens van der Maaten, Geoffrey E. Hinton · Journal of Machine Learning Research · 2008 · 35.7K citations
On the naturalness of software
Abram Hindle, Earl T. Barr, Zhendong Su et al. · 2012 · 569 citations
Suggesting accurate method and class names
Miltiadis Allamanis, Earl T. Barr, Christian Bird et al. · 2015 · 386 citations · Full text
Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities
Martin White, Michele Tufano, Matías Martínez et al. · 2019 · 171 citations · Full text