[发明专利]一种基于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/,转载请声明来源钻瓜专利网。