SoftWiser-group/NeuralPA

Neural Program Analysis

4

stars

122

commits

Jul 9, 2024

updated

README

Neural Program Analysis

This repository aims to provide a framework for neural network-based program analysis, making it easy for people to build neural networks and experiment with them.

Table of contents

Automatic Program Repair

YearVenuePaperCode
2023ESEC/FSE 2023Copiloting the Copilots: Fusing Large Language Models with Completion Engines for Automated Program Repair
2022EMNLP 2022Using Developer Discussions to Guide Fixing Bugs in Software
2022ASE 2022SelfAPR: Self-supervised Program Repair with Test Execution Diagnostics
2022ICSE 2022Neural Program Repair with Execution-based Backpropagation
2021PLDI 2021Learning to Find Naming Issues with Big Code and Small Supervision
2021FSE 2021A Syntax-Guided Edit Decoder for Neural Program Repair
2021NeurIPS 2021Self-Supervised Bug Detection and Repair
2021ICML 2021TFix: Learning to Fix Coding Errors with a Text-to-Text Transformer
2020ICSE 2020DLFix: Context-based Code Transformation Learning for Automated Program Repair
2020ICLR 2020Hoppity: Learning Bug Detection and Repair
2019TSE 2019SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair
2019ESEC/FSE 2019DeepDelta: learning to repair compilation errors
2019ICLR 2019Neural Program Repair by Jointly Learning to Localize and Repair

Datasets

IDNameLanguage#BugsTest SuiteTrainingTestingLinksOthers
1BearsJava251yesyesyesGithub
2BFP mediumJava65454noyesyesZenodo
3BFP smallJava58350noyesyesZenodo
4BigFixJava1.824 MnoyesyesGithub
5Bugs2FixJava92849noyesyes
6Bugs.jarJava1158yesyesyesGithub
7Code-Change-DataJava44372noyesyesGoogle Drive
8CodeXGlueJava122 Knonoyes
9CodRepJava58069noyesyesGithub
10CPatMinerJava44 Knoyesyes
11DeepRepairJava374noyesno
12Defects4JJava835yesyesyesGithub
13Function-SStuBs4JJava21047noyesyesZenodo
14IntroClassJavaJava998yesyesyesGithub
15Java-medJava7454noyesnoAWS
16ManySStuBs4J largeJava63923noyesyesZenodo
17ManySStuBs4J smallJava10231noyesyesZenodo
18MegaDiffJava663029noyesnoZenodo
19PontaJava624noyesyesGithub
20Pull-Request-DataJava10666noyesyesZenodo
21RatchetJava35 KnoyesyesGithub
22RecoderJava103585noyesnoGoogle Drive
23TRANSFERJava408091noyesnoMEGA
24MesbahJava4.8 Mnoyesyes
25AOJC2482noyesyesOthers
26Big-VulC3745noyesyesGithub
27Code4BenchC25 KyesyesyesZenodo
28CodeHuntC195 Kyesyesyes
29CVEFixesC8482noyesyesGithub
30DeepFixC6971yesyesyesGithub
31ManyBugsC185yesyesyesOthers
32ProphetC69yesyesyesGithub
33PrutorC6971yesyesyesOthers
34BugAIDJS105133noyesyesOthers
35BugsJSJS453yesyesyesOthers
36HOPPITYJS363 KnoyesyesGithub
37KATANAJS114 KnoyesyesGithub
38REPTORYJS407 KnoyesyesGithub
39TFixJS100 KnoyesyesGithub
40ETH Py150Python150 KnoyesyesOthers
41GitHub-PythonPython3 MnoyesyesGithub
42MesterPython13 Knoyesyes
43PyPIBugPython2374noyesyesGithub
44SSB-9MPython9 MnoyesnoZenodo
45VUDENCPython10 KnoyesyesZenodo
46ChhatbarPython286yesnoyesGithub
47SPoCC++1835yesyesyesOthers
48QuixBugsJava Python40yesyesyesGithub
49DeepDebugJava Python523noyesyes
50MSR20C C++188 KnoyesyesZenodo
51CoCoNutC Java JS Python14 MyesyesnoGithub
52CodeFlawC Python3902yesyesyesOthers
53ENCOREJava Python JS C++9.2 Mnoyesno

Type Inference

YearVenuePaperData FormatCode
2020PLDI 2020Typilus: Neural Type HintsGraph
2020ICLR 2020LAMBDANET: Probabilistic Type Inference Using Graph Neural NetworksGraph
2018ICLR 2018Learning to Represent Programs with GraphsGraph
2023ASE 2023Generative Type Inference for PythonText
2023ICLR 2023TypeT5: Seq2seq Type Inference using Static AnalysisText
2022ICSE 2022Type4Py: Practical Deep Similarity Learning-Based Type Inference for PythonText
2022ICSE 2022Static Inference Meets Deep Learning: A Hybrid Type Inference Approach for PythonText
2022TSE 2022Learning To Predict User-Defined TypesText
2021NeurIPS 2021Type Inference as OptimizationText
2018ESEC/FSE 2018Deep Learning Type InferenceText

