Font Size: a A A

Program Repair Method Based On Deep Learning Of Defect Context

Posted on:2021-03-07Degree:MasterType:Thesis
Country:ChinaCandidate:B LingFull Text:PDF
GTID:2428330611498209Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Due to the gradual expansion of software program applications in recent years,this has led to a larger software scale.Because the increasing defects in the program will cause the error frequency of the program to run more and more,the hidden dangers of such a defective program will affect the entire software field.Therefore,finding and fixing possible defects in the program as early as possible is a direction worth studying in the current software engineering discipline.In the problem of repairing program defects,automatic repair of programming errors,also known as program repair,improves the efficiency of repairing program defects to a certain extent and promotes the process of software development.However,the current program repair method still has problems such as low repair rate and few repair types,and the repair effect needs to be improved.In terms of grammatical error repair of program repair,for repairing some defective program statements,sometimes it may be necessary to analyze the entire program structure,thereby wasting a lot of effective time.In terms of semantic error repair for program repair,effective structural semantic analysis of program statements has become the main limitation of semantic error repair.In view of the above problems,this paper proposes a deep learning method based on defect context to automatically repair error programs,which is mainly divided into syntax error repair methods that do not consider compilation information,syntax error repair methods that consider compilation information,and semantic error repair methods.First,for repairing program syntax errors,this article adopts the syntax error repair method that does not consider the compilation information and the syntax error repair method that considers the compilation information,a compiler is used to uncompile and compile the program statements,and on the basis of this process,deep learning technology is used to predict the defect statements of the program and get corresponding repairs.Secondly,for the repair of program semantic errors,this article mainly uses semantic error repair methods to convert automatic program repair based on historical defect repair program pairs into a machine learning problem,that is,mining a large number of historical defect repair program pairs in the same programming task.The defect repair context is used as a learning corpus to effectively repair the program statements with semantic errors in the defect program.In addition,this paper makes an experimental evaluation of the proposed grammatical error repair method that does not consider compilation information,the grammatical error repair method that considers compilation information,and the semantic error repair method.The experimental results show that the grammatical error repair method that does not consider the compilation information proposed in this paper further repairs the defective program on the data set generated by the student error program than the current automatic program repair method.The grammatical error repair method and semantic error repair method proposed in this paper considering compilation information can also fix certain corresponding error type defect programs on this data set.
Keywords/Search Tags:Deep learning, defect context, automatic program repair, syntax error, semantic error
PDF Full Text Request
Related items