Yating Zhang, Wei Dong, Daiyan Wang, Jiaxin Liu, Binbin Liu
{"title":"非api操作程序的概率综合","authors":"Yating Zhang, Wei Dong, Daiyan Wang, Jiaxin Liu, Binbin Liu","doi":"10.1109/QRS-C51114.2020.00082","DOIUrl":null,"url":null,"abstract":"The current approaches to program synthesis focus more on works that contain only API methods. However, our survey shows that the ratio of non-API operations to API calls is very close in Java programs. Although non-API operations are difficult to obtain specific information from user intent, those operations in such as mathematics and logic are frequent and important, and that is an indispensable key in practical development tasks. We present Cana (Capsulate Non-API), an improved approach of probabilistic synthesis for non-API operations. Cana synthesizes programs with non-API operations through two main ideas. One is to encapsulate non-API operations into API calls, and the user also can provide related information when describing incomplete specifications. The other is heuristic strategies to solve the difficult problems that select variables with the same type. Experiments show that Cana can synthesize programs contains combinations of non-API operations in seconds.","PeriodicalId":358174,"journal":{"name":"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Probabilistic Synthesis for Program with Non-API Operations\",\"authors\":\"Yating Zhang, Wei Dong, Daiyan Wang, Jiaxin Liu, Binbin Liu\",\"doi\":\"10.1109/QRS-C51114.2020.00082\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The current approaches to program synthesis focus more on works that contain only API methods. However, our survey shows that the ratio of non-API operations to API calls is very close in Java programs. Although non-API operations are difficult to obtain specific information from user intent, those operations in such as mathematics and logic are frequent and important, and that is an indispensable key in practical development tasks. We present Cana (Capsulate Non-API), an improved approach of probabilistic synthesis for non-API operations. Cana synthesizes programs with non-API operations through two main ideas. One is to encapsulate non-API operations into API calls, and the user also can provide related information when describing incomplete specifications. The other is heuristic strategies to solve the difficult problems that select variables with the same type. Experiments show that Cana can synthesize programs contains combinations of non-API operations in seconds.\",\"PeriodicalId\":358174,\"journal\":{\"name\":\"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)\",\"volume\":\"16 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/QRS-C51114.2020.00082\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/QRS-C51114.2020.00082","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Probabilistic Synthesis for Program with Non-API Operations
The current approaches to program synthesis focus more on works that contain only API methods. However, our survey shows that the ratio of non-API operations to API calls is very close in Java programs. Although non-API operations are difficult to obtain specific information from user intent, those operations in such as mathematics and logic are frequent and important, and that is an indispensable key in practical development tasks. We present Cana (Capsulate Non-API), an improved approach of probabilistic synthesis for non-API operations. Cana synthesizes programs with non-API operations through two main ideas. One is to encapsulate non-API operations into API calls, and the user also can provide related information when describing incomplete specifications. The other is heuristic strategies to solve the difficult problems that select variables with the same type. Experiments show that Cana can synthesize programs contains combinations of non-API operations in seconds.