[发明专利]一种软件程序的智能解析方法有效

专利信息
申请号: 201810568286.1 申请日: 2018-06-05
公开(公告)号: CN109101235B 公开(公告)日: 2021-03-19
发明(设计)人: 王旭;孙海龙;张建;刘旭东 申请(专利权)人: 北京航空航天大学
主分类号: G06F8/41 分类号: G06F8/41
代理公司: 北京中创阳光知识产权代理有限责任公司 11003 代理人: 尹振启
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 软件 程序 智能 解析 方法
【说明书】:

发明提出一种软件程序的智能解析方法,所述智能解析方法为基于AST的序列化神经网络,所述基于AST的序列化神经网络是一种层次化的向量表示方法,其实现步骤为,步骤1‑1:在最底层,将原始程序转化成AST之后进一步分割得到对应的代码块序列,所述代码块之间是有次序之分的,且与原始的语句顺序相吻合;步骤1‑2:每个代码块由一种递归式的编码器来将这种子树编码成向量e1,e2,...,et;步骤1‑3:将得到的向量序列经过双向循环层以提取代码块之间的依赖特征;步骤1‑4:所有的时间步的多维特征经过池化层采样得到最终的单个向量表示形式。

技术领域

本发明涉及一种解析方法,尤其涉及一种软件程序的智能解析方法。

背景技术

程序理解(Program Comprehension)在许多软件工程的应用中起到至关重 要的作用。一方面能够帮助开发者提高开发效率和代码质量,另一方面也有助 于软件维护。典型的应用包括代码分类,代码克隆检测,缺陷预测以及代码摘 要生成等。其中,实现程序理解很重要同时也是较为困难的一部分是如何建立 有效的程序表示方法以尽可能地捕捉程序本身蕴含的语义,比如某程序的功能。

虽然我们可以以人工的方式去设计或提取程序的特征来实现诸多相关的应 用,这种方法的缺点在于需要耗费大量的劳动力且得出的特征往往局限于特定 的任务。因此现有技术往往直接采用传统的信息检索中的一些方法来提取程序 中的特征。比如,将程序看作词的集合或者序列来实现代码的克隆检测。此外, 主题模型如潜在语义分析(LatentSemantic Indexing,LSI)或隐含狄利克雷 分布(Latent Dirichlet Allocation,LDA)也被广泛应用于程序分析与处理。 然而这些应用的共同问题是把代码当做自然语言进而套用自然语言处理 (Natural Language Processing,NLP)中的方法。实际上,代码中包含丰富 的结构信息,而上述的方法并不能捕捉到这种信息。

最新的技术使用解析工具将程序代码转换成抽象语法树(Abstract SyntaxTree,AST)来结构化地表示程序。在此基础上,结合神经网路的方法来自动的 获取程序的向量表示,用于不同的任务和场景。比如,在得到某个程序的AST 之后,可以直接利用递归神经网络(Recursive Neural Network)对整个语法 树进行自底向上的递归式的编码,进而得到最终的语义向量。类似地,现有的 研究也结合了基于树的卷积神经网络(Convolutional Neural Network,CNN) 或者长短时记忆网络(Long Short Term Memory,LSTM)来增强结构信息的表 示能力。但是这些方法仍然存在三个主要问题:

1.仅依赖于树结构的神经网络容易导致梯度消失的问题;

2.自底向上或使用滑动窗口遍历整个AST的方法容易丢失原始的程序 中所包含的代码块之间的依赖信息;

3.现有的基于树的方法大多将原始的AST转换成二叉树的形式,这破坏 了原始的结构信息,并且会导致树的深度大大增加而进一步带来捕捉依赖的困 难。

发明内容

针对现有技术存在的问题,本发明提出了一种软件程序的智能解析方法。 所述智能解析方法为基于AST的序列化神经网络。首先,对于获取到的AST, 将其分割成一系列的代码块也就是子树并保持原始的语句顺序,而不是对整个 树结构进行编码计算。每个代码块为池化层为根的子树。其次,在得到这种代 码块序列之后,利用循环神经网络(Recurrent Neural Network,RNN)来捕捉 这种上下文依赖关系。最后,对于子树的计算使用批量计算算法来避免破坏原 始的结构信息。经过端到端的训练,学习到的向量可以更好地解决不同的软件 分析任务。

附图说明

图1为本发明基于AST的序列化神经网络的整体架构图。

图2为本发明中节点迭代更新示意图。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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