基于演化数据语义理解的多元扩展代码搜索方法研究

基本信息
批准号:61902162
项目类别:青年科学基金项目
资助金额:26.00
负责人:黄箐
学科分类:
依托单位:江西师范大学
批准年份:2019
结题年份:2022
起止时间:2020-01-01 - 2022-12-31
项目状态: 已结题
项目参与者:
关键词:
代码语义测试数据生成代码演化查询扩展面向自由文本的代码搜索
结项摘要

Search-based software engineering is a hot research topic in intelligent software engineering in which Free text-oriented Code Search has become an important means to realize man-machine collaborative programming. Currently, by using API documents or crowdsource data for reformulating queries, the mainstream code search methods have achieved a precision of 83%. However, the precision decreased by 15% when those methods are used to search in the source codes that evolves over time. To prevent a sharp drop in the precision after code evolution, this project conducts the following studies. Firstly, it establishes the probabilistic inference model that dependent items trigger new/deleted items during code evolution, so as to obtain the code items with the highest evolutionary probability and reformulate the queries, and realizes the code search based on evolving data. Second, it explores the evolving code data semantic representation based on the deep learning model, so as to obtain the evolved code item with the largest semantic similarity and reformulate the queries, and realizes the code search based on the semantic understanding of the evolutionary data. Third, it builds a multi-element extended code search integration model to realize the scene-adaptive code search based on evolving data. Meanwhile, it generates test data by following Proksch’s method, and verifies the above methods by the automatic evaluation technology. The research results of this project provide new strategies for the searching of the evolving code, new ideas for the semantic understanding of source code, and technical support for the man-machine collaborative programming based on AI code search assistant.

基于搜索的软件工程是智能软件工程的研究热点,面向自由文本的代码搜索是实现人机协同编程的重要手段。当前基于API文档和众智数据重构查询语句的主流代码搜索方法,准确率已经达83%,但要搜索随时间演化的代码,准确率会降低15%。本项目针对代码演化后搜索准确率急剧降低的问题:(1)研究建立代码演化时依赖项触发新增/删除项的概率推理模型,以获取演化概率最大的代码项重构查询语句,实现基于演化数据的代码搜索;(2)探索基于深度学习模型的代码演化数据语义表示,以获取语义相似度最大的演化代码项重构查询语句,实现基于演化数据语义理解的代码搜索;(3)构建多元扩展代码搜索集成模型,实现基于演化的场景自适应代码搜索。同时,采用Proksch的方法生成测试数据,并用自动评测技术验证上述方法。项目研究成果为演化代码搜索问题提供新策略,为程序代码语义理解提供新思路,为实现基于AI代码搜索助手的人机协同编程提供技术支撑。

项目摘要

在研究利用代码演化数据提高代码搜索准确率的过程中,我们发现程序语义表示是代码搜索、代码补全、代码翻译、代码摘要和错误定位等诸多软件工程任务背后的共性关键基础问题。为此,我们先后分三个阶段研究有效利用深度学习和知识图谱表示程序语义的方法。.阶段1.基于演化数据的代码搜索模型研究。我们针对代码演化后搜索准确率急剧降低的问题,分别采用概率统计、深度置信网络等方法从Github Commits蕴含的代码演化数据(新增/删除的代码项及其依赖项)中学习程序语义表示,建立基于演化数据的代码搜索模型、基于演化数据语义理解的代码搜索模型,并构建多元扩展代码搜索集成框架将这两种模型融合起来,实现基于演化的场景自适应代码搜索。.阶段2.基于深度学习的程序语义表示研究。使用注意力、图神经网络、预训练大规模语言模型等热门深度学习模型表示源码和中间码的程序语义。具体地,采用注意力机制学习代码和注释之间彼此关注的重点,给出一种<代码、注释>的表示方法;采用图神经网络学习Solidity源码和中间码中的抽象语法树、控制流和数据流,给出具有普适性的、基于图神经网络的程序语义表示方法;基于“预训练、提示和预测”的新范式,使用小规模数据微调预训练代码掩码语言模型CodeBert,激活该模型表示程序语义的潜力,使其能够理解代码片段上下文,推理出缺失的、不完整的、未声明的完整数据类型名称。.阶段3.基于知识图谱的程序语义表示研究。研究针对API文档、程序开发指南、程序代码的语义提取(知识图谱构建)及语义强化(知识图谱融合)的方法,实现程序语义的表示、链接、互补、强化,以及编程知识和专有知识的一致性搜索。.综上所述,项目既取得预期研究成果,又对采用最新深度学习(注意力、图神经网络、大规模语言模型)和知识图谱(构造与融合)技术表示程序语义做了充分的探研。共发表学术论文5篇(期刊论文3篇,2篇被SCIE收录;会议论文2篇,均被EI收录),其中2篇CCF-A,1篇CCF-B,1篇CCF-C,1篇CSCD-C。围绕本课题研究内容,2020年至2022年间已培养硕士研究生2名(毕业1名,在读1名)。项目组成员两次参加国际学术会议。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

演化经济地理学视角下的产业结构演替与分叉研究评述

演化经济地理学视角下的产业结构演替与分叉研究评述

DOI:10.15957/j.cnki.jjdl.2016.12.031
发表时间:2016
2

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

DOI:10.19713/j.cnki.43-1423/u.t20201185
发表时间:2021
3

基于公众情感倾向的主题公园评价研究——以哈尔滨市伏尔加庄园为例

基于公众情感倾向的主题公园评价研究——以哈尔滨市伏尔加庄园为例

DOI:
发表时间:2022
4

青藏高原狮泉河-拉果错-永珠-嘉黎蛇绿混杂岩带时空结构与构造演化

青藏高原狮泉河-拉果错-永珠-嘉黎蛇绿混杂岩带时空结构与构造演化

DOI:10.3799/dqkx.2020.083
发表时间:2020
5

F_q上一类周期为2p~2的四元广义分圆序列的线性复杂度

F_q上一类周期为2p~2的四元广义分圆序列的线性复杂度

DOI:10.11999/JEIT210095
发表时间:2021

黄箐的其他基金

相似国自然基金

1

扩展语义数据类型

批准号:69973047
批准年份:1999
负责人:蒋颖
学科分类:F0201
资助金额:10.00
项目类别:面上项目
2

基于语义Web的实体关联搜索方法与技术研究

批准号:61572247
批准年份:2015
负责人:程龚
学科分类:F0202
资助金额:65.00
项目类别:面上项目
3

语义Web本体的搜索方法与技术

批准号:60773106
批准年份:2007
负责人:瞿裕忠
学科分类:F0203
资助金额:28.00
项目类别:面上项目
4

面向语义Web的探索式搜索方法研究

批准号:61100040
批准年份:2011
负责人:程龚
学科分类:F0203
资助金额:23.00
项目类别:青年科学基金项目