Font Size: a A A

Program Synthesis Based On Knowledge Aggregation From Multiple Sources

Posted on:2020-04-10Degree:MasterType:Thesis
Country:ChinaCandidate:Y Z ZhangFull Text:PDF
GTID:2518306548490614Subject:Master of Engineering
Abstract/Summary:PDF Full Text Request
With the rapid development of the information technology,software development is playing a more important role in enterprises than ever before and many kinds of positions require personnel to master basic software development knowledge.But the scale of software becomes more and more complex,which greatly increases the requirement of developers,and greatly increases the burden of development work.They developers always need to learn new technologies to adapt to the changes of tasks.In order to free developers from complex and heavy work and enable them to have more time for high-level software design without wasting time on the details of program implementation,researchers have taken a lot of time in the field of program synthesis,aiming at generating code that meets the requirements around the user's intentions to assist programmers in their development work.Program synthesis has become one of the important directions of future research in software engineering.Software development now pays more attention to modularity and reusability,so API-based program synthesis method has good application prospects.At present,the API-based program synthesis method generally generates loop-free programs.In the study,we studied the method of generates loop-free API sequence programs by using the theory of type matching.It is found that the method current faces efficiency problems in many user requirements.On the one hand,it can't achieve heuristic program synthesis since adapting random enumeration sketch to test.The efficiency is low when API collections are large.On the other hand,the length enumerated program changes from short to long ant it will also bring the problem of exploding search space in solving the requirement of too long program.To solve the above problems,this study proposed a program synthesis method based on resource aggregation and we designed two optimization strategies to optimize these two problems.The first strategy is to add natural language descriptions to user intensions and then locate top 5 APIs with highly relevant requirements through similarity matching.Then we rank sketch with relevant APIs in front in the process of enumeration,making it possible for program synthesis to find feasible solutions of requirements first without wasting a lot of time on useless sketch.Strategy 2 aims to reduce the length of code to be searched in program synthesis.We design a frequent pattern mining tool to mine common API sequences in different fields.In the process of program synthesis,we package API sequences mined before into complete APIs to reduce the search length of program code.And this strategy is verified usefully by experiments.
Keywords/Search Tags:Program Synthesis, Code Search, Javadoc Documentation, Pattern Mining
PDF Full Text Request
Related items