Automatic software development has been a research hot spot in the field of software engineering (SE) in the past decade. In particular, deep learning (DL) has been applied and achieved a lot of progress in various SE tasks. Among all applications, automatic code generation by machines as a general concept, including code completion and code synthesis, is a common expectation in the field of SE, which may greatly reduce the development burden of the software developers and improves the efficiency and quality of the software development process to a certain extent. Code completion is an important part of modern integrated development environments (IDEs). Code completion technology effectively helps programmers complete code class names, method names, and key-words, etc. , which improves the efficiency of program development and reduces spelling errors in the coding process. Such tools use static analysis on the code and provide candidates for completion arranged in alphabetical order. Code synthesis is implemented from two aspects, one based on input-output samples and the other based on functionality description. In this study, we introduce existing techniques of these two aspects and the corresponding techniques and present some possible future research directions .
Automated Program Repair(APR) helps to improve the efficiency of software development and maintenance. Although a lot of ofAPR approaches have been proposed recently, they have their own limitations. Pattern-based approaches need hand-written patterns which need a lot of hard work of programmers. DL-based approaches can generate complex statements when adopting net models. In this paper, we propose a framework to integrate these two kinds of APR approaches. Then, we introduce a novel neural model named Recoder designed for this framework to generate the patches based on the given buggy method. We conducted several experiments to evaluate Recorder on several datasets, Defects4j v1.2, and Defects4j v2.0. Our results show that Recorder achieved 23.1\% improvements over the previous state-of-the-art approaches and repaired 52 bugs on Defects4j v1.2. Furthermore, Recoder achieved 200\% performance on Defects4j v2.0compared with the top two pattern-based APR tools .
R
Automatic software development has been a research hot spot in the field of software engineering (SE) in the past decade. In particular, deep learning (DL) has been applied and achieved a
Automated Program Repair(APR) helps to improve the efficiency of software development and maintenance. Although a lot of ofAPR approaches have been proposed recently, they have their own limitations. Pattern-based approaches need hand-written patterns which need a
R
progress in various SE tasks. Among all applications, automatic code generation by machines as a general concept, including code completion and code synthesis, is a common expectation in the field of SE, which may greatly reduce the development burden of the software developers and improves the efficiency and quality of the software development process to a certain extent. Code completion is an important part of modern integrated development environments (IDEs). Code completion technology effectively helps programmers complete code class names, method names, and key-words, etc. , which improves the efficiency of program development and reduces spelling errors in the coding process. Such tools use static analysis on the code and provide candidates for completion arranged in alphabetical order. Code synthesis is implemented from two aspects, one based on input-output samples and the other based on functionality description. In this study, we introduce existing techniques of these two aspects and the corresponding techniques and present some possible future research directions
hard work of programmers. DL-based approaches can generate complex statements when adopting net models. In this paper, we propose a framework to integrate these two kinds of APR approaches. Then, we introduce a novel neural model named Recoder designed for this framework to generate the patches based on the given buggy method. We conducted several experiments to evaluate Recorder on several datasets, Defects4j v1.2, and Defects4j v2.0. Our results show that Recorder achieved 23.1\% improvements over the previous state-of-the-art approaches and repaired 52 bugs on Defects4j v1.2. Furthermore, Recoder achieved 200\% performance on Defects4j v2.0compared with the top two pattern-based APR tools