[发明专利]基于方法约束关系的代码预测模型的构建方法有效

专利信息
申请号: 201810327625.7 申请日: 2018-04-12
公开(公告)号: CN108572917B 公开(公告)日: 2021-05-25
发明(设计)人: 刘琰;方文渊;魏强;刘楝;张文悦;左青松 申请(专利权)人: 中国人民解放军战略支援部队信息工程大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 郑州大通专利商标代理有限公司 41111 代理人: 陈勇
地址: 450000 河*** 国省代码: 河南;41
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 方法 约束 关系 代码 预测 模型 构建
【权利要求书】:

1.基于方法约束关系的代码预测模型的构建方法,其特征在于,包括以下步骤:

步骤1:将面向对象代码抽象为对象涉及的方法调用语句序列集合,所述方法调用语句序列集合包括多个方法调用语句序列;所述方法调用语句序列包括一个对象涉及的所有方法调用语句;

步骤2:根据面向对象代码中对象涉及的方法之间的约束关系,将所述方法调用语句序列的方法调用语句表示为四元特征组,根据所述四元特征组得出所述面向对象代码的代码特征词序列集合;

步骤3:利用N-gram模型将所述代码特征词序列集合滑动切分为多个3-gram序列,提取调用所述3-gram序列,构建代码预测模型。

2.根据权利要求1所述的基于方法约束关系的代码预测模型的构建方法,其特征在于,所述步骤1包括:

步骤1.1:将面向对象代码中的方法调用语句根据对象的不同进行分类,方法调用语句之间的相互顺序保持不变,对于包含多个对象的方法调用语句复制多份,放入每个对象中,Code={Object1,Object2,…,Objectn},Object=Method1·Method2…Methodn

其中Objectn表示第n个对象涉及到的所有方法调用语句,即第n个对象涉及到的方法调用语句序列;Methodn表示同一个方法调用语句序列中的第n个方法调用语句;

源代码被转化为若干个对象涉及的方法调用语句序列集合;

步骤1.2:对面向对象代码中的别名现象和代码结构进行分析,并根据分析结果调整所述步骤1.1中所述方法调用语句序列集合,包括:

对指向同一地址的不同别名进行归并,视为同一对象;

对于条件选择结构,将Objectn根据条件的不同分成若干个相互独立的、不含有条件选择结构的子序列;

对于循环结构,将循环的迭代次数统一限定为2次;

步骤1.3:将所述步骤1.2调整后的方法调用语句序列集合根据所属类的不同进行分类Code={Class1,Class2,…,Classn},将类中每个对象涉及的方法调用语句视为一个单独序列Class={SeqObject1,SeqObject2,…,SeqObjectn},Seq=Method1·Method2Methodn,其中Classn表示第n个类涉及到的所有方法调用语句,SeqObjectn表示同一个类中第n个对象涉及到的方法调用语句序列;

综上,面向对象代码被抽象为3个层次,即所述方法调用语句序列集合为:

3.根据权利要求1所述的基于方法约束关系的代码预测模型的构建方法,其特征在于,所述四元特征组为:

Method=<ClassN,Name,Return,Relation> (2)

其中Method为对象的一个方法调用语句,ClassN为类名,Name为方法名,Return为方法的返回类型,Relation为对象和方法的关系;

所述Relation取值方式如下:

4.根据权利要求2或3所述的基于方法约束关系的代码预测模型的构建方法,其特征在于,所述代码特征词序列集合为:

5.根据权利要求2所述的基于方法约束关系的代码预测模型的构建方法,其特征在于,所述步骤3包括:

步骤3.1:利用N-gram模型,将所述步骤2中代码特征词序列集合的代码特征序列滑动切分成3-gram片段,Code={s1,s2,…,sn},s=Method1·Method2·Method3,Method=<ClassN,Name,Return,Relation>,其中sn为第n个3-gram片段,s为一个3-gram片段,表示对象连续涉及到的3次方法调用语句序列;

步骤3.2:通过对面向对象代码进行训练,统计不同的3-gram片段s出现的频率;

步骤3.3:利用马尔科夫假设思想,通过所述步骤3.2的统计结果构建代码预测模型,所述代码预测模型用于预测方法调用语句Method3出现的概率,所述代码预测模型为:

其中α和V为平滑参数。

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

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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