[发明专利]一种基于Tree-LSTM的API使用代码生成式推荐方法有效

专利信息
申请号: 201811501452.2 申请日: 2018-12-10
公开(公告)号: CN109739494B 公开(公告)日: 2023-05-02
发明(设计)人: 彭鑫;陈驰;赵文耘 申请(专利权)人: 复旦大学
主分类号: G06F8/35 分类号: G06F8/35;G06N3/04;G06N3/08
代理公司: 上海正旦专利代理有限公司 31200 代理人: 陆飞;陆尤
地址: 200433 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明属于软件工程和智能化软件开发技术领域,具体为基于Tree‑LSTM的API使用代码生成式推荐方法。本发明通过对大量包含目标API的源代码进行解析来构造大量的训练样本,在此基础上使用深度学习和统计模型训练API使用代码预测模型;代码预测模型分为:基于抽象代码树结构表示和深度学习的语句预测、基于数据依赖分析和统计模型的API调用参数预测;其中,设计了适合于Tree‑LSTM模型处理的代码的抽象树结构表示。本发明为软件开发人员提供基于代码上下文的API使用代码智能化推荐,根据已经写好的代码逐行推荐开发人员可能会用到的API使用代码,包括API对象创建/方法调用/属性访问、控制语句以及变量声明等,还会为API方法调用推荐相关的上下文变量作为参数。
搜索关键词: 一种 基于 tree lstm api 使用 代码 生成 推荐 方法
【主权项】:
1.基于Tree‑LSTM的API使用代码生成式推荐方法,其特征在于,通过对大量包含目标API的源代码进行解析来构造大量的训练样本,在此基础上使用深度学习和统计模型训练API使用代码预测模型;所述代码预测模型为两部分:基于抽象代码树结构表示和深度学习的语句预测、基于数据依赖分析和统计模型的API调用参数预测;其中,设计了一种适合于Tree‑LSTM模型处理的代码的抽象树结构表示,其中的结点表示抽象的API使用语句或变量声明/赋值语句或控制结构,边表示它们之间的控制流关系;这种表示对代码中的变量和常量进行了抽象,仅保留了API对象创建/方法调用/属性访问、控制结点以及变量声明;抽象的API使用语句结点将代码中的API使用语句抽象为完整的方法签名;变量声明/赋值语句结点将代码中的变量声明/赋值语句抽象为忽略变量名以及赋值常量的表示;控制结构结点用If、ElseIf、Else、While、DoWhile、For、Foreach、Try、Catch、Finally、Switch、Case、Default分别表示相应的控制结构;API使用语句结点和变量声明/赋值语句结点最多只有一个子结点;这个子结点是其父节点所表示的API使用语句或变量声明/赋值语句的下一条语句的抽象表示,因此这两个结点的父子关系表示顺序流关系;控制结构结点有多个子结点分别表示其不同的控制流中的代码;在条件部分解析结束时,加入一个特殊结点ConditionEnd结点来表示条件部分的结束;当整个控制结构解析结束时,加入一个特殊结点ControlEnd结点来表示整个控制结构的结束;给定一段代码,从代码的第一行开始进行解析,迭代地得到代码的抽象树结构表示。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

本文链接:http://www.vipzhuanli.com/patent/201811501452.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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