[发明专利]基于静态程序分析的源代码编码序列表示方法有效

专利信息
申请号: 201910981926.6 申请日: 2019-10-16
公开(公告)号: CN110737466B 公开(公告)日: 2021-04-02
发明(设计)人: 黄志球;喻垚慎;李伟湋;沈国华;张静;艾磊 申请(专利权)人: 南京航空航天大学
主分类号: G06F8/75 分类号: G06F8/75;G06F8/36
代理公司: 常州佰业腾飞专利代理事务所(普通合伙) 32231 代理人: 李珍
地址: 211106 江苏省南京市江宁区*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 静态 程序 分析 源代码 编码 序列 表示 方法
【权利要求书】:

1.一种基于静态程序分析的源代码编码序列表示方法,其特征在于,包括:

获取源代码文本;

对所述源代码文本进行转换,以得到所述源代码文本对应的原始抽象语法树;

对所述原始抽象语法树进行精简;

对精简后的原始抽象语法树进行遍历编码,以得到所述源代码文本的编码序列表示,

在所述源代码文本包含头文件申明行时,对所述源代码文本进行转换,以得到所述源代码文本对应的原始抽象语法树包括:对所述源代码文本进行预处理以删除所述源代码文本的所述头文件申明行;采用源代码分析工具解析并导出所述源代码文本对应的原始抽象语法树,

在所述源代码文本不包含头文件申明行时,对所述源代码文本进行转换,以得到所述源代码文本对应的原始抽象语法树包括:对所述源代码文本采用源代码分析工具解析并导出所述源代码文本对应的原始抽象语法树,

对所述原始抽象语法树进行精简包括:结合所述原始抽象语法树节点类型对所述原始抽象语法树的冗余信息进行删除,

所述精简后的原始抽象语法树包括所述原始抽象语法树的树形结构和节点类型,对精简后的原始抽象语法树进行遍历编码,以得到所述源代码文本的编码序列表示包括:对所述精简后的原始抽象语法树的所有节点类型进行顺序编码,以得到所述所有节点类型的类型编码,该类型编码通过每个节点类型前的三个数字标识替换序列化表示中的类型字段;对所述精简后的原始抽象语法树的所有节点从根节点开始进行前序遍历,以得到所述所有节点的遍历顺序;根据所述遍历顺序对所述精简后的原始抽象语法树的所有节点结构进行编码,以得到所述所有节点结构的结构编码,其中,前节点所在层级与前一节点所在层级的差值构成当前节点的结构编码,其中,通过节点层级差替换序列化表示中的层级字段,通过“+”或“-”表示层级差的正负值,通过三位数字编码表示层级差的绝对值;对所述精简后的原始抽象语法树进行全文编码,并根据所述类型编码和所述结构编码对所述前序遍历的节点进行编码,以得到所述源代码文本的编码序列表示,所述编码序列同时包括所述类型编码和所述结构编码。

2.根据权利要求1所述的基于静态程序分析的源代码编码序列表示方法,其特征在于,所述头文件申明行包括“#include”字符串。

3.根据权利要求2所述的基于静态程序分析的源代码编码序列表示方法,其特征在于,所述源代码文本为C语言文本。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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