Please enable JavaScript.
Coggle requires JavaScript to display documents.
Automatic Patch Generation by Learning Correct Code (Prophet (using (Code…
Automatic Patch Generation by Learning Correct Code
Prophet
Introduction
Prophet is the first system to learn
a probabilistic model of correct code
using
Code Interactions
Universal Features
Large Applications
Learned Model of Correct Code
implementation
Maximum Likelihood Estimation
Probabilistic Model
Patch Generation Steps
Defect Localization
Search Space Generation
Universal Feature Extraction
Patch Ranking and Validation
Challenge and Solution
Challenge
identify, learn, and exploit
universal properties of correct code
Solution
program value features
System design process
ways to instantiate patch
partially instantiated patches
fully instantiated patches
train method
method advantages
expands the range of applications
improves the running time of the training
phase
defect localization approximation to drive the training
Learning Algorithm Steps
AST Structural Difference
Initialization
Update Current
Measure Performance
Update Best θ and Termination
Feature Extraction
Program Value Features
Modification Features
Prophet specific application
target code
Offline Learning
train datas
seven open source projects
(apr, curl, httpd, libtiff, python, subversion, and wireshark)
Steps
Learn Model Parameters
Extract Features
Generate a patch steps
Defect Localization
Search Space Generation
Rank Candidate Patches
Validate Candidate Patches
Experiment and Experimental Result analysis
Experimental Methodology
Collect Successful Human Patches
Train Prophet on Collected Training Set
Reproduce Defects
Apply Prophet to Defects
Evaluate Validated Patches
Result analysis
Patch Generation Result Summary
Comparison of Different Systems
Per-Defect Results
Conclusions