Contribute to ML4Code

Machine Learning on Source Code

The billions of lines of source code that have been written contain implicit knowledge about how to write good code, code that is easy to read and to debug. A recent line of research aims to find statistical patterns in large corpora of code to drive new software development tools and program analyses.

This website and the accompanying article surveys the work in this emerging area.

Like writing and speaking, software development is an act of human communication. At its core, the naturalness of software employs statistical modeling over big code to reason about rich variety of programs developers write. This new line of research is inherently interdisciplinary, uniting the machine learning and natural language processing communities with software engineering and programming language communities.

🏷 Browse Papers by Tag

adversarial API autocomplete benchmark bimodal clone code completion code generation code similarity compilation completion cybersecurity dataset decompilation defect deobfuscation documentation dynamic edit editing education evaluation execution feature location fuzzing generalizability generation GNN grammar human evaluation information extraction instruction tuning interpretability language model large language models LLM logging memorization metrics migration naming natural language generation natural language processing notebook optimization pattern mining pretraining program analysis program synthesis question answering refactoring repair representation retrieval review search static static analysis style summarization survey synthesis test generation tool topic modeling topic modelling traceability Transformer Transformers translation types variable misuse verification vulnerability

About This Site

This site is an experiment: a living literature review that allows you explore, search and navigate the literature in this area. The full survey is available as a research paper. Please cite as

  title={A survey of machine learning for big code and naturalness},
  author={Allamanis, Miltiadis and Barr, Earl T and Devanbu, Premkumar and Sutton, Charles},
  journal={ACM Computing Surveys (CSUR)},


This research area is evolving so fast that a static review cannot keep up. But a website can! We hope to make this site a living document. Anyone can add a paper to this web site, essentially by creating one Markdown file. To contribute, open a pull request in GitHub, by following these instructions for contributing.


The core survey and the original taxonomy was created by

Contributors to the website

This website accepts external contributions. Please, feel free to add your name below, once you contribute to this website. A comprehensive list can be found here.