[发明专利]一种基于正则表达式的程序静态分析方法有效
申请号: | 201510901013.0 | 申请日: | 2015-12-08 |
公开(公告)号: | CN106855842B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 耿晨;谭强;王海龙;鹿雪玲 | 申请(专利权)人: | 中国航空工业第六一八研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国航空专利中心 11008 | 代理人: | 杜永保 |
地址: | 710065 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 正则 表达式 程序 静态 分析 方法 | ||
本发明涉及一种程序分析方法,特别涉及一种基于正则表达式的程序静态分析方法。根据待评价程序的结构和编码规则,建立提取关键信息的正则表达式分析规则,从提取到的关键信息数据库中,得到不符合待评价程序结构和编码规则的项目。基于正则表达式的分析方法,可以快速有效的对程序进行分析,并对程序进行有针对性的优化。
技术领域
本发明涉及一种程序分析方法,特别涉及一种基于正则表达式的程序静态分析方法。
背景技术
程序静态分析是在不执行程序的情况下对程序进行分析,推测程序在运行时可能表现出来的行为,是实现对软件系统理解与分析的一种有效途径和关键技术。现有多种程序静态分析方法,如:符号执行,定理证明,类型推导,抽象解释等。但此类方法难以挖掘出具体的代码元素,如函数,变量名,数据结构类型,返回值等信息。
机载系统设备一般包括惯性导航系统、飞行控制系统、火控系统等。随着惯导功能复杂性的增强,程序的规模也急剧增加,相应的文档规模也越来越大,在编制文档过程中极大的增加了开发人员的工作量。现已有自动生成文档的方法,例如基于注释的方法。此类方法虽然具有针对性强的优点,能够直接生成程序的一部分文档,但需要人工在代码中添加注释,当代码规模迅速增大时,仅仅依靠人力几乎不可能完成注释添加工作,且会增加开发人员的负担。
在程序的开发过程中,需要遵循一定的编码规则。由于开发人员较多,因此每个人可能未必能严格遵循编码规则,因此也需要一种检测手段来查找不符合编码规则的程序片段,并促使开发人员修正此问题。
此外,由于程序运行在使用嵌入式处理器的惯导系统上,硬件资源有限,为了更好的利用仅有的处理器和内存资源,也需要一种程序优化的方法。
发明内容
本发明解决的技术问题为:提供一种快捷高效的,基于正则表达式的程序静态分析方法。
本发明的技术方案为:根据待评价程序的结构和编码规则,建立提取关键信息的正则表达式分析规则,从提取到的关键信息数据库中,得到不符合待评价程序结构和编码规则的项目。
作为本技术方案的一种改进,所述的方法包括如下步骤:
步骤一,确定待评价程序需要分析的关键信息;
步骤二,根据待评价程序的结构和编码规则,建立提取关键信息的正则表达式分析规则,构成正则表达式分析规则库;
步骤三,根据正则表达式分析规则库,提取待评价程序的关键信息,得到关键信息的数据字典和关键信息数据库;
步骤四,从关键信息数据库中提取不符合待评价程序的结构和编码规则的项目,并生成不符合项分析报告。
作为本技术方案的一种改进,待评价程序的关键信息包括函数名、局部变量、全局变量、返回值、函数中使用的数据结构和当前函数调用的其他函数名。
作为本技术方案的一种改进,根据步骤三中得到的关键信息数据字典和关键信息数据库,和事先规定的设计文档模版,生成得到程序对应的设计文档。
作为本技术方案的一种改进,根据正则表达式分析规则库,提取待评价程序的关键信息时,还统计了每个函数和数据结构的调用频次。
本发明的有益效果为:首先,基于正则表达式的分析方法,可以快速有效的对程序进行分析,并对程序进行有针对性的优化。
其次,能够自动生成设计文档,大大减少了开发人员的工作量。
再次,能够对不符合编码规则的程序片段进行标识,快速定位不符合项程序片段,易于修改程序。
最后,适用性强,适用所有型号的程序,可以兼容旧版本的程序。分析结果可以在多个项目之间复用,降低了其他型号的开发成本,通过构建的分析模型能够进一步的优化程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业第六一八研究所,未经中国航空工业第六一八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510901013.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种系统内存分析方法和装置
- 下一篇:一种Web系统的性能分析方法和装置