[发明专利]基于单个样例的代码转换推导方法和装置有效

专利信息
申请号: 201910861206.6 申请日: 2019-09-12
公开(公告)号: CN110633084B 公开(公告)日: 2020-10-02
发明(设计)人: 姜佳君;任路遥;熊英飞;张令明 申请(专利权)人: 北京大学
主分类号: G06F8/41 分类号: G06F8/41
代理公司: 北京中济纬天专利代理有限公司 11429 代理人: 江黎
地址: 100871 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 单个 代码 转换 推导 方法 装置
【权利要求书】:

1.一种基于单个样例的代码转换推导方法,其特征在于,包括以下步骤:

基于修改前和修改后的样例代码片段,提取代码超图;所述代码超图是一个二元组E,R,其中E是一个代码元素的集合,R是一个超边的集合;每条超边为一个二元组rname,r,其中rname代表关系名称,r是一个关系集合,其中E^k表示集合E的k元笛卡尔积;所述代码元素定义为一个二元组id,attrs,其中id为元素的标号,attrs为属性的集合;每个属性为一个二元组name,value,其中name表示属性名,value表示该属性的值;

基于修改前和修改后的样例代码片段,提取代码修改的操作序列;

依据代码修改的操作序列,并通过统计分析开源项目代码中的属性频率,对代码超图进行化简,由化简之后的代码超图和代码修改的操作序列共同组成代码转换模板;

给定待修改的代码片段并提取其代码超图,然后通过与代码转换模板进行匹配得到修改后的代码片段;

所述提取代码超图,包括:

以函数为单位,通过解析代码的抽象语法树结构来获取代码元素;

对获取的代码元素的不同属性进行赋值,同时构建不同代码元素之间的关系;

基于类型分析来获取代码中表达式和参数的类型,对代码元素的属性进行扩充和细化;

基于过程内流非敏感的define-use静态分析来提取数据依赖关系,对代码元素之间的关系进行补充和细化;

根据提取的代码元素以及代码元素之间的关系,构成代码超图;对修改前和修改后的样例代码片段分别得到代码超图。

2.根据权利要求1所述的方法,其特征在于,采用以下方式定义元素匹配和超图匹配:

元素匹配:代码元素id,attrs能够匹配代码元素id’,attrs’,当且仅当对于任意name,value∈attrs有name,value∈attrs’;

超图匹配:代码超图E,R能够匹配代码超图E’,R’,当且仅当存在一个映射Match:E-E’,对于任意e∈E,e能够匹配e’=match(e)且对于任意rname,r∈R存在rname’,r’∈R’满足rname=rname’且其中,match(e)表示e在映射Match中对应的象。

3.根据权利要求1所述的方法,其特征在于,所述提取代码修改的操作序列,包括:

将修改前和修改后的样例代码片段解析成抽象语法树的表示形式;

根据树的自顶向下方向比较两个语法树的对应节点,采用贪心的方式记录所有可能的匹配节点对;

根据树的自底向上的方向再次比较两个语法树的对应节点,同样采用贪心的方式记录所有的匹配节点对;

处理匹配结果中的冲突匹配,使得同一颗语法树中的不同节点要满足正确的结构关系。

4.根据权利要求1所述的方法,其特征在于,所述对代码超图进行化简,包括:根据统计的开源项目源代码中对应的属性频率,以及人工指定的属性频率阈值,决定每个代码元素和属性的保留和删除。

5.根据权利要求4所述的方法,其特征在于,如果一个代码元素的所有属性都被删除,则在代码超图中将该代码元素删除,否则保留该代码元素。

6.根据权利要求1所述的方法,其特征在于,所述与代码转换模板进行匹配,包括:

给定一个代码转换模板pattern=H,seqM,以及一个待修改的代码片段;其中H是代码超图,seqM是代码修改的操作序列;

提取待修改的代码片段的代码超图M,如果代码超图H成功匹配代码超图M,则将代码转换模板pattern中的代码修改的操作序列seqM应用在代码超图M上,从而得到修改之后的目标超图M’。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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