程序语义表示是长期困扰软件工程领域的基础性难题,对于解决代码搜索、应用程序接口学习、缺陷定位等智能化软件工程任务具有重要意义。近年来,众多研究者持续关注程序语义表示问题,但现有技术很难对自然语言与代码元素进行统一表示,难以度量两者间的语义关系。近期大连理工大学在软件工程国际期刊IEEE Transactions on Software Engineering(TSE)发表研究成果,为破解程序语义表示难题提供了一种高效快速的解决方案。
在这一成果中,研究人员创新性地提出一种基于词嵌入的程序语义表示方法。该方法首先通过自然语言处理与程序分析手段自动分析开源软件平台上1300万余个源代码文件,结合分析结果建立自然语言与软件代码的语义序列模式,并采用词嵌入技术在GPU集群上对超过1亿条语义序列模式进行高效分析,最终获得自然语言单词和软件代码元素的统一向量表示。基于该表示方法,研究人员进一步解决智能化软件工程核心任务。研究成果表明,基于词嵌入的程序语义表示可以高质量辅助软件从业人员完成代码搜索、应用程序接口学习等软件开发活动,并将相关任务的准确率提升到80%以上。
该项研究成果由大连理工大学软件学院江贺教授团队牵头完成。大连理工大学博士生李晓晨作为论文第一作者,江贺教授担任论文通讯作者,日本九州大学Yasutaka Kamei教授和杭州电子科技大学陈信博士参与完成。
本研究得到国家自然科学基金优秀青年科学基金资助。(通讯员:江贺 杜佳)