Awesome Machine Learning On Source Code
Notice: This repository is no longer actively maintained, and no further updates will be done, nor issues/PRs will be answered or attended.
An alternative actively maintained can be found at ml4code.github.io repository.
A curated list of awesome research papers, datasets and software projects devoted to machine learning and source code. #MLonCode
Contents
Digests
Conferences
Competitions
- CodRep - competition on automatic program repair: given a source line, find the insertion point.
Papers
Program Synthesis and Induction
- Program Synthesis and Semantic Parsing with Learned Code Idioms - Richard Shin, Miltiadis Allamanis, Marc Brockschmidt, Oleksandr Polozov, 2019.
- Synthetic Datasets for Neural Program Synthesis - Richard Shin, Neel Kant, Kavi Gupta, Chris Bender, Brandon Trabucco, Rishabh Singh, Dawn Song, ICLR 2019.
- Execution-Guided Neural Program Synthesis - Xinyun Chen, Chang Liu, Dawn Song, ICLR 2019.
- DeepFuzz: Automatic Generation of Syntax Valid C Programs for Fuzz Testing - Xiao Liu, Xiaoting Li, Rupesh Prajapati, Dinghao Wu, AAAI 2019.
- NL2Bash: A Corpus and Semantic Parser for Natural Language Interface to the Linux Operating System - Xi Victoria Lin, Chenglong Wang, Luke Zettlemoyer, Michael D. Ernst, LREC 2018.
- Recent Advances in Neural Program Synthesis - Neel Kant, 2018.
- Neural Sketch Learning for Conditional Program Generation - Vijayaraghavan Murali, Letao Qi, Swarat Chaudhuri, Chris Jermaine, ICLR 2018.
- Neural Program Search: Solving Programming Tasks from Description and Examples - Illia Polosukhin, Alexander Skidanov, ICLR 2018.
- Neural Program Synthesis with Priority Queue Training - Daniel A. Abolafia, Mohammad Norouzi, Quoc V. Le, 2018.
- Towards Synthesizing Complex Programs from Input-Output Examples - Xinyun Chen, Chang Liu, Dawn Song, ICLR 2018.
- Glass-Box Program Synthesis: A Machine Learning Approach - Konstantina Christakopoulou, Adam Tauman Kalai, AAAI 2018.
- Synthesizing Benchmarks for Predictive Modeling - Chris Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather, CGO 2017
- Program Synthesis for Character Level Language Modeling - Pavol Bielik, Veselin Raychev, Martin Vechev, ICLR 2017.
- SQLNet: Generating Structured Queries From Natural Language Without Reinforcement Learning - Xiaojun Xu, Chang Liu, Dawn Song, 2017.
- Learning to Select Examples for Program Synthesis - Yewen Pu, Zachery Miranda, Armando Solar-Lezama, Leslie Pack Kaelbling, 2017.
- Neural Program Meta-Induction - Jacob Devlin, Rudy Bunel, Rishabh Singh, Matthew Hausknecht, Pushmeet Kohli, NIPS 2017.
- Learning to Infer Graphics Programs from Hand-Drawn Images - Kevin Ellis, Daniel Ritchie, Armando Solar-Lezama, Joshua B. Tenenbaum, 2017.
- Neural Attribute Machines for Program Generation - Matthew Amodio, Swarat Chaudhuri, Thomas Reps, 2017.
- Abstract Syntax Networks for Code Generation and Semantic Parsing - Maxim Rabinovich, Mitchell Stern, Dan Klein, ACL 2017.
- Making Neural Programming Architectures Generalize via Recursion - Jonathon Cai, Richard Shin, Dawn Song, ICLR 2017.
- A Syntactic Neural Model for General-Purpose Code Generation - Pengcheng Yin, Graham Neubig, ACL 2017.
- Program Synthesis from Natural Language Using Recurrent Neural Networks - Xi Victoria Lin, Chenglong Wang, Deric Pang, Kevin Vu, Luke Zettlemoyer, Michael Ernst, 2017.
- RobustFill: Neural Program Learning under Noisy I/O - Jacob Devlin, Jonathan Uesato, Surya Bhupatiraju, Rishabh Singh, Abdel-rahman Mohamed, Pushmeet Kohli, ICML 2017.
- Lifelong Perceptual Programming By Example - Gaunt, Alexander L., Marc Brockschmidt, Nate Kushman, and Daniel Tarlow, 2017.
- Neural Programming by Example - Chengxun Shu, Hongyu Zhang, AAAI 2017.
- DeepCoder: Learning to Write Programs - Balog Matej, Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, and Daniel Tarlow, ICLR 2017.
- A Differentiable Approach to Inductive Logic Programming - Yang Fan, Zhilin Yang, and William W. Cohen, 2017.
- Latent Attention For If-Then Program Synthesis - Xinyun Chen, Chang Liu, Richard Shin, Dawn Song, Mingcheng Chen, NIPS 2016.
- Latent Predictor Networks for Code Generation - Wang Ling, Edward Grefenstette, Karl Moritz Hermann, Tomáš Kočiský, Andrew Senior, Fumin Wang, Phil Blunsom, ACL 2016.
- Neural Symbolic Machines: Learning Semantic Parsers on Freebase with Weak Supervision (Short Version) - Liang Chen, Jonathan Berant, Quoc Le, Kenneth D. Forbus, and Ni Lao, NIPS 2016.
- Programs as Black-Box Explanations - Singh, Sameer, Marco Tulio Ribeiro, and Carlos Guestrin, NIPS 2016.
- Search-Based Generalization and Refinement of Code Templates - Tim Molderez, Coen De Roover, SSBSE 2016.
- Structured Generative Models of Natural Source Code - Chris J. Maddison, Daniel Tarlow, ICML 2014.
Source Code Analysis and Language modeling
- Modeling Vocabulary for Big Code Machine Learning - Hlib Babii, Andrea Janes, Romain Robbes, 2019.
- Generative Code Modeling with Graphs - Marc Brockschmidt, Miltiadis Allamanis, Alexander L. Gaunt, Oleksandr Polozov, ICLR 2019.
- NL2Type: Inferring JavaScript Function Types from Natural Language Information - Rabee Sohail Malik, Jibesh Patra, Michael Pradel, ICSE 2019.
- A Novel Neural Source Code Representation based on Abstract Syntax Tree - Jian Zhang, Xu Wang, Hongyu Zhang, Hailong Sun, Kaixuan Wang, Xudong Liu, ICSE 2019.
- Deep Learning Type Inference - Vincent J. Hellendoorn, Christian Bird, Earl T. Barr and Miltiadis Allamanis, FSE 2018. Code.
- Tree2Tree Neural Translation Model for Learning Source Code Changes - Saikat Chakraborty, Miltiadis Allamanis, Baishakhi Ray, 2018.
- code2seq: Generating Sequences from Structured Representations of Code - Uri Alon, Omer Levy, Eran Yahav, 2018.
- Syntax and Sensibility: Using language models to detect and correct syntax errors - Eddie Antonio Santos, Joshua Charles Campbell, Dhvani Patel, Abram Hindle, and José Nelson Amaral, SANER 2018.
- code2vec: Learning Distributed Representations of Code - Uri Alon, Meital Zilberstein, Omer Levy, Eran Yahav, 2018.
- Learning to Represent Programs with Graphs - Miltiadis Allamanis, Marc Brockschmidt, Mahmoud Khademi, ICLR 2018.
- A Survey of Machine Learning for Big Code and Naturalness - Miltiadis Allamanis, Earl T. Barr, Premkumar Devanbu, Charles Sutton, 2017.
- Are Deep Neural Networks the Best Choice for Modeling Source Code? - Vincent J. Hellendoorn, Premkumar Devanbu, FSE 2017.
- A deep language model for software code - Hoa Khanh Dam, Truyen Tran, Trang Pham, 2016.
- Convolutional Neural Networks over Tree Structures for Programming Language Processing - Lili Mou, Ge Li, Lu Zhang, Tao Wang, Zhi Jin, AAAI-16. Code.
- Suggesting Accurate Method and Class Names - Miltiadis Allamanis, Earl T. Barr, Christian Bird, Charles Sutton, FSE 2015.
- Mining Source Code Repositories at Massive Scale using Language Modeling - Miltiadis Allamanis, Charles Sutton, MSR 2013.
Neural Network Architectures and Algorithms
- Learning Compositional Neural Programs with Recursive Tree Search and Planning - Thomas Pierrot, Guillaume Ligner, Scott Reed, Olivier Sigaud, Nicolas Perrin, Alexandre Laterre, David Kas, Karim Beguir, Nando de Freitas, 2019.
- From Programs to Interpretable Deep Models and Back - Eran Yahav, ICCAV 2018.
- Neural Code Comprehension: A Learnable Representation of Code Semantics - Tal Ben-Nun, Alice Shoshana Jakobovits, Torsten Hoefler, NIPS 2018.
- A General Path-Based Representation for Predicting Program Properties - Uri Alon, Meital Zilberstein, Omer Levy, Eran Yahav, PLDI 2018.
- Cross-Language Learning for Program Classification using Bilateral Tree-Based Convolutional Neural Networks - Nghi D. Q. Bui, Lingxiao Jiang, Yijun Yu, AAAI 2018.
- Bilateral Dependency Neural Networks for Cross-Language Algorithm Classification - Nghi D. Q. Bui, Yijun Yu, Lingxiao Jiang, SANER 2018.
- Syntax-Directed Variational Autoencoder for Structured Data - Hanjun Dai, Yingtao Tian, Bo Dai, Steven Skiena, Le Song, ICLR 2018.
- Divide and Conquer with Neural Networks - Nowak, Alex, and Joan Bruna, ICLR 2018.
- Hierarchical multiscale recurrent neural networks - Chung Junyoung, Sungjin Ahn, and Yoshua Bengio, ICLR 2017.
- Learning Efficient Algorithms with Hierarchical Attentive Memory - Andrychowicz, Marcin, and Karol Kurach, 2016.
- Learning Operations on a Stack with Neural Turing Machines - Deleu, Tristan, and Joseph Dureau, NIPS 2016.
- Probabilistic Neural Programs - Murray, Kenton W., and Jayant Krishnamurthy, NIPS 2016.
- Neural Programmer-Interpreters - Reed, Scott, and Nando de Freitas, ICLR 2016.
- Neural GPUs Learn Algorithms - Kaiser, Łukasz, and Ilya Sutskever, ICLR 2016.
- Neural Random-Access Machines - Karol Kurach, Marcin Andrychowicz, Ilya Sutskever, ERCIM News 2016.
- Neural Programmer: Inducing Latent Programs with Gradient Descent - Neelakantan, Arvind, Quoc V. Le, and Ilya Sutskever, ICLR 2015.
- Learning to Execute - Wojciech Zaremba, Ilya Sutskever, 2015.
- Inferring Algorithmic Patterns with Stack-Augmented Recurrent Nets - Joulin, Armand, and Tomas Mikolov, NIPS 2015.
- Neural Turing Machines - Graves, Alex, Greg Wayne, and Ivo Danihelka, 2014.
- From Machine Learning to Machine Reasoning - Bottou Leon, Journal of Machine Learning 2011.
Embeddings in Software Engineering
- A Literature Study of Embeddings on Source Code - Zimin Chen and Martin Monperrus, 2019.
- AST-Based Deep Learning for Detecting Malicious PowerShell - Gili Rusak, Abdullah Al-Dujaili, Una-May O'Reilly, 2018.
- Deep Code Search - Xiaodong Gu, Hongyu Zhang, Sunghun Kim, ICSE 2018.
- Word Embeddings for the Software Engineering Domain - Vasiliki Efstathiou, Christos Chatzilenas, Diomidis Spinellis, MSR 2018.
-
Code Vectors: Understanding Programs Through Embedded Abstracted Symbolic Traces - Jordan Henkel, Shuvendu K. Lahiri, Ben Liblit, Thomas Reps, FSE 2018.
- Document Distance Estimation via Code Graph Embedding - Zeqi Lin, Junfeng Zhao, Yanzhen Zou, Bing Xie, Internetware 2017.
- Combining Word2Vec with revised vector space model for better code retrieval - Thanh Van Nguyen, Anh Tuan Nguyen, Hung Dang Phan, Trong Duc Nguyen, Tien N. Nguyen, ICSE 2017.
- From word embeddings to document similarities for improved information retrieval in software engineering - Xin Ye, Hui Shen, Xiao Ma, Razvan Bunescu, Chang Liu, ICSE 2016.
- Mapping API Elements for Code Migration with Vector Representation - Trong Duc Nguyen, Anh Tuan Nguyen, Tien N. Nguyen, ICSE 2016.
Program Translation
- Towards Neural Decompilation - Omer Katz, Yuval Olshaker, Yoav Goldberg, Eran Yahav, 2019.
- Tree-to-tree Neural Networks for Program Translation - Xinyun Chen, Chang Liu, Dawn Song, ICLR 2018.
- Code Attention: Translating Code to Comments by Exploiting Domain Features - Wenhao Zheng, Hong-Yu Zhou, Ming Li, Jianxin Wu, 2017.
- Automatically Generating Commit Messages from Diffs using Neural Machine Translation - Siyuan Jiang, Ameer Armaly, Collin McMillan, ASE 2017.
- A Parallel Corpus of Python Functions and Documentation Strings for Automated Code Documentation and Code Generation - Antonio Valerio Miceli Barone, Rico Sennrich, ICNLP 2017.
- A Neural Architecture for Generating Natural Language Descriptions from Source Code Changes - Pablo Loyola, Edison Marrese-Taylor, Yutaka Matsuo, ACL 2017.
Code Suggestion and Completion
- Aroma: Code Recommendation via Structural Code Search - Sifei Luan, Di Yang, Koushik Sen and Satish Chandra, 2019.
- Intelligent Code Reviews Using Deep Learning - Anshul Gupta, Neel Sundaresan, KDD DL Day 2018.
- Code Completion with Neural Attention and Pointer Networks - Jian Li, Yue Wang, Irwin King, Michael R. Lyu, 2017.
- Learning Python Code Suggestion with a Sparse Pointer Network - Avishkar Bhoopchand, Tim Rocktäschel, Earl Barr, Sebastian Riedel, 2016.
- Code Completion with Statistical Language Models - Veselin Raychev, Martin Vechev, Eran Yahav, PLDI 2014.
Program Repair and Bug Detection
- SampleFix: Learning to Correct Programs by Sampling Diverse Fixes - Hossein Hajipour, Apratim Bhattacharya, Mario Fritz, 2019.
- Maximal Divergence Sequential Autoencoder for Binary Software Vulnerability Detection - Tue Le, Tuan Nguyen, Trung Le, Dinh Phung, Paul Montague, Olivier De Vel, Lizhen Qu, ICLR 2019.
- Neural Program Repair by Jointly Learning to Localize and Repair - Marko Vasic, Aditya Kanade, Petros Maniatis, David Bieber, Rishabh Singh, ICLR 2019.
- Compiler Fuzzing through Deep Learning - Chris Cummins, Pavlos Petoumenos, Alastair Murray, Hugh Leather, ISSTA 2018
- Automatically assessing vulnerabilities discovered by compositional analysis - Saahil Ognawala, Ricardo Nales Amato, Alexander Pretschner and Pooja Kulkarni, MASES 2018.
- An Empirical Investigation into Learning Bug-Fixing Patches in the Wild via Neural Machine Translation - Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, Denys Poshyvanyk, ASE 2018.
- DeepBugs: A Learning Approach to Name-based Bug Detection - Michael Pradel, Koushik Sen, 2018.
- Learning How to Mutate Source Code from Bug-Fixes - Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, Denys Poshyvanyk, 2018.
- A deep tree-based model for software defect prediction - HK Dam, T Pham, SW Ng, T Tran, J Grundy, A Ghose, T Kim, CJ Kim, 2018.
- Automated Vulnerability Detection in Source Code Using Deep Representation Learning - Rebecca L. Russell, Louis Kim, Lei H. Hamilton, Tomo Lazovich, Jacob A. Harer, Onur Ozdemir, Paul M. Ellingwood, Marc W. McConley, 2018.
- Shaping Program Repair Space with Existing Patches and Similar Code - Jiajun Jiang, Yingfei Xiong, Hongyu Zhang, Qing Gao, Xiangqun Chen, 2018. (code).
- Learning to Repair Software Vulnerabilities with Generative Adversarial Networks - Jacob A. Harer, Onur Ozdemir, Tomo Lazovich, Christopher P. Reale, Rebecca L. Russell, Louis Y. Kim, Peter Chin, 2018.
- Dynamic Neural Program Embedding for Program Repair - Ke Wang, Rishabh Singh, Zhendong Su, ICLR 2018.
- Estimating defectiveness of source code: A predictive model using GitHub content - Ritu Kapur, Balwinder Sodhi, 2018
- Automated software vulnerability detection with machine learning - Jacob A. Harer, Louis Y. Kim, Rebecca L. Russell, Onur Ozdemir, Leonard R. Kosta, Akshay Rangamani, Lei H. Hamilton, Gabriel I. Centeno, Jonathan R. Key, Paul M. Ellingwood, Marc W. McConley, Jeffrey M. Opper, Peter Chin, Tomo Lazovich, IWSPA 2018.
- Learning a Static Analyzer from Data - Pavol Bielik, Veselin Raychev, Martin Vechev, CAV 2017. video.
- To Type or Not to Type: Quantifying Detectable Bugs in JavaScript - Zheng Gao, Christian Bird, Earl Barr, ICSE 2017.
- Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities - Martin White, Michele Tufano, Matías Martínez, Martin Monperrus, Denys Poshyvanyk, 2017.
- Semantic Code Repair using Neuro-Symbolic Transformation Networks - Jacob Devlin, Jonathan Uesato, Rishabh Singh, Pushmeet Kohli, 2017.
- Automated Identification of Security Issues from Commit Messages and Bug Reports - Yaqin Zhou and Asankhaya Sharma, FSE 2017.
- SmartPaste: Learning to Adapt Source Code - Miltiadis Allamanis, Marc Brockschmidt, 2017.
- End-to-End Prediction of Buffer Overruns from Raw Source Code via Neural Memory Networks - Min-je Choi, Sehun Jeong, Hakjoo Oh, Jaegul Choo, IJCAI 2017.
- Tailored Mutants Fit Bugs Better - Miltiadis Allamanis, Earl T. Barr, René Just, Charles Sutton, 2016.
APIs and Code Mining
- SAR: Learning Cross-Language API Mappings with Little Knowledge - Nghi D. Q. Bui, Yijun Yu, Lingxiao Jiang, FSE 2019.
- Hierarchical Learning of Cross-Language Mappings through Distributed Vector Representations for Code - Nghi D. Q. Bui, Lingxiao Jiang, ICSE 2018.
- DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning - Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, Sunghun Kim, IJCAI 2017.
- Mining Change Histories for Unknown Systematic Edits - Tim Molderez, Reinout Stevens, Coen De Roover, MSR 2017.
- Deep API Learning - Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, Sunghun Kim, FSE 2016.
- Exploring API Embedding for API Usages and Applications - Nguyen, Nguyen, Phan and Nguyen, Journal of Systems and Software 2017.
- API usage pattern recommendation for software development - Haoran Niu, Iman Keivanloo, Ying Zou, 2017.
- Parameter-Free Probabilistic API Mining across GitHub - Jaroslav Fowkes, Charles Sutton, FSE 2016.
- A Subsequence Interleaving Model for Sequential Pattern Mining - Jaroslav Fowkes, Charles Sutton, KDD 2016.
- Lean GHTorrent: GitHub data on demand - Georgios Gousios, Bogdan Vasilescu, Alexander Serebrenik, Andy Zaidman, MSR 2014.
- Mining idioms from source code - Miltiadis Allamanis, Charles Sutton, FSE 2014.
- The GHTorent Dataset and Tool Suite - Georgios Gousios, MSR 2013.
Code Optimization
- The Case for Learned Index Structures - Tim Kraska, Alex Beutel, Ed H. Chi, Jeffrey Dean, Neoklis Polyzotis, SIGMOD 2018.
- End-to-end Deep Learning of Optimization Heuristics - Chris Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather, PACT 2017
- Learning to superoptimize programs - Rudy Bunel, Alban Desmaison, M. Pawan Kumar, Philip H.S. Torr, Pushmeet Kohlim ICLR 2017.
- Neural Nets Can Learn Function Type Signatures From Binaries - Zheng Leong Chua, Shiqi Shen, Prateek Saxena, and Zhenkai Liang, USENIX Security Symposium 2017.
- Adaptive Neural Compilation - Rudy Bunel, Alban Desmaison, Pushmeet Kohli, Philip H.S. Torr, M. Pawan Kumar, NIPS 2016.
- Learning to Superoptimize Programs - Workshop Version - Bunel, Rudy, Alban Desmaison, M. Pawan Kumar, Philip H. S. Torr, and Pushmeet Kohli, NIPS 2016.
Topic Modeling
- A Language-Agnostic Model for Semantic Source Code Labeling - Ben Gelman, Bryan Hoyle, Jessica Moore, Joshua Saxe and David Slater, MASES 2018.
- Topic modeling of public repositories at scale using names in source code - Vadim Markovtsev, Eiso Kant, 2017.
- Why, When, and What: Analyzing Stack Overflow Questions by Topic, Type, and Code - Miltiadis Allamanis, Charles Sutton, MSR 2013.
- Semantic clustering: Identifying topics in source code - Adrian Kuhn, Stéphane Ducasse, Tudor Girba, Information & Software Technology 2007.
Sentiment Analysis
- A Benchmark Study on Sentiment Analysis for Software Engineering Research - Nicole Novielli, Daniela Girardi, Filippo Lanubile, MSR 2018.
- Sentiment Analysis for Software Engineering: How Far Can We Go? - Bin Lin, Fiorella Zampetti, Gabriele Bavota, Massimiliano Di Penta, Michele Lanza, Rocco Oliveto, ICSE 2018.
- Leveraging Automated Sentiment Analysis in Software Engineering - Md Rakibul Islam, Minhaz F. Zibran, MSR 2017.
- Sentiment Polarity Detection for Software Development - Fabio Calefato, Filippo Lanubile, Federico Maiorano, Nicole Novielli, Empirical Software Engineering 2017.
- SentiCR: A Customized Sentiment Analysis Tool for Code Review Interactions - Toufique Ahmed, Amiangshu Bosu, Anindya Iqbal, Shahram Rahimi, ASE 2017.
Code Summarization
- Summarizing Source Code with Transferred API Knowledge - Xing Hu, Ge Li, Xin Xia, David Lo, Shuai Lu, Zhi Jin, IJCAI 2018.
- Deep Code Comment Generation - Xing Hu, Ge Li, Xin Xia, David Lo, Zhi Jin, ICPC 2018.
- A Neural Framework for Retrieval and Summarization of Source Code - Qingying Chen, Minghui Zhou, ASE 2018.
- Improving Automatic Source Code Summarization via Deep Reinforcement Learning - Yao Wan, Zhou Zhao, Min Yang, Guandong Xu, Haochao Ying, Jian Wu and Philip S. Yu, ASE 2018.
- A Convolutional Attention Network for Extreme Summarization of Source Code - Miltiadis Allamanis, Hao Peng, Charles Sutton, ICML 2016.
- TASSAL: Autofolding for Source Code Summarization - Jaroslav Fowkes, Pankajan Chanthirasegaran, Razvan Ranca, Miltiadis Allamanis, Mirella Lapata, Charles Sutton, ICSE 2016.
- Summarizing Source Code using a Neural Attention Model - Srinivasan Iyer, Ioannis Konstas, Alvin Cheung, Luke Zettlemoyer, ACL 2016.
- Automatic Generation of Pull Request Descriptions - Zhongxin Liu, Xin Xia, Christoph Treude, David Lo, Shanping Li, ASE 2019.
Clone Detection
- Learning-Based Recursive Aggregation of Abstract Syntax Trees for Code Clone Detection - Lutz Büch and Artur Andrzejak, SANER 2019.
- Oreo: detection of clones in the twilight zone - Vaibhav Saini, Farima Farmahinifarahani, Yadong Lu, Pierre Baldi, and Cristina V. Lopes, FSE 2018.
- A Deep Learning Approach to Program Similarity - Niccolò Marastoni, Roberto Giacobazzi and Mila Dalla Preda, MASES 2018.
- Recurrent Neural Network for Code Clone Detection - Arseny Zorin and Vladimir Itsykson, SEIM 2018.
- The Adverse Effects of Code Duplication in Machine Learning Models of Code - Miltiadis Allamanis, 2018.
- DéjàVu: a map of code duplicates on GitHub - Cristina V. Lopes, Petr Maj, Pedro Martins, Vaibhav Saini, Di Yang, Jakub Zitny, Hitesh Sajnani, Jan Vitek, Programming Languages OOPSLA 2017.
- Some from Here, Some from There: Cross-project Code Reuse in GitHub - Mohammad Gharehyazie, Baishakhi Ray, Vladimir Filkov, MSR 2017.
- Deep Learning Code Fragments for Code Clone Detection - Martin White, Michele Tufano, Christopher Vendome, and Denys Poshyvanyk, ASE 2016.
- A study of repetitiveness of code changes in software evolution - HA Nguyen, AT Nguyen, TT Nguyen, TN Nguyen, H Rajan, ASE 2013.
Differentiable Interpreters
- DDRprog: A CLEVR Differentiable Dynamic Reasoning Programmer - Joseph Suarez, Justin Johnson, Fei-Fei Li, 2018.
- Improving the Universality and Learnability of Neural Programmer-Interpreters with Combinator Abstraction - Da Xiao, Jo-Yu Liao, Xingyuan Yuan, ICLR 2018.
- Differentiable Programs with Neural Libraries - Alexander L. Gaunt, Marc Brockschmidt, Nate Kushman, Daniel Tarlow, ICML 2017.
- Differentiable Functional Program Interpreters - John K. Feser, Marc Brockschmidt, Alexander L. Gaunt, Daniel Tarlow, 2017.
- Programming with a Differentiable Forth Interpreter - Bošnjak, Matko, Tim Rocktäschel, Jason Naradowsky, and Sebastian Riedel, ICML 2017.
- Neural Functional Programming - Feser John K., Marc Brockschmidt, Alexander L. Gaunt, and Daniel Tarlow, ICLR 2017.
- TerpreT: A Probabilistic Programming Language for Program Induction - Gaunt, Alexander L., Marc Brockschmidt, Rishabh Singh, Nate Kushman, Pushmeet Kohli, Jonathan Taylor, and Daniel Tarlow, NIPS 2016.
Related research
#### AST Differencing
- [ClDiff: Generating Concise Linked Code Differences](https://chenbihuan.github.io/paper/ase18-huang-cldiff.pdf) - Kaifeng Huang, Bihuan Chen, Xin Peng, Daihong Zhou, Ying Wang, Yang Liu, Wenyun Zhao, ASE 2018. [Code](https://github.com/FudanSELab/CLDIFF).
- [Generating Accurate and Compact Edit Scripts Using Tree Differencing](http://www.xifiggam.eu/wp-content/uploads/2018/08/GeneratingAccurateandCompactEditScriptsusingTreeDifferencing.pdf) - Veit Frick, Thomas Grassauer, Fabian Beck, Martin Pinzger, ICSME 2018.
- [Fine-grained and Accurate Source Code Differencing](https://hal.archives-ouvertes.fr/hal-01054552/document) - Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, Martin Monperrus, ASE 2014.
#### Binary Data Modeling
- [Clustering Binary Data with Bernoulli Mixture Models](https://nsgrantham.com/documents/clustering-binary-data.pdf) - Neal S. Grantham.
- [A Family of Blockwise One-Factor Distributions for Modelling High-Dimensional Binary Data](https://arxiv.org/pdf/1511.01343.pdf) - Matthieu Marbac and Mohammed Sedki, Computational Statistics & Data Analysis 2017.
- [BayesBinMix: an R Package for Model Based Clustering of Multivariate Binary Data](https://arxiv.org/pdf/1609.06960.pdf) - Panagiotis Papastamoulis and Magnus Rattray, R Journal 2016.
#### Soft Clustering Using T-mixture Models
- [Robust mixture modelling using the t distribution](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.218.7334&rep=rep1&type=pdf) - D. Peel and G. J. McLachlan, Statistics and Computing 2000.
- [Robust mixture modeling using the skew t distribution](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1030.9865&rep=rep1&type=pdf) - Tsung I. Lin, Jack C. Lee and Wan J. Hsieh, Statistics and Computing 2010.
#### Natural Language Parsing and Comprehension
- [A Fast Unified Model for Parsing and Sentence Understanding](https://arxiv.org/abs/1603.06021) - Samuel R. Bowman, Jon Gauthier, Abhinav Rastogi, Raghav Gupta, Christopher D. Manning, Christopher Potts, ACL 2016.
Posts
Talks
Software
Machine Learning
- Differentiable Neural Computer (DNC) - TensorFlow implementation of the Differentiable Neural Computer.
- sourced.ml - Abstracts feature extraction from source code syntax trees and working with ML models.
- vecino - Finds similar Git repositories.
- apollo - Source code deduplication as scale, research.
- gemini - Source code deduplication as scale, production.
- enry - Insanely fast file based programming language detector.
- hercules - Git repository mining framework with batteries on top of go-git.
- DeepCS - Keras and Pytorch implementations of DeepCS (Deep Code Search).
- Code Neuron - Recurrent neural network to detect code blocks in natural language text.
- Naturalize - Language agnostic framework for learning coding conventions from a codebase and then expoiting this information for suggesting better identifier names and formatting changes in the code.
- Extreme Source Code Summarization - Convolutional attention neural network that learns to summarize source code into a short method name-like summary by just looking at the source code tokens.
- Summarizing Source Code using a Neural Attention Model - CODE-NN, uses LSTM networks with attention to produce sentences that describe C# code snippets and SQL queries from StackOverflow. Torch over C#/SQL
- Probabilistic API Miner - Near parameter-free probabilistic algorithm for mining the most interesting API patterns from a list of API call sequences.
- Interesting Sequence Miner - Novel algorithm that mines the most interesting sequences under a probabilistic model. It is able to efficiently infer interesting sequences directly from the database.
- TASSAL - Tool for the automatic summarization of source code using autofolding. Autofolding automatically creates a summary of a source code file by folding non-essential code and comment blocks.
- JNice2Predict - Efficient and scalable open-source framework for structured prediction, enabling one to build new statistical engines more quickly.
- Clone Digger - clone detection for Python and Java.
- Sensibility - Uses LSTMs to detect and correct syntax errors in Java source code.
- DeepBugs - Framework for learning bug detectors from an existing code corpus.
- DeepSim - a deep learning-based approach to measure code functional similarity.
- rnn-autocomplete - Neural code autocompletion with RNN (bachelor's thesis).
- MindsDB - MindsDB is an Explainable AutoML framework for developers. With MindsDB you can build, train and use state of the art ML models in as simple as one line of code.
Utilities
- go-git - Highly extensible Git implementation in pure Go which is friendly to data mining.
- bblfsh - Self-hosted server for source code parsing.
- engine - Scalable and distributed data retrieval pipeline for source code.
- minhashcuda - Weighted MinHash implementation on CUDA to efficiently find duplicates.
- kmcuda - k-means on CUDA to cluster and to search for nearest neighbors in dense space.
- wmd-relax - Python package which finds nearest neighbors at Word Mover's Distance.
- Tregex, Tsurgeon and Semgrex - Tregex is a utility for matching patterns in trees, based on tree relationships and regular expression matches on nodes (the name is short for "tree regular expressions").
- source{d} models - Machine Learning models for MLonCode trained using the source{d} stack.
Datasets
- Neural-Code-Search-Evaluation-Dataset - dataset contains links to 4.7M methods from 24k+ repositories with 287 StackOverflow questions and code snippet answers.
- CodeSearchNet - collection of datasets and benchmarks for code retrieval using natural language. Contains 2M pairs of (
comment
, code
).
- Public Git Archive - 6 TB of Git repositories from GitHub.
- StackOverflow Question-Code Dataset - ~148K Python and ~120K SQL question-code pairs mined from StackOverflow.
- GitHub Issue Titles and Descriptions for NLP Analysis - ~8 million GitHub issue titles and descriptions from 2017.
- GitHub repositories - languages distribution - Programming languages distribution in 14,000,000 repositories on GitHub (October 2016).
- 452M commits on GitHub - ≈ 452M commits' metadata from 16M repositories on GitHub (October 2016).
- GitHub readme files - Readme files of all GitHub repositories (16M) (October 2016).
- from language X to Y - Cache file Erik Bernhardsson collected for his awesome blog post.
- GitHub word2vec 120k - Sequences of identifiers extracted from top starred 120,000 GitHub repositories.
- GitHub Source Code Names - Names in source code extracted from 13M GitHub repositories, not people.
- GitHub duplicate repositories - GitHub repositories not marked as forks but very similar to each other.
- GitHub lng keyword frequencies - Programming language keyword frequency extracted from 16M GitHub repositories.
- GitHub Java Corpus - GitHub Java corpus is a set of Java projects collected from GitHub that we have used in a number of our publications. The corpus consists of 14,785 projects and 352,312,696 LOC.
- 150k Python Dataset - Dataset consisting of 150,000 Python ASTs.
- 150k JavaScript Dataset - Dataset consisting of 150,000 JavaScript files and their parsed ASTs.
- card2code - This dataset contains the language to code datasets described in the paper Latent Predictor Networks for Code Generation.
- NL2Bash - This dataset contains a set of ~10,000 bash one-liners collected from websites such as StackOverflow and their English descriptions written by Bash programmers, as described in the paper.
- GitHub JavaScript Dump October 2016 - Dataset consisting of 494,352 syntactically-valid JavaScript files obtained from the top ~10000 starred JavaScript repositories on GitHub, with licenses, and parsed ASTs.
- BigCloneBench - Clone detection benchmark of 8 million function clone pairs in the IJaDataset.
Credits
Contributions
See CONTRIBUTING.md. TL;DR: create a pull request which is signed off.
License