Suggesting accurate method and class names
By Miltiadis Allamanis, Earl T. Barr, Christian Bird, Charles Sutton. 2015
434 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Information Systems, Code Generation & Program Synthesis, Program Analysis & Verification
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Miltiadis Allamanis
- Charles Sutton
- Luke S. Zettlemoyer
- Graham Neubig
- Uri Alon
- Percy Liang
- Eran Yahav
- Omer Levy
In Information Systems
- Miltiadis Allamanis
- Charles Sutton
- Michael Pradel
- Eran Yahav
- Uri Alon
- Premkumar T. Devanbu
- Rishabh Singh
- Vincent J. Hellendoorn
In Code Generation & Program Synthesis
- Miltiadis Allamanis
- Charles Sutton
- Michael Pradel
- Premkumar T. Devanbu
- Rishabh Singh
- Vincent J. Hellendoorn
- Han Liu
- Rafael-Michael Karampatsis
In Program Analysis & Verification
- Miltiadis Allamanis
- Michael Pradel
- Marc Brockschmidt
- Charles Sutton
- Petros Maniatis
- Earl T. Barr
- Rishabh Singh
- Eran Yahav
Citations in the corpus
- TypeWriter: neural type prediction with search-based validation (2019, background): “Beyond type prediction, others have proposed learning-based techniques to find programming errors [25, 28], predict variable and method names [1, 29, 35], suggest how to improve names [19], search code [10, 31], detect clones [38, 42], classify code [24, 41], predict code edits [33, 40, 43], predict”
- code2seq: Generating Sequences from Structured Representations of Code (2018, methodology): “Following Allamanis et al. (2015a; 2016), we split code tokens into sub tokens; for example, a token with the value ArrayList , will be decomposed into Array and List .”
- Learning to Represent Programs with Graphs (2017, methodology): “In these works, all variable usages are deterministically known beforehand (as the code is complete and remains unmodified), as in Allamanis et al. (2014; 2015).”
- Summarizing Source Code using a Neural Attention Model (2016, methodology): “We further use CODE-NN for code retrieval for programming related questions on a recent C# benchmark, and results show that CODE-NN improves the state of the art (Allamanis et al. (2015b)) for mean reciprocal rank (MRR) by a wide margin.”
- code2vec: learning distributed representations of code (2018, methodology): “…analysis at all, has a wide range of applications: code2vec: Learning Distributed Representations of Code 1:5 predicting names for program entities [Allamanis et al. 2015a; Alon et al. 2018; Raychev et al. 2015], code completion [Mishne et al. 2012; Raychev et al. 2014], code summarization…”
- DOBF: A Deobfuscation Pre-Training Objective for Programming Languages (2021, methodology): “Following previous works (Allamanis et al., 2015; 2016; Alon et al., 2018; 2019), we also report the subtoken score, a more flexible metric which computes the precision, recall, and F1 scores for retrieving the original case-insensitive subtokens.”
- An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation (2018, background): “Some examples of recent models that can be used in a number of software engineering tasks include: code completion [67, 91], defect prediction [84], bug localization [39], clone detection [80, 90], code search [23], learning Application Programming Interface (API) sequences [24], recommending method”
- Big Code != Big Vocabulary: Open-Vocabulary Models for Source Code (2020, methodology): “…units is not limited to language modeling, but can easily be incorporated into any neural model of code, such as models to suggest readable names [3], summarizing source code [5, 49], predicting bugs [70], detecting code clones [87], comment generation [47], and variable de-obfuscation [10].”
- WILDS: A Benchmark of in-the-Wild Distribution Shifts (2020, neutral): “…various ways: automatic code completion (Raychev et al., 2014; Svyatkovskiy et al., 2019), program synthesis (Bunel et al., 2018; Kulal et al., 2019), program repair (Vasic et al., 2019; Yasunaga and Liang, 2020), code search (Husain et al., 2019), and code summarization (Allamanis et al., 2015).”
- Learning to Fix Build Errors with Graph2Diff Neural Networks (2019, methodology): “l’s proposed fix is preferred. Listing 2 renamed the method differently compared to the ground truth fix. It is one example of suggesting new method name, which has been explored by previous approach [2]. Listing 3 is one example where the predicted fix is semantically different to the ground truth ”
- Recovering clear, natural identifiers from obfuscated JS names (2017, methodology): “Alla-manis et al. [2] use this idea to suggest more “natural” method and class names for otherwise unaltered code; we use it here to recover any/all mini � ed identi � er names in code subject to mini � cation.”
- Products, developers, and milestones: how should I build my N-Gram language model (2015, methodology): “However, Allamanis at al. have shown that language models can be used to detecting and enforcing team coding conventions [3] as well as suggesting accurate names of program entities such as variables, methods, and classes [5].”
- Accelerating search-based program synthesis using learned probabilistic models (2018, methodology): “Our algorithm supports a wide range of probabilistic models, including n-gram [2], probabilistic context-free grammar [21], probabilistic higher-order grammar [6], a log-bilinear model [1], a decision tree model [28], and a neural network [5].”
- Language-Agnostic Representation Learning of Source Code from Structure and Context (2021, background): “These representations—and their variants like (Mou et al., 2016)—can then be used to predict sequences of identifier sub-tokens (Allamanis et al., 2015) or API calls (Acharya et al., 2007; Nguyen et al., 2017).”