Dataset

In order to unify the experimental results, we provide a standard Python type inference dataset ManyTypes4Py for you to use. For the preprocessing of graph and text data, we recommend that you refer to the Typilus and Type4Py code implementations respectively. The details of ManyTypes4Py dataset are shown as follows.

NameLanguageArgument TypeReturn TypeVariable typeLinksOthers
ManyTypes4PyPython16.06%6.74%77.20%Zenodo

Artificial-Intelligence-in-Compiler-Optimization

YearVenuePaperCode
2024ASPLOS 2024BaCO: A Fast and Portable Bayesian Compiler Optimization Framework
2023Large Language Models for Compiler Optimization
2023ICML 2023Learning Compiler Pass Orders using Coreset and Normalized Value Prediction
2023ICML2023Learning Compiler Pass Orders using Coreset and Normalized Value Predictioncode
2023EuroGP 2023Genetic Improvement of LLVM Intermediate Representation
2022TACO 2022Iterative Compilation Optimization Based on Metric Learning and Collaborative Filtering
2022GECOO 2022Optimizing LLVM pass sequences with Shackleton: A linear genetic programming framework.
2022ISCA 2022Autophase V2: Towards Function Level Phase Ordering Optimization
2022CGO 2022Compilergym: Robust, performant compiler optimization environments for ai researchcode
2022GASES 2022Work-in-Progress: MLGOPerf: An ML Guided Inliner to Optimize Performance
2021ICML 2021ProGraML: A Graph-based Program Representation for Data Flow Analysis and Compiler Optimizations
2021MLGO: a Machine Learning Guided Compiler Optimizations Frameworkcode
2021ICSE 2021Efficient Compiler Autotuning via Bayesian Optimization
2021Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations
2021PACT 2021A Reinforcement Learning Environment for Polyhedral Optimizations
2020LCTES 2020A Collaborative Filtering Approach for the Automatic Tuning of Compiler Optimisations
2020MLSys 2020Autophase: Juggling hls phase orderings in random forests with deep reinforcement learningcode
2020CGO 2020Neurovectorizer: end-to-end vectorization with deep reinforcement learning

Contributors

kayasa12321

27 commits

ZzYuanYaozZ

26 commits

Dexter2008

15 commits

Xusr1123

12 commits

SoftWiser-group/NeuralPA

Neural Program Analysis

4

stars

122

commits

Jul 9, 2024

updated

README

Neural Program Analysis

This repository aims to provide a framework for neural network-based program analysis, making it easy for people to build neural networks and experiment with them.

Table of contents

Automatic Program Repair

YearVenuePaperCode
2023ESEC/FSE 2023Copiloting the Copilots: Fusing Large Language Models with Completion Engines for Automated Program Repair
2022EMNLP 2022Using Developer Discussions to Guide Fixing Bugs in Software
2022ASE 2022SelfAPR: Self-supervised Program Repair with Test Execution Diagnostics
2022ICSE 2022Neural Program Repair with Execution-based Backpropagation
2021PLDI 2021Learning to Find Naming Issues with Big Code and Small Supervision
2021FSE 2021A Syntax-Guided Edit Decoder for Neural Program Repair
2021NeurIPS 2021Self-Supervised Bug Detection and Repair
2021ICML 2021TFix: Learning to Fix Coding Errors with a Text-to-Text Transformer
2020ICSE 2020DLFix: Context-based Code Transformation Learning for Automated Program Repair
2020ICLR 2020Hoppity: Learning Bug Detection and Repair
2019TSE 2019SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair
2019ESEC/FSE 2019DeepDelta: learning to repair compilation errors
2019ICLR 2019Neural Program Repair by Jointly Learning to Localize and Repair

Datasets

