[发明专利]一种基于抽象语法树通路上下文的程序代码相似性度量方法在审

专利信息
申请号: 202110642424.8 申请日: 2021-06-09
公开(公告)号: CN113434145A 公开(公告)日: 2021-09-24
发明(设计)人: 江波;张挺;匡新 申请(专利权)人: 华东师范大学
主分类号: G06F8/41 分类号: G06F8/41;G06Q50/20
代理公司: 上海德禾翰通律师事务所 31319 代理人: 夏思秋
地址: 200241 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 抽象 语法 通路 上下文 程序代码 相似性 度量 方法
【权利要求书】:

1.一种基于抽象语法树通路上下文的代码相似性度量方法,其特征在于,所述方法利用程序的底层表示技术-抽象语法树来表征程序,并从抽象语法树中提取终端节点到终端节点的通路,通过编码向量化,获取向量表示,利用余弦相似性对程序进行相似性比较;所述方法包括以下步骤:

步骤一、构建抽象语法树:对程序代码片段进行解析,得到相应的抽象语法树;

步骤二、遍历抽象语法树:对步骤一中获得的抽象语法树进行遍历,提取抽象语法树终端节点之间的通路;

步骤三、通路上下文的编码:对步骤二获得的抽象语法树终端节点之间的通路进行编码,实现向量化;

步骤四、代码片段的相似性度量:将步骤三中编码后的代码向量,用余弦相似性进行代码的相似性比较。

2.如权利要求1所述的方法,其特征在于,所述步骤一具体为:源代码首先经过lib-0.5.jar架包解析生成抽象语法树asts.csv、节点类型node_types.csv和词素tokens.csv这三个文件,在命令行加入-storage dot后,生成关于抽象语法树的dot文件和描述程序代码的文件description.csv,获得所需要的抽象语法树。

3.如权利要求1所述的方法,其特征在于,所述步骤二具体为:从语义上讲,单条抽象语法树路径表示代码的两个具体元素逻辑连接;根据抽象语法树的规模大小,提取抽象语法树中一条或多条通路,当多条通路组合起来,表示整棵树,以此有效地获取代码片段的语义;利用lib-0.5.jar架包,对通路进行长度和宽度的限制,控制抽象语法树通路数量,遍历抽象语法树,得到抽象语法树通路上下文,生成node_types.csv、tokens.csv、paths.csv和path_contexts.csv这四个文件。

4.如权利要求1所述的方法,其特征在于,步骤三中,所述通路的编码方法基于词表形式,所述词表包括词素标识符、节点类型标识符、通路标识符和通路上下文标识符。

5.如权利要求1所述的方法,其特征在于,步骤四中,所述代码片段的相似性度量具体包括如下步骤:

步骤4.1、将抽象语法树的通路上下文三元组分为节点node和路径path两个部分;所述节点是指模型训练期间得到的抽象语法树终端叶节点的值,所述路径是指抽象语法树通路的集合;

将所有的节点和路径都表示成一个相同维度的向量,即其中,node_vec是指模型训练期间得到的抽象语法树终端叶节点;path_vec是指抽象语法树通路的集合;d表示向量的维度;|node|和|path|表示抽象语法树中叶节点和通路的数量;

步骤4.2、一条AST通路pi=(xs,p,xt)的上下文变量ci由两个节点向量和一个通路向量联结而成的d维向量,即:

其中,xs=val(start(pi)),表示与通路pi的起始节点关联的值;xt=val(end(pi)),表示与通路pi的末尾节点关联的值;3d表示node_vec,path_vec和node_vec组成的d维向量;

步骤4.3、对于一个编程任务T,给定一个参考的解决方案的向量v0,与学习者提交的代码片段的向量vi进行比较,得出二者的余弦值cos_simi作为两个程序片段相似性的衡量:

6.一种实现如权利要求1-5之任一项所述相似性度量方法的系统,其特征在于,所述系统包括:程序向量获取模型、相似性比较模型。

7.如权利要求6所述的系统,其特征在于,所述程序向量获取模型用于将给定任意数量的通路上下文向量,聚合为单个向量,所述模型需要学习得到通路向量表示;

所述相似性比较模型用于给定一个向量v0,与代码片段的向量vi进行比较,得出二者的余弦值cos_simi作为两个程序片段相似性的衡量。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110642424.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top