C2S: Translating Natural Language Comments to Formal Program Specifications
Formal program specifications are essential for various software engineering tasks, such as program verification, program synthesis, code debugging and software testing. However, manually inferring formal program specifications is not only time-consuming but also error-prone. In addition, it requires substantial expertise. Natural language comments contain rich semantics about behaviors of code, making it feasible to infer program specifications from comments. Inspired by this, we develop a tool, named C2S, to automate the specification synthesis task by translating natural language comments into formal program specifications. Our approach firstly constructs alignments between natural language word and specification tokens from existing comments and their corresponding specifications. Then for a given method comment, our approach assembles tokens that are associated with words in the comment from the alignments into specifications guided by specification syntax and the context of the target method. Our tool successfully synthesizes 1,145 specifications for 511 methods of 64 classes in 5 different projects, substantially outperforming the state-of-the-art. The generated specifications are also used to improve a number of software engineering tasks like static taint analysis, which demonstrates the high quality of the specifications.
Tue 10 NovDisplayed time zone: (UTC) Coordinated Universal Time change
01:00 - 01:30 | |||
01:00 2mTalk | A Behavioral Notion of Robustness for Software Systems Research Papers Changjian Zhang Carnegie Mellon University, USA, David Garlan Carnegie Mellon University, USA, Eunsuk Kang Carnegie Mellon University, USA Link to publication DOI Media Attached | ||
01:03 1mTalk | C2S: Translating Natural Language Comments to Formal Program Specifications Research Papers Juan Zhai Rutgers University, USA, Yu Shi Purdue University, USA, Minxue Pan Nanjing University, China, Guian Zhou Nanjing University, China, Yongxiang Liu Nanjing University, China, Chunrong Fang Nanjing University, China, Shiqing Ma Rutgers University, USA, Lin Tan Purdue University, USA, Xiangyu Zhang Purdue University DOI | ||
01:05 1mTalk | Detecting and Understanding JavaScript Global Identifier Conflicts on the Web Research Papers Mingxue Zhang Chinese University of Hong Kong, China, Wei Meng Chinese University of Hong Kong, China DOI | ||
01:07 1mTalk | PAClab: A Program Analysis Collaboratory Tool Demos Rebecca Brunner Bowling Green State University, USA, Robert Dyer University of Nebraska - Lincoln, Maria Paquin Boise State University, Elena Sherman Boise State University DOI | ||
01:09 1mTalk | Towards Learning Visual Semantics Visions and Reflections Haipeng Cai Washington State University, USA, Shiv Raj Pant Washington State University, USA, Wen Li DOI | ||
01:11 1mTalk | WebJShrink: A Web Service for Debloating Java Bytecode Tool Demos Konner Macias University of California at Los Angeles, USA, Mihir Mathur University of California, Los Angeles, Bobby Bruce University of California at Davis, USA, Tianyi Zhang Harvard University, USA, Miryung Kim University of California at Los Angeles, USA DOI | ||
01:13 17mTalk | Conversations on Analysis 1 Research Papers Juan Zhai Rutgers University, USA, Changjian Zhang Carnegie Mellon University, USA, Konner Macias University of California at Los Angeles, USA, Haipeng Cai Washington State University, USA, Mingxue Zhang Chinese University of Hong Kong, China, Robert Dyer University of Nebraska - Lincoln, M: Shin Hwei Tan Southern University of Science and Technology |