IDNameLanguage#BugsTest SuiteTrainingTestingLinksOthers
1BearsJava251yesyesyesGithub
2BFP mediumJava65454noyesyesZenodo
3BFP smallJava58350noyesyesZenodo
4BigFixJava1.824 MnoyesyesGithub
5Bugs2FixJava92849noyesyes
6Bugs.jarJava1158yesyesyesGithub
7Code-Change-DataJava44372noyesyesGoogle Drive
8CodeXGlueJava122 Knonoyes
9CodRepJava58069noyesyesGithub
10CPatMinerJava44 Knoyesyes
11DeepRepairJava374noyesno
12Defects4JJava835yesyesyesGithub
13Function-SStuBs4JJava21047noyesyesZenodo
14IntroClassJavaJava998yesyesyesGithub
15Java-medJava7454noyesnoAWS
16ManySStuBs4J largeJava63923noyesyesZenodo
17ManySStuBs4J smallJava10231noyesyesZenodo
18MegaDiffJava663029noyesnoZenodo
19PontaJava624noyesyesGithub
20Pull-Request-DataJava10666noyesyesZenodo
21RatchetJava35 KnoyesyesGithub
22RecoderJava103585noyesnoGoogle Drive
23TRANSFERJava408091noyesnoMEGA
24MesbahJava4.8 Mnoyesyes
25AOJC2482noyesyesOthers
26Big-VulC3745noyesyesGithub
27Code4BenchC25 KyesyesyesZenodo
28CodeHuntC195 Kyesyesyes
29CVEFixesC8482noyesyesGithub
30DeepFixC6971yesyesyesGithub
31ManyBugsC185yesyesyesOthers
32ProphetC69yesyesyesGithub
33PrutorC6971yesyesyesOthers
34BugAIDJS105133noyesyesOthers
35BugsJSJS453yesyesyesOthers
36HOPPITYJS363 KnoyesyesGithub
37KATANAJS114 KnoyesyesGithub
38REPTORYJS407 KnoyesyesGithub
39TFixJS100 KnoyesyesGithub
40ETH Py150Python150 KnoyesyesOthers
41GitHub-PythonPython3 MnoyesyesGithub
42MesterPython13 Knoyesyes
43PyPIBugPython2374noyesyesGithub
44SSB-9MPython9 MnoyesnoZenodo
45VUDENCPython10 KnoyesyesZenodo
46ChhatbarPython286yesnoyesGithub
47SPoCC++1835yesyesyesOthers
48QuixBugsJava Python40yesyesyesGithub
49DeepDebugJava Python523noyesyes
50MSR20C C++188 KnoyesyesZenodo
51CoCoNutC Java JS Python14 MyesyesnoGithub
52CodeFlawC Python3902yesyesyesOthers
53ENCOREJava Python JS C++9.2 Mnoyesno

Type Inference

YearVenuePaperData FormatCode
2020PLDI 2020Typilus: Neural Type HintsGraph
2020ICLR 2020LAMBDANET: Probabilistic Type Inference Using Graph Neural NetworksGraph
2018ICLR 2018Learning to Represent Programs with GraphsGraph
2023ASE 2023Generative Type Inference for PythonText
2023ICLR 2023TypeT5: Seq2seq Type Inference using Static AnalysisText
2022ICSE 2022Type4Py: Practical Deep Similarity Learning-Based Type Inference for PythonText
2022ICSE 2022Static Inference Meets Deep Learning: A Hybrid Type Inference Approach for PythonText
2022TSE 2022Learning To Predict User-Defined TypesText
2021NeurIPS 2021Type Inference as OptimizationText
2018ESEC/FSE 2018Deep Learning Type InferenceText

Dataset

In order to unify the experimental results, we provide a standard Python type inference dataset ManyTypes4Py for you to use. For the preprocessing of graph and text data, we recommend that you refer to the Typilus and Type4Py code implementations respectively. The details of ManyTypes4Py dataset are shown as follows.

NameLanguageArgument TypeReturn TypeVariable typeLinksOthers
ManyTypes4PyPython16.06%6.74%77.20%Zenodo

Artificial-Intelligence-in-Compiler-Optimization

YearVenuePaperCode
2024ASPLOS 2024BaCO: A Fast and Portable Bayesian Compiler Optimization Framework
2023Large Language Models for Compiler Optimization
2023ICML 2023Learning Compiler Pass Orders using Coreset and Normalized Value Prediction
2023ICML2023Learning Compiler Pass Orders using Coreset and Normalized Value Predictioncode
2023EuroGP 2023Genetic Improvement of LLVM Intermediate Representation
2022TACO 2022Iterative Compilation Optimization Based on Metric Learning and Collaborative Filtering
2022GECOO 2022Optimizing LLVM pass sequences with Shackleton: A linear genetic programming framework.
2022ISCA 2022Autophase V2: Towards Function Level Phase Ordering Optimization
2022CGO 2022Compilergym: Robust, performant compiler optimization environments for ai researchcode
2022GASES 2022Work-in-Progress: MLGOPerf: An ML Guided Inliner to Optimize Performance
2021ICML 2021ProGraML: A Graph-based Program Representation for Data Flow Analysis and Compiler Optimizations
2021MLGO: a Machine Learning Guided Compiler Optimizations Frameworkcode
2021ICSE 2021Efficient Compiler Autotuning via Bayesian Optimization
2021Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations
2021PACT 2021A Reinforcement Learning Environment for Polyhedral Optimizations
2020LCTES 2020A Collaborative Filtering Approach for the Automatic Tuning of Compiler Optimisations
2020MLSys 2020Autophase: Juggling hls phase orderings in random forests with deep reinforcement learningcode
2020CGO 2020Neurovectorizer: end-to-end vectorization with deep reinforcement learning

Contributors

kayasa12321

27 commits

ZzYuanYaozZ

26 commits

Dexter2008

15 commits

Xusr1123

12 commits