The DOI matches its Crossref record; 3 of the 3 references it cites were found in a registry or an index.
DeepBugs: a learning approach to name-based bug detection
Open accessAbstract
Natural language elements in source code, e.g., the names of variables and functions, convey useful information. However, most existing bug detection tools ignore this information and therefore miss some classes of bugs. The few existing name-based bug detection approaches reason about names on a syntactic level and rely on manually designed and tuned algorithms to detect bugs. This paper presents DeepBugs, a learning approach to name-based bug detection, which reasons about names based on a semantic representation and which automatically learns bug detectors instead of manually writing them. We formulate bug detection as a binary classification problem and train a classifier that distinguishes correct from incorrect code. To address the challenge that effectively learning a bug detector requires examples of both correct and incorrect code, we create likely incorrect code examples from an existing corpus of code through simple code transformations. A novel insight learned from our work is that learning from artificially seeded bugs yields bug detectors that are effective at finding bugs in real-world code. We implement our idea into a framework for learning-based and name-based bug detection. Three bug detectors built on top of the framework detect accidentally swapped function arguments, incorrect binary operators, and incorrect operands in binary operations. Applying the approach to a corpus of 150,000 JavaScript files yields bug detectors that have a high accuracy (between 89% and 95%), are very efficient (less than 20 milliseconds per analyzed file), and reveal 102 programming mistakes (with 68% true positive rate) in real-world code.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
Efficient Estimation of Word Representations in Vector Space
Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013) · arXiv · doi:10.48550/arxiv.1301.3781 · Cited by 26,568
Distributed Representations of Words and Phrases and their Compositionality
Mikolov, T., Sutskever, I., Chen, K., Corrado, G., & Dean, J. (2013) · arXiv · doi:10.48550/arxiv.1310.4546 · Cited by 24,533
SmartPaste: Learning to Adapt Source Code
Allamanis, M., & Brockschmidt, M. (2017) · arXiv · doi:10.48550/arxiv.1705.07867 · Cited by 13
Research works printed but not linked: 60
- 10.1109/SCAM.2012.28 · DOI
- 10.1145/2635868.2635883 · DOI · Paper page
- Allamanis Miltiadis, 2017, A Survey of Machine Learning for Big Code and Naturalness. arXiv:1709.06182 · arXiv
- Allamanis Miltiadis, 2017, Learning to Represent Programs with Graphs. CoRR abs/1711.00740 · arXiv
- Allamanis Miltiadis, 2016, Proceedings of the 33nd International Conference on Machine Learning, ICML 2016
- 10.1145/3192366.3192412 · DOI · Paper page
- 10.1145/503272.503275 · DOI · Paper page
- M. Amodio S. Chaudhuri and T. Reps. 2017. Neural Attribute Machines for Program Generation. ArXiv e-prints (May 2017). arXiv: cs.AI/1705.09231 M. Amodio S. Chaudhuri and T. Reps. 2017. Neural Attribute Machines for Program Generation. ArXiv e-prints (May 2017). arXiv: cs.AI/1705.09231
- 10.1145/3106739 · DOI
- Bhatia Sahil, 2016, Automated Correction for Syntax Errors in Programming Assignments using Recurrent Neural Networks. CoRR abs/1603.06129 · arXiv
- Bielik Pavol, 2016, Proceedings of the 33nd International Conference on Machine Learning, ICML 2016
- 10.1145/3106237.3106280 · DOI
- 10.1109/CSMR.2010.27 · DOI · Paper page
- 10.1007/978-3-319-17524-9_1 · DOI · Paper page
- DeFreez Daniel, 2018, Path-Based Function Embedding and its Application to Specification Mining. CoRR abs/1802.07779 · arXiv
- Dolan-Gavitt Brendan, 2016, LAVA: Large-Scale Automated Vulnerability Addition. In IEEE Symposium on Security and Privacy, SP 2016
- ECMA., 2011, ECMAScript Language Specification, 5.1 Edition. (June
- 10.1145/502034.502041 · DOI · Paper page
- Godefroid Patrice, 2017, Machine Learning for Input Fuzzing. CoRR abs/1701.07232 · arXiv
- 10.1145/2786805.2786831 · DOI
- 10.1145/2950290.2950334 · DOI · Paper page
- Rahul Gupta Soham Pal Aditya Kanade and Shirish Shevade. 2017. DeepFix: Fixing Common C Language Errors by Deep Learning. In AAAI. Rahul Gupta Soham Pal Aditya Kanade and Shirish Shevade. 2017. DeepFix: Fixing Common C Language Errors by Deep Learning. In AAAI. · DOI · Paper page
- Gutmann Michael, 2010, Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics. 297–304
- 10.1145/3238147.3238212 · DOI
- 10.1145/2950290.2950308 · DOI
- 10.1145/581339.581377 · doi:10.1145/581339.581377 · Paper page
- Hindle Abram, 2012, 34th International Conference on Software Engineering, ICSE 2012
- 10.1007/978-3-642-03013-0_14 · DOI
- 10.1145/1028664.1028717 · DOI · Paper page
- Choi Min, 2017, End-to-End Prediction of Buffer Overruns from Raw Source Code via Neural Memory Networks. CoRR abs/1703.02458 · arXiv
- 10.1007/978-3-642-03237-0_17 · doi:10.1007/978-3-642-03237-0_17
- 10.1109/TSE.2010.62 · DOI · Paper page
- 10.1109/ICPC.2006.51 · DOI
- Li Zhen, 2018, Xinyu Ou, Hai Jin, Sujuan Wang, Zhijun Deng, and Yuyi Zhong.
- 10.1145/2884781.2884870 · doi:10.1145/2884781.2884870
- 10.1145/2884781.2884841 · DOI
- 10.1109/ICSE.2017.65 · DOI
- Mikolov Tomas, 2013, Advances in Neural Information Processing Systems 26: 27th Annual Conference on Neural Information Processing Systems 2013. Proceedings of a meeting held
- Monperrus Martin, 2010, Detecting Missing Method Calls in Object-Oriented Software. In European Conference on Object-Oriented Programming (ECOOP) . Springer, 2–25
- 10.5555/3015812.3016002 · doi:10.5555/3015812.3016002
- Murali Vijayaraghavan, 2017, Finding Likely Errors with Bayesian Specifications. CoRR abs/1703.01370 · arXiv
- Nguyen Anh Tuan, 2015, Graph-Based Statistical Language Model for Code. In 37th IEEE/ACM International Conference on Software Engineering, ICSE 2015, 1
- 10.1109/ICSE.2017.47 · DOI
- 10.1145/2991079.2991103 · DOI
- 10.1145/2001420.2001448 · doi:10.1145/2001420.2001448
- Pradel Michael, Statically Checking API Protocol Conformance with Mined Multi-Object Specifications. In International Conference on Software Engineering (ICSE). 925–935
- Pradel Michael, 2015, TypeDevil: Dynamic Type Inconsistency Analysis for JavaScript. In International Conference on Software Engineering (ICSE) .
- 10.1145/2884781.2884848 · DOI · Paper page
- 10.1145/2983990.2984041 · DOI
- 10.1145/2837614.2837671 · DOI
- 10.1145/2676726.2677009 · DOI · Paper page
- 10.1145/2594291.2594321 · DOI · Paper page
- 10.1145/3133928 · DOI
- 10.1007/978-3-540-31987-0_28 · doi:10.1007/978-3-540-31987-0_28
- 10.1145/3106237.3106289 · DOI
- 10.1145/2884781.2884804 · DOI · Paper page
- 10.1109/ASE.2009.30 · DOI
- Weston Jason, 2014, Memory Networks. CoRR abs/1410.3916 · arXiv
- 10.1145/2970276.2970326 · DOI · Paper page
- 10.1145/2884781.2884862 · DOI · Paper page
Cited by
CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation
Lu, S., Guo, D., Ren, S., Huang, J., Svyatkovskiy, A., Blanco, A., Clement, C., Drain, D., Jiang, D., Tang, D., et al. (2021) · arXiv · doi:10.48550/arxiv.2102.04664 · Cited by 536
An Empirical Evaluation of Using Large Language Models for Automated Unit Test Generation
Schäfer, M., Nadi, S., Eghbali, A., & Tip, F. (2024) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2023.3334955 · Cited by 431
“Neural techniques are rapidly being adopted for solving various Software Engineering problems, with promising results in several domains including code completion [34], [35], [36], [37], [38], program repair [39], [40], [41], and bug-finding [42], [43].”
MethodProgram Synthesis with Large Language Models
Austin, J., Odena, A., Nye, M., Bosma, M., Michalewski, H., Dohan, D., Jiang, E., Cai, C., Terry, M., Le, Q., et al. (2021) · arXiv · doi:10.48550/arxiv.2108.07732 · Cited by 388
“Many learning methods have been proposed for program repair [Allamanis et al., 2018b, Tarlow et al., 2019, Hellendoorn et al., 2019, Dinella et al., 2019, Yasunaga and Liang, 2020, Chen et al., 2019b, Pradel and Sen, 2018].”
MethodBig code != big vocabulary: open-vocabulary models for source code
Karampatsis, R.-M., Babii, H., Robbes, R., Sutton, C., & Janes, A. (2020) · Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering · doi:10.1145/3377811.3380342 · Cited by 182
Retrieval-Based Prompt Selection for Code-Related Few-Shot Learning
Nashid, N., Sintaha, M., & Mesbah, A. (2023) · 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE) · doi:10.1109/icse48619.2023.00205 · Cited by 178
Metadata
- Authors
- Pradel, M., & Sen, K.
- Venue
- Proceedings of the ACM on Programming Languages
- Published
- 2018-10-24
- Volume
- 2
- Issue
- OOPSLA
- Pages
- 1-25
- ISSN
- 2475-1421 (ISSN-L)
- OpenAlex
- W2806718802
- Cited by
- 342
- References
- 3
- FWCI
- 87.69
- Type
- journal article
- Language
- en
- Open access
- diamond
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
How to cite
Cite CoChat for the checks on this page, and the paper for its own findings.
- This page
- CoChat. (2026). Citation check: DeepBugs: a learning approach to name-based bug detection. https://app.cochat.ai/papers/10.1145/3276517
- The paper
- Pradel, M., & Sen, K. (2018). DeepBugs: a learning approach to name-based bug detection. Proceedings of the ACM on Programming Languages. https://doi.org/10.1145/3276517
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.