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

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

发明属于软件技术领域,尤其涉及基于方法约束关系的代码预测模型构建方法。基于方法约束关系的代码预测模型构建方法,包括:将面向对象代码抽象为对象涉及的方法调用语句序列集合,所述方法调用语句序列集合包括多个方法调用语句序列;所述方法调用语句序列包括一个对象涉及的所有方法调用语句;根据方法之间的约束关系,将所述方法调用语句序列的方法调用语句表示为四元特征组,根据所述四元特征组得出所述面向对象代码的代码特征词序列集合;利用N‑gram模型将所述代码特征词序列集合滑动切分为多个3‑gram序列,提取调用所述3‑gram序列,构建代码预测模型。本发明构建的方法预测模型具有较高的代码预测准确率。

技术领域

本发明属于软件技术领域,尤其涉及基于方法约束关系的代码预测模型的构建方法。

背景技术

在软件开发过程中,开发人员需要调用大量的API,以实现软件的各种功能。但遗憾的是,开发人员通常无法掌握所有API的使用方法。当需要使用一个陌生的类时,即使是有经验的开发人员也需要花费大量的时间来学习该类以及其包含的数十种API的使用方法。为提高软件开发的效率,构建代码预测模型并实现代码推荐已成为目前代码分析领域的研究热点。

之前的研究表明,编程语言具有良好的重复性。Gabel等人(Gabel M,Su Z.Astudy of the uniqueness of source code[C].Eighteenth ACM SigsoftInternational Symposium on Foundations of Software Engineering.ACM,2010:147-156)观察到代码重复,并以6-40个代码元素的粒度报告语法冗余。如循环语句for(inti=0;in;i++)在许多源代码中频繁出现。Hindle等(Hindle A,Barr E T,Su Z,et al.On thenaturalness of software[C].International Conference on SoftwareEngineering.ACM,2012:837-847)的研究表明,这种代码规律可以通过自然语言处理技术(例如,n-gram语言模型)进行捕获,并依此建立模型,实现代码预测与推荐。Raychev等(Raychev V,Vechev M,Yahav E.Code completion with statistical language models[C].ACMSigplan Symposium on Programming Language DesignImplementation.ACM,2014:419-428)认为代码预测的核心是方法的预测,并提取源代码中的方法调用构建统计语言模型,取得了良好的预测结果。相比于自然语言,编程语言在语法结构和数据类型上有着更为严格的要求,不同的对象、方法甚至参数之间都可能存在着一定的约束关系。这些约束关系体现了语言本身的规则要求和开发人员潜在的思想逻辑。充分利用这些约束关系可以使统计语言模型突破单纯依靠自然语言中句子出现概率的局限性,使代码预测更符合开发人员的编程思维。遗憾的是,在现阶段的研究中,基于自然语言技术构建的统计模型往往缺少对这些约束关系的研究与利用,使得预测的准确率仍有提升的空间。

早期的研究人员尝试通过规则匹配、代码搜索等方法完成代码预测,但是一直难以得到较高的准确率。随着计算机性能的提高以及自然语言处理技术的日益成熟,基于代码结构或者自然语言处理来构建代码预测模型以实现代码预测渐渐成为研究热点。

由于大规模源代码带来的复杂性,基于规则匹配、代码搜索的方法难以捕获一些潜在的规则,预测的准确率普遍不高。基于程序结构的方法在预测准确率上取得了重大突破,但是复杂的模型必然带来昂贵的时空代价。基于自然语言处理的方法虽然在时空复杂度方面有着较大优势,但是由于没有充分利用源代码中的语法结构信息,使得准确率上仍有提升的空间。

发明内容

本发明针对现有基于自然语言的代码预测模型对代码之间语法结构关系的利用不足的问题,提出基于方法约束关系的代码预测模型的构建方法,本发明构建的方法预测模型具有较高的代码预测准确率。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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