├── .gitignore
├── LICENSE
├── README.md
└── figs
└── dlapr.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
131 | # Mac Finder
132 | .DS_Store
133 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 tamlhp
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Awesome Learning-based APR
2 | [](https://awesome.re)
3 | [](https://arxiv.org/abs/2301.03270)
4 | 
5 | 
6 |
7 | 🔥🔥🔥[2024-05-03] We have released a new paper about LLM4APR, [A Systematic Literature Review on Large Language Models for Automated Program Repair](https://arxiv.org/abs/2405.01466). Please refer to
and
8 |
9 |
10 |
11 |
12 | A collection of academic publications, methodology, metrics and datasets on the subject of **automated program repair enhanced with deep/machine learning techniques**.
13 |
14 |
15 |
16 | We welcome all researchers to contribute to this repository and further contribute to the knowledge of the learning-based APR field.
17 | Please feel free to contact us if you have any related references by Github issue or pull request.
18 |
19 | ## Citation
20 |
21 | Please read and cite our paper: [](https://arxiv.org/abs/2301.03270)
22 |
23 | ```
24 | @article{zhang2023survey,
25 | title = {A Survey of Learning-Based Automated Program Repair},
26 | author = {Zhang, Quanjun and Fang, Chunrong and Ma, Yuxiang and Sun, Weisong and Chen, Zhenyu},
27 | journal={ACM Transactions on Software Engineering and Methodology},
28 | volume={33},
29 | number={2},
30 | pages={1--69},
31 | year={2023},
32 | publisher={ACM New York, NY}
33 | }
34 | ```
35 |
36 | ----------
37 |
38 | ## A Framework of Deep Learning-based APR
39 | 
40 | ----------
41 |
42 | ## Collected Papers
43 | | **Paper Title** | **Venue** | **Year** | **Code Available**|
44 | | --------------- | ---- | ---- | --- |
45 | | [Neural Transfer Learning for Repairing Security Vulnerabilities in C Code](https://ieeexplore.ieee.org/abstract/document/9699412/) | _TSE_ | 2022 | [yes](https://github.com/SteveKommrusch/VRepair) |
46 | | [Vulrepair: A T5-based Automated Software Vulnerability Repair](https://dl.acm.org/doi/abs/10.1145/3540250.3549098) | _ESEC/FSE_ | 2022 |[yes](https://github.com/awsm-research/VulRepair)|
47 | | [Seqtrans: Automatic Vulnerability Fix Via Sequence to Sequence Learning](https://ieeexplore.ieee.org/abstract/document/9729554/) | _TSE_ | 2022 |[yes](https://github.com/chijianlei/SeqTrans)|
48 | | [Learning to Repair Software Vulnerabilities with Generative Adversarial Networks](https://proceedings.neurips.cc/paper/2018/hash/68abef8ee1ac9b664a90b0bbaff4f770-Abstract.html) | _NeurIPS_ | 2018 | no |
49 | | [Repairing Security Vulnerabilities Using Pre-trained Programming Language Models](https://ieeexplore.ieee.org/abstract/document/9833850/) | _DSNW_ | 2022 | no |
50 | | [Spvf: Security Property Assisted Vulnerability Fixing Via Attention-based Models](https://link.springer.com/article/10.1007/s10664-022-10216-4) | _ESE_ | 2022 | no |
51 | | [Vurle: Automatic Vulnerability Detection and Repair by Learning from Examples](https://link.springer.com/chapter/10.1007/978-3-319-66399-9_13) | _ESORICS_ | 2017 | no |
52 | | [Synshine: Improved Fixing of Syntax Errors](https://ieeexplore.ieee.org/abstract/document/9913705/) | _TSE_ | 2022 |[yes](https://zenodo.org/record/4572390#.Y4CY8xRByUk)|
53 | | [Deepfix: Fixing Common C Language Errors by Deep Learning](https://ojs.aaai.org/index.php/AAAI/article/view/10742) | _AAAI_ | 2017 | no |
54 | | [Break-it-fix-it: Unsupervised Learning for Program Repair](http://proceedings.mlr.press/v139/yasunaga21a.html) | _ICML_ | 2021 | [yes](https://github.com/michiyasunaga/bifi)|
55 | | [Tfix: Learning to Fix Coding Errors with a Text-to-text Transformer](http://proceedings.mlr.press/v139/berabi21a.html) | _ICML_ | 2021 |[yes](https://github.com/eth-sri/TFix)|
56 | | [Deepdelta: Learning to Repair Compilation Errors](https://dl.acm.org/doi/abs/10.1145/3338906.3340455) | _ESE/FSE_ | 2019 | no |
57 | | [Syntax and Sensibility: Using Language Models to Detect and Correct Syntax Errors](https://ieeexplore.ieee.org/abstract/document/8330219/) | _SANER_ | 2018 | no |
58 | | [Learning Lenient Parsing \& Typing Via Indirect Supervision](https://link.springer.com/article/10.1007/s10664-021-09942-y) | _ESE_ | 2021 | [yes](https://doi.org/10.5281/zenodo.3374019)|
59 | | [Deep Reinforcement Learning for Syntactic Error Repair in Student Programs](https://ojs.aaai.org/index.php/AAAI/article/view/3882) | _AAAI_ | 2019 | [yes](https://bitbucket.org/iiscseal/rlassist)|
60 | | [Neuro-symbolic Program Corrector for Introductory Programming Assignments](https://dl.acm.org/doi/abs/10.1145/3180155.3180219) | _ICSE_ | 2018 | no |
61 | | [Samplefix: Learning to Generate Functionally Diverse Fixes](https://link.springer.com/chapter/10.1007/978-3-030-93733-1_8) | _ECML_ | 2021 | no |
62 | | [Ggf: A graph-based method for programming language syntax error correction](https://dl.acm.org/doi/abs/10.1145/3387904.3389252) | _ICPC_ | 2020 | no |
63 | | [Compilation Error Repair: For the Student Programs, from the Student Programs](https://dl.acm.org/doi/abs/10.1145/3183377.3183383) | _ICSE-SEET_ | 2018 | no|
64 | | [Search, Align, and Repair: Data-driven Feedback Generation for Introductory Programming Exercises](https://dl.acm.org/doi/abs/10.1145/3192366.3192384) | _PLDI_ | 2018 | no|
65 | | [Dynamic Neural Program Embeddings for Program Repair](https://arxiv.org/abs/1711.07163) | _ICLR_ | 2018 |[yes](https://github.com/keowang/dynamic-program-embedding)|
66 | | [Repairing Bugs in Python Assignments Using Large Language Models](https://arxiv.org/abs/2209.14876) | _arxiv_ | 2021 | no |
67 | | [Verifix: Verified Repair of Programming Assignments](https://dl.acm.org/doi/abs/10.1145/3510418) | _TOSEM_ | 2022 | [yes](https://github.com/zhiyufan/Verifix)|
68 | | [Generating Concise Patches for Newly Released Programming Assignments](https://ieeexplore.ieee.org/abstract/document/9720157/) | _TSE_ | 2022 | no |
69 | | [Automated correction for syntax errors in programming assignments using recurrent neural networks](https://arxiv.org/abs/1603.06129) | _arxiv_ | 2016 | no |
70 | | [Improving Automatically Generated Code from Codex Via Automated Program Repair](https://arxiv.org/abs/2205.10583) | _arxiv_ | 2022 | no |
71 | | [Synthesize, Execute and Debug: Learning to Repair for Neural Program Synthesis](https://proceedings.neurips.cc/paper/2020/hash/cd0f74b5955dc87fd0605745c4b49ee8-Abstract.html) | _NeurIPS_ | 2020 | no |
72 | | [Detecting and Fixing Nonidiomatic Snippets in Python Source Code with Deep Learning](https://link.springer.com/chapter/10.1007/978-3-030-82193-7_9) | _ISC_ | 2021 | no |
73 | | [Getafix: Learning to Fix Bugs Automatically](https://dl.acm.org/doi/abs/10.1145/3360585) | _OOPSLA_ | 2019 | no |
74 | | [A Software-repair Robot Based on Continual Learning](https://ieeexplore.ieee.org/abstract/document/9393494/) | _IEEE Software_ | 2021 | [yes](https://github.com/repairnator/open-science-repairnator/tree/master/data/2020-r-hero) |
75 | | [Self-supervised Bug Detection and Repair](https://proceedings.neurips.cc/paper/2021/hash/ea96efc03b9a050d895110db8c4af057-Abstract.html) | _NeurIPS_ | 2021 | [yes](https://github.com/microsoft/neurips21-self-supervised-bug-detection-and-repair) |
76 | | [Deepdebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and Code Skeletons](https://arxiv.org/abs/2105.09352) | _arxiv_ | 2021 | no |
77 | | [Generating Bug-fixes Using Pretrained Transformers](https://dl.acm.org/doi/abs/10.1145/3460945.3464951) | _MAPS_ | 2021 | no |
78 | | [Global Relational Models of Source Code](https://research.google/pubs/pub49316/) | _ICLR_ | 2019 | [yes](https://github.com/VHellendoorn/ICLR20-Great) |
79 | | [Fix Bugs with Transformer through a Neural-symbolic Edit Grammar](https://arxiv.org/abs/2204.06643) | _arxiv_ | 2022 | no |
80 | | [Grammar-based Patches Generation for Automated Program Repair](https://aclanthology.org/2021.findings-acl.111.pdf) | _ACL-IJCNLP_ | 2021 | no |
81 | | [Leveraging Causal Inference for Explainable Automatic Program Repair](https://ieeexplore.ieee.org/abstract/document/9892168/) | _arxiv_ | 2022 | no |
82 | | [Codebert: A Pre-trained Model for Programming and Natural Languages](https://arxiv.org/abs/2002.08155) | _EMNLP_ | 2020 | [yes](https://github.com/microsoft/CodeBERT) |
83 | | [Codet5: Identifier-aware Unified Pre-trained Encoder-decoder Models for Code Understanding and Generation](https://arxiv.org/abs/2109.00859) | _EMNLP_ | 2021 | [yes](https://github.com/salesforce/CodeT5) |
84 | | [Graphcodebert: Pre-training Code Representations with Data Flow](https://arxiv.org/abs/2009.08366) | _ICLR_ | 2021 | [yes](https://github.com/microsoft/CodeBERT) |
85 | | [Using Transfer Learning for Code-related Tasks](https://ieeexplore.ieee.org/abstract/document/9797060/) | _TSE_ | 2022 | [yes](https://github.com/antonio-mastropaolo/TransferLearning4Code) |
86 | | [Spt-code: Sequence-to-sequence Pre-training for Learning the Representation of Source Code](https://arxiv.org/abs/2201.01549) | _ICSE_ | 2022 | [yes](https://github.com/NougatCA/SPT-Code) |
87 | | [Circle: Continual Repair across Programming Languages](https://dl.acm.org/doi/abs/10.1145/3533767.3534219) | _ISSTA_ | 2022 | [yes](https://github.com/2022CIRCLE/CIRCLE) |
88 | | [On Multi-modal Learning of Editing Source Code](https://ieeexplore.ieee.org/abstract/document/9678559/) | _ASE_ | 2021 | no |
89 | | [Patch Generation with Language Models: Feasibility and Scaling Behavior](https://openreview.net/forum?id=rHlzJh_b1-5) | _ICLR-DL4C_ | 2022 | no |
90 | | [Can We Learn from Developer Mistakes? Learning to Localize and Repair Real Bugs from Real Bug Fixes](https://arxiv.org/abs/2207.00301) | _arxiv_ | 2022 | [yes](https://github.com/cedricrupb/nbfbaselines) |
91 | | [Coditt5: Pretraining for Source Code and Natural Language Editing](https://dl.acm.org/doi/abs/10.1145/3551349.3556955) | _ASE_ | 2022 | [yes](https://github.com/EngineeringSoftware/CoditT5) |
92 | | [Applying Codebert for Automated Program Repair of Java Simple Bugs](https://ieeexplore.ieee.org/abstract/document/9463106/) | _MSR_ | 2021 | [yes](https://github.com/EhsanMashhadi/MSR2021-ProgramRepair) |
93 | | [Towards Javascript Program Repair with Generative Pre-trained Transformer (gpt-2)](https://dl.acm.org/doi/abs/10.1145/3524459.3527350) | _APR_ | 2022 | [yes](https://github.com/RGAI-USZ/APR22-JS-GPT) |
94 | | [Can Openai's Codex Fix Bugs? An Evaluation on Quixbugs](https://dl.acm.org/doi/abs/10.1145/3524459.3527351) | _APR_ | 2022 | no |
95 | | [Glad: Neural Predicate Synthesis to Repair Omission Faults](https://arxiv.org/abs/2204.06771) | _arxiv_ | 2022 | no |
96 | | [Less Training, More Repairing Please: Revisiting Automated Program Repair Via Zero-shot Learning](https://dl.acm.org/doi/abs/10.1145/3540250.3549101) | _ESEC/FSE_ | 2022 | no |
97 | | [Automatic Patch Generation by Learning Correct Code](https://dl.acm.org/doi/abs/10.1145/2837614.2837617) | _POPL_ | 2016 | no |
98 | | [Program Repair with Repeated Learning](https://ieeexplore.ieee.org/abstract/document/9749899/) | _TSE_ | 2022 | no |
99 | | [Improving Fault Localization and Program Repair with Deep Semantic Features and Transferred Knowledge](https://dl.acm.org/doi/abs/10.1145/3510003.3510147) | _ICSE_ | 2022 | [yes](https://github.com/mxx1219/TRANSFER) |
100 | | [Improving Search-based Automatic Program Repair with Neural Machine Translation](https://ieeexplore.ieee.org/abstract/document/9749095/) | _IEEE Access_ | 2022 | no |
101 | | [Siturepair: Incorporating Machine-learning Fault Class Prediction to Inform Situational Multiple Fault Automatic Program Repair](https://www.sciencedirect.com/science/article/pii/S1874548222000178) | _IJCIP_ | 2022 | no |
102 | | [Dear: A Novel Deep Learning-based Approach for Automated Program Repair](https://dl.acm.org/doi/abs/10.1145/3510003.3510177) | _ICSE_ | 2022 | [yes](https://github.com/AutomatedProgramRepair-2021/dear-auto-fix) |
103 | | [Graphix: A Pre-trained Graph Edit Model for Automated Program Repair](https://openreview.net/forum?id=uB12zutkXJR) | __ | 2021 | no |
104 | | [Can We Automatically Fix Bugs by Learning Edit Operations?](https://ieeexplore.ieee.org/abstract/document/9825852/) | _SANER_ | 2022 | [yes](https://github.com/WM-SEMERU/hephaestus) |
105 | | [Language Models Can Prioritize Patches for Practical Program Patching](https://dl.acm.org/doi/abs/10.1145/3524459.3527343) | _APR_ | 2022 | no |
106 | | [Predicting Patch Correctness Based on the Similarity of Failing Test Cases](https://dl.acm.org/doi/abs/10.1145/3511096) | _TOSEM_ | 2022 | [yes](https://github.com/HaoyeTianCoder/BATS) |
107 | | [Defect Identification, Categorization, and Repair: Better Together](https://arxiv.org/abs/2204.04856) | _arxiv_ | 2022 | [yes](https://zenodo.org/record/5353354#.Y4CVdhRByUl) |
108 | | [Selfapr: Self-supervised Program Repair with Test Execution Diagnostics](https://arxiv.org/abs/2203.12755) | _ASE_ | 2022 | [yes](https://github.com/ASSERT-KTH/SelfAPR) |
109 | | [Crex: Predicting Patch Correctness in Automated Repair of C Programs through Transfer Learning of Execution Semantics](https://www.sciencedirect.com/science/article/pii/S0950584922001562) | _IST_ | 2022 | [yes](https://github.com/1993ryan/crex) |
110 | | [Bug-transformer: Automated Program Repair Using Attention-based Deep Neural Network](https://www.worldscientific.com/doi/abs/10.1142/S0218126622502103) | _JCSC_ | 2022 | no |
111 | | [Katana: Dual Slicing-based Context for Learning Bug Fixes](https://arxiv.org/abs/2205.00180) | _arxiv_ | 2022 | no |
112 | | [Oapr-homl'1: Optimal Automated Program Repair Approach Based on Hybrid Improved Grasshopper Optimization and Opposition Learning Based Artificial Neural Network](https://www.koreascience.or.kr/article/JAKO202213341729825.page) | _IJCSDS_ | 2022 | no |
113 | | [Repair Is Nearly Generation: Multilingual Program Repair with Llms](https://arxiv.org/abs/2208.11640) | _arxiv_ | 2022 | no |
114 | | [Practical Program Repair in the Era of Large Pre-trained Language Models](https://arxiv.org/abs/2210.14179) | _arxiv_ | 2022 | no |
115 | | [Context-aware Code Change Embedding for Better Patch Correctness Assessment](https://dl.acm.org/doi/abs/10.1145/3505247) | _TOSEM_ | 2022 | [yes](https://github.com/Ringbo/Cache) |
116 | | [Attention: Not Just Another Dataset for Patch-correctness Checking](https://arxiv.org/abs/2207.06590) | _arxiv_ | 2022 | [yes](https://github.com/anonymous0903/patch_correctness) |
117 | | [Is This Change the Answer to That Problem? Correlating Descriptions of Bug and Code Changes for Evaluating Patch Correctness](https://arxiv.org/abs/2208.04125) | _ASE_ | 2022 | [yes](https://github.com/Trustworthy-Software/Quatrain) |
118 | | [Patch Correctness Assessment in Automated Program Repair Based on the Impact of Patches on Production and Test Code](https://dl.acm.org/doi/abs/10.1145/3533767.3534368) | _ISSTA_ | 2022 | [yes](https://github.com/ali-ghanbari/shibboleth) |
119 | | [The Best of Both Worlds: Combining Learned Embeddings with Engineered Features for Accurate Prediction of Correct Patches](https://dl.acm.org/doi/abs/10.1145/3576039) | _TOSEM_ | 2022 | [yes](https://github.com/HaoyeTianCoder/Panther) |
120 | | [M3v: Multi-modal Multi-view Context Embedding for Repair Operator Prediction](https://ieeexplore.ieee.org/abstract/document/9741261/) | _CGO_ | 2022 | no |
121 | | [Identifying Incorrect Patches in Program Repair Based on Meaning of Source Code](https://ieeexplore.ieee.org/abstract/document/9690887/) | _IEEE Access_ | 2022 | [yes](https://github.com/ngocpq/MIPI) |
122 | | [Towards Boosting Patch Execution On-the-fly](https://dl.acm.org/doi/abs/10.1145/3510003.3510117) | _ICSE_ | 2022 | no |
123 | | [Cure: Code-aware Neural Machine Translation for Automatic Program Repair](https://ieeexplore.ieee.org/abstract/document/9401997/) | _ICSE_ | 2021 | no |
124 | | [A Syntax-guided Edit Decoder for Neural Program Repair](https://dl.acm.org/doi/abs/10.1145/3468264.3468544) | _ESEC/FSE_ | 2021 | [yes](https://github.com/pkuzqh/Recoder) |
125 | | [Sequencer: Sequence-to-sequence Learning for End-to-end Program Repair](https://ieeexplore.ieee.org/abstract/document/8827954/) | _TSE_ | 2019 | [yes](https://github.com/kth/SequenceR) |
126 | | [A Controlled Experiment of Different Code Representations for Learning-based Program Repair](https://linkspringer.53yu.com/article/10.1007/s10664-022-10223-5) | _ESE_ | 2022 | [yes](https://github.com/annon-reptory/reptory) |
127 | | [Neural Program Repair with Execution-based Backpropagation](https://dl.acm.org/doi/abs/10.1145/3510003.3510222) | _ICSE_ | 2022 | [yes](https://github.com/SophieHYe/RewardRepair) |
128 | | [A Bidirectional Lstm Language Model for Code Evaluation and Repair](https://www.mdpi.com/982256) | _SYM_ | 2021 | no |
129 | | [Grasp: Graph-to-sequence Learning for Automated Program Repair](https://ieeexplore.ieee.org/abstract/document/9724652/) | _QRS_ | 2021 | no |
130 | | [Jointly Learning to Repair Code and Generate Commit Message](https://arxiv.53yu.com/abs/2109.12296) | _arxiv_ | 2021 | no |
131 | | [Evaluating Large Language Models Trained on Code](https://arxiv.53yu.com/abs/2107.03374) | _arxiv_ | 2021 | [yes](https://github.com/openai/human-eval) |
132 | | [Automated Classification of Overfitting Patches with Statically Extracted Code Features](https://ieeexplore.ieee.org/abstract/document/9399306/) | _TSE_ | 2022 | [yes](https://github.com/SophieHYe/ODSExperiment) |
133 | | [Application of Seq2seq Models on Code Correction](https://frontiersin.yncjkj.com/articles/10.3389/frai.2021.590215/full) | _FRAI_ | 2021 | [yes](https://github.com/shan-huang-1993/PLC-Pyramid) |
134 | | [Exploring Plausible Patches using Source Code Embeddings in Javascript](https://ieeexplore.ieee.org/abstract/document/9474540/) | _APR_ | 2022 | no |
135 | | [Fast and Precise On-the-fly Patch Validation for All](https://ieeexplore.ieee.org/abstract/document/9402121/) | _ICSE_ | 2021 | no |
136 | | [How Does Regression Test Selection Affect Program Repair? An Extensive Study on 2 Million Patches](https://arxiv.53yu.com/abs/2105.07311) | _arxiv_ | 2021 | no |
137 | | [Coconut: Combining Context-aware Neural Translation Models Using Ensemble for Program Repair](https://dl.acm.org/doi/abs/10.1145/3395363.3397369) | _ISSTA_ | 2020 | [yes](https://github.com/lin-tan/CoCoNut-Artifact) |
138 | | [Dlfix: Context-based Code Transformation Learning for Automated Program Repair](https://dl.acm.org/doi/abs/10.1145/3377811.3380345) | _ICSE_ | 2020 | [yes](https://github.com/ICSE-2019-AUTOFIX/ICSE-2019-AUTOFIX) |
139 | | [Graph-based, Self-supervised Program Repair from Diagnostic Feedback](https://proceedings.mlr.press/v119/yasunaga20a.html) | _ICML_ | 2020 | [yes](https://github.com/michiyasunaga/DrRepair) |
140 | | [Human-in-the-loop Automatic Program Repair](https://ieeexplore.ieee.org/abstract/document/9159083/) | _ICST_ | 2020 | [yes](https://github.com/mboehme/learn2fix) |
141 | | [Hoppity: Learning Graph Transformations to Detect and Fix Bugs in Programs](https://par.nsf.gov/servlets/purl/10210341) | _ICLR_ | 2020 | no |
142 | | [Applying Deep Learning Algorithm to Automatic Bug Localization and Repair](https://dl.acm.org/doi/abs/10.1145/3341105.3374005) | _SAC_ | 2020 | no |
143 | | [Evaluating Representation Learning of Code Changes for Predicting Patch Correctness in Program Repair](https://dl.acm.org/doi/abs/10.1145/3324884.3416532) | _ASE_ | 2020 | [yes](https://github.com/TruX-DTF/DL4PatchCorrectness) |
144 | | [Patching As Translation: The Data and the Metaphor](https://dl.acm.org/doi/abs/10.1145/3324884.3416587) | _ASE_ | 2020 | [yes](https://github.com/ARiSE-Lab/Patch-as-translation) |
145 | | [Codit: Code Editing with Tree-based Neural Models](https://ieeexplore.ieee.org/abstract/document/9181462/) | _TSE_ | 2022 | no |
146 | | [Learning to Generate Corrective Patches Using Neural Machine Translation](https://arxiv.53yu.com/abs/1812.07170) | _arxiv_ | 2018 | no |
147 | | [On Learning Meaningful Code Changes Via Neural Machine Translation](https://ieeexplore.ieee.org/abstract/document/8811910/) | _ICSE_ | 2019 | [yes](https://sites.google.com/view/learning-codechanges) |
148 | | [Sorting and Transforming Program Repair Ingredients Via Deep Learning Code Similarities](https://ieeexplore.ieee.org/abstract/document/8668043/) | _SANER_ | 2019 | no |
149 | | [An Empirical Study on Learning Bug-fixing Patches in the Wild Via Neural Machine Translation](https://dl.acm.org/doi/abs/10.1145/3340544) | _TOSEM_ | 2019 | [yes](https://sites.google.com/view/learning-fixes) |
150 | | [Automatic Repair and Type Binding of Undeclared Variables Using Neural Networks](https://search.proquest.com/openview/8f87254364b7c7d94995d0119b177419/1?pq-origsite=gscholar&cbl=18750&diss=y) | __ | 2019 | no |
151 | | [Encore: Ensemble Learning Using Convolution Neural Machine Translation for Automatic Program Repair](https://arxiv.53yu.com/abs/1906.08691) | _arxiv_ | 2019 | no |
152 | | [Neural Program Repair by Jointly Learning to Localize and Repair](https://arxiv.53yu.com/abs/1904.01720) | _arxiv_ | 2019 | no |
153 | | [Sequence to Sequence Machine Learning for Automatic Program Repair](https://www.diva-portal.org/smash/record.jsf?pid=diva2:1330082) | __ | 2019 | no |
154 | | [Learning the Relation between Code Features and Code Transforms with Structured Prediction](https://arxiv.53yu.com/abs/1907.09282) | _arxiv_ | 2019 | no |
155 | | [Learning to Represent Edits](https://arxiv.53yu.com/abs/1810.13337) | _arxiv_ | 2018 | no |
156 | | [Dynamic Neural Program Embedding for Program Repair](https://arxiv.53yu.com/abs/1711.07163) | _arxiv_ | 2017 | [yes](https://github.com/keowang/dynamic-program-embedding) |
157 | | [Semantic Code Repair Using Neuro-symbolic Transformation Networks](https://arxiv.53yu.com/abs/1710.11054) | _arxiv_ | 2017 | [yes](https://iclr2018anon.github.io/semantic_code_repair/) |
158 | | [Automated Program Repair Using Genetic Programming and Model Checking](https://linkspringer.53yu.com/article/10.1007/s10489-016-0804-0) | _Applied Intelligence_ | 2016 | no |
159 | | []() | _arxiv_ | 2019 | no |
160 |
161 |
162 | ----------
163 |
164 | ## Datasets
165 | * Some datasets are named after the model or author because these datasets do not have names
166 |
167 | | Dataset | Language | #Items | Test Case | #Papers Used |
168 | | :-- | --- | --- | --- | --- |
169 | | Bears | Java | 251 | yes | 2+ papers |
170 | | BFP medium | Java | 65454 | no | 9+ papers |
171 | | BFP samll | Java | 58350 | no | 9+ papers |
172 | | BigFix | Java | 1.824 M | no | 2+ papers |
173 | | Bugs2Fix | Java | 92849 | no | 2+ papers |
174 | | Bugs.jar | Java | 1158 | yes | 3+ papers |
175 | | Code-Change-Data | Java | 44372 | no | 1+ papers |
176 | | CodeXGlue | Java | 122 K | no | 1+ papers |
177 | | CodRep | Java | 58069 | no | 2+ papers |
178 | | CPatMiner | Java | 44 K | no | 1+ papers |
179 | | DeepRepair | Java | 374 | no | 1+ papers |
180 | | Defects4J | Java | 835 | yes | 11+ papers |
181 | | Function-SStuBs4J | Java | 21047 | no | 1+ papers |
182 | | IntroClassJava | Java | 998 | yes | 2+ papers |
183 | | Java-med | Java | 7454 | no | 1+ papers |
184 | | ManySStuBs4J large | Java | 63923 | no | 1+ papers |
185 | | ManySStuBs4J small | Java | 10231 | no | 2+ papers |
186 | | MegaDiff | Java | 663029 | no | 1+ papers |
187 | | Ponta | Java | 624 | no | 1+ papers |
188 | | Pull-Request-Data | Java | 10666 | no | 2+ papers |
189 | | Ratchet | Java | 35 K | no | 1+ papers |
190 | | Recoder | Java | 103585 | no | 1+ papers |
191 | | TRANSFER | Java | 408091 | no | 1+ papers |
192 | | Mesbah | Java | 4.8 M | no | 1+ papers |
193 | | AOJ | C | 2482 | no | 1+ papers |
194 | | Big-Vul | C | 3745 | no | 1+ papers |
195 | | Code4Bench | C | 25 K | yes | 1+ papers |
196 | | CodeHunt | C | 195 K | yes | 1+ papers |
197 | | CVEFixes | C | | 8482 | 2+ papers |
198 | | DeepFix | C | 6971 | yes | 6+ papers |
199 | | ManyBugs | C | 185 | yes | 3+ papers |
200 | | Prophet | C | 69 | yes | 2+ papers |
201 | | Prutor | C | 6971 | yes | 2+ papers |
202 | | BugAID | JS | 105133 | no | 4+ papers |
203 | | BugsJS | JS | 453 | yes | 1+ papers |
204 | | HOPPITY | JS | 363 K | no | 1+ papers |
205 | | KATANA | JS | 114 K | no | 1+ papers |
206 | | REPTORY | JS | 407 K | no | 1+ papers |
207 | | TFix | JS | 100 K | no | 1+ papers |
208 | | ETH Py150 | Python | 150 K | no | 3+ papers |
209 | | GitHub-Python | Python | 3 M | no | 1+ papers |
210 | | Mester | Python | 13 K | no | 1+ papers |
211 | | PyPIBug | Python | 2374 | no | 2+ papers |
212 | | SSB-9M | Python | 9 M | no | 1+ papers |
213 | | VUDENC | Python | 10 K | no | 1+ papers |
214 | | Chhatbar | Python | 286 | yes | 1+ papers |
215 | | SPoC | C++ | 18356 | yes | 1+ papers |
216 | | QuixBugs | Java,Python | 40 | yes | 11+ papers |
217 | | DeepDebug | Java,Python | 523 | no | 2+ papers |
218 | | MSR20 | C,C++ | 188K | no | 1+ papers |
219 | | CoCoNut | Java,C,JS,Python | 24 M | yes | 4+ papers |
220 | | CodeFlaw | C,Python | 3902 | yes | 3+ papers |
221 | | ENCORE | Java,C++,JS,Python | 9.2 M | no | 1+ papers |
222 |
223 |
224 |
225 | ----------
226 | ## Evaluation Metrics
227 | | Metrics | Formula/Description |
228 | | ---- | ---- |
229 | | Accuracy | Accuracy measures the percentage of candidate patches in which the sequence predicted by the model equals the ground truth |
230 | | BLEU | BLUE score measures how similar the predicted candidate patch and the ground truth is |
231 | | Compilable Patch | Such a candidate patch makes the patched buggy program compile successfully |
232 | | Plausible Patch | Such a compilable patch fixes the buggy functionality without harming existing functionality (i.e., passing all available test suites) |
233 | | Correct Patch | Such a plausible patch is semantically or syntactically equivalent to the developer patch (i.e., generalizing the potential test suite) |
234 |
235 |
236 |
237 |
--------------------------------------------------------------------------------
/figs/dlapr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iSEngLab/AwesomeLearningAPR/5d2c347163d962b4ef334f2908ed764fc6a60f02/figs/dlapr.png
--------------------------------------------------------------------------------