首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于深度学习的跨行代码缺陷修复方法与系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:长沙网久软件有限公司

摘要:本发明公开了一种基于深度学习的跨行代码缺陷修复方法与系统,包括S1:系统接收报错语句,确定问题行的位置,并提取代码语言实体;S2:构建代码理解模型,结合问题行位置和报错语句,对代码进行全局语义理解;S3:构建逻辑定位模型,结合报错语句、代码语言实体、训练集中的问题代码和修改后代码,输出问题行行号、问题行逻辑关系;S4:结合问题行逻辑关系,生成代码缺陷原因、修改后的代码并保存到修改日志中;S5:与DevOps流程集成,将修复后代码的进行自动化测试,并保留修复前的代码版本。本发明解决了传统代码修复方法难以跨行修复代码,并且难以辅助开发者理解代码逻辑的问题。

主权项:1.一种基于深度学习的跨行代码缺陷修复方法,其特征在于,包括以下步骤:S1:系统接收报错语句,确定问题行的位置,并提取代码语言实体;S2:构建代码理解模型,结合问题行位置和报错语句,对代码进行全局语义理解;根据空行或注释将整篇代码划分为若干个代码段,并构建TransGRU模块,计算每个代码段的段向量和整篇代码的篇章向量;包括以下步骤:S21:根据空行或注释对整篇代码进行划分,得到若干个代码段;S22:构建TransGRU模块,计算方式为: ;其中,A为注意力机制残差输出,LayerNorm为层归一化操作,X为TransGRU模块的输入,Attention为注意力机制操作;G为GRU输出,GRU为GRU操作,M为注意力机制残差和GRU的混合输出,MLP为多层感知机操作,Y为TransGRU模块的输出,Concat[,]为向量拼接操作;S22步骤统一表示为: ;其中,TransGRU为TransGRU模块操作;S23:计算每个代码段的段向量,计算方式为: ;其中,yij为第i个代码段中第j行代码的行向量,i为代码段索引,j为代码行索引,codeij为第i个代码段中的第j行代码,Vi为第i个代码段段向量,MeanPool为平均池化操作,yi1,yi2,…,yij为第i个代码段中所有代码行的行向量;S24:计算整篇代码的篇章向量,计算方式为: ;其中,Rij为代码段的段向量Vi和Vj之间的关系向量,ReLU为ReLU激活函数,Wr为关系计算权重矩阵,⊙为向量元素间的乘积;αij为段向量Vi相对于Vj的注意力分数,exp为取自然常数的指数操作,w为权重向量,Rik为段向量Vi和Vk之间的关系向量,k为代码段计数索引,N为代码段的段向量总数;C为篇章向量,αii为段向量Vi的自注意力分数;S3:构建逻辑定位模型,结合报错语句、代码语言实体、训练集中的问题代码和修改后代码,输出问题行行号、问题行逻辑关系;构建逻辑定位模型的代码段定位模块、问题行定位模块、问题行逻辑输出模块,输出每个代码段存在缺陷的概率、每行代码为问题行的概率以及问题行之间的逻辑关系;包括以下步骤:S31:构建逻辑定位模型的代码段定位模块,将整篇代码的篇章向量、报错语句作为输入,输出每个代码段存在缺陷的概率,计算方式为: ;其中,pi为每个代码段存在缺陷的概率分布,softmax为softmax函数,W1为代码段定位参数,Eerr为报错语句的句向量,b1为代码段定位偏置向量;S32:构建逻辑定位模型的问题行定位模块,使用代码段的段向量和行向量,结合报错语句,判断每行代码是否为问题行,并输出问题行行号,计算方式为: ;其中,pij为每个代码段中每行代码存在缺陷的概率分布,W2为问题行定位参数,b2为问题行偏置向量;S33:构建逻辑定位模型的问题行逻辑输出模块,将问题行的句向量、行号和整篇代码的篇章向量输入到逻辑关系预测模块中,得到问题行之间的逻辑关系,计算方式为: ;其中,xij为第i个代码段中的第j个代码行的特征表示;nij为第i个代码段中的第j个代码行的行号,xuq为第u个代码段中的第q个代码行的特征表示,u为代码段第二索引,q为代码行第二索引,nuq为第u个代码段中的第q个代码行的行号,Riujq为xij和xuq问题行之间的逻辑关系向量,GNN为图神经网络操作;S4:结合问题行逻辑关系,生成代码缺陷原因、修改后的代码并保存到修改日志中;将问题行之间的逻辑关系和问题行信息整合为图结构信息,并结合篇章向量生成代码缺陷原因的解释;同时,设计实体优先解码以优化TransGRU模块,生成修复后的代码,规避事实性错误;S5:与DevOps流程集成,将修复后代码的进行自动化测试,并保留修复前的代码版本。

全文数据:

权利要求:

百度查询: 长沙网久软件有限公司 一种基于深度学习的跨行代码缺陷修复方法与系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。