一种基于正则表达式的程序静态分析方法与流程

文档序号:12612204阅读:864来源:国知局
导航: X技术> 最新专利> 计算;推算;计数设备的制造及其应用技术
一种基于正则表达式的程序静态分析方法与流程

本发明涉及一种程序分析方法,特别涉及一种基于正则表达式的程序静态分析方法。



背景技术:

程序静态分析是在不执行程序的情况下对程序进行分析,推测程序在运行时可能表现出来的行为,是实现对软件系统理解与分析的一种有效途径和关键技术。现有多种程序静态分析方法,如:符号执行,定理证明,类型推导,抽象解释等。但此类方法难以挖掘出具体的代码元素,如函数,变量名,数据结构类型,返回值等信息。

机载系统设备一般包括惯性导航系统、飞行控制系统、火控系统等。随着惯导功能复杂性的增强,程序的规模也急剧增加,相应的文档规模也越来越大,在编制文档过程中极大的增加了开发人员的工作量。现已有自动生成文档的方法,例如基于注释的方法。此类方法虽然具有针对性强的优点,能够直接生成程序的一部分文档,但需要人工在代码中添加注释,当代码规模迅速增大时,仅仅依靠人力几乎不可能完成注释添加工作,且会增加开发人员的负担。

在程序的开发过程中,需要遵循一定的编码规则。由于开发人员较多,因此每个人可能未必能严格遵循编码规则,因此也需要一种检测手段来查找不符合编码规则的程序片段,并促使开发人员修正此问题。

此外,由于程序运行在使用嵌入式处理器的惯导系统上,硬件资 源有限,为了更好的利用仅有的处理器和内存资源,也需要一种程序优化的方法。



技术实现要素:

本发明解决的技术问题为:提供一种快捷高效的,基于正则表达式的程序静态分析方法。

本发明的技术方案为:根据待评价程序的结构和编码规则,建立提取关键信息的正则表达式分析规则,从提取到的关键信息数据库中,得到不符合待评价程序结构和编码规则的项目。

作为本技术方案的一种改进,所述的方法包括如下步骤:

步骤一,确定待评价程序需要分析的关键信息;

步骤二,根据待评价程序的结构和编码规则,建立提取关键信息的正则表达式分析规则,构成正则表达式分析规则库;

步骤三,根据正则表达式分析规则库,提取待评价程序的关键信息,得到关键信息的数据字典和关键信息数据库;

步骤四,从关键信息数据库中提取不符合待评价程序的结构和编码规则的项目,并生成不符合项分析报告。

作为本技术方案的一种改进,待评价程序的关键信息包括函数名、局部变量、全局变量、返回值、函数中使用的数据结构和当前函数调用的其他函数名。

作为本技术方案的一种改进,根据步骤三中得到的关键信息数据字典和关键信息数据库,和事先规定的设计文档模版,生成得到程序对应的设计文档。

作为本技术方案的一种改进,根据正则表达式分析规则库,提取待评价程序的关键信息时,还统计了每个函数和数据结构的调用频次。

本发明的有益效果为:首先,基于正则表达式的分析方法,可以快速有效的对程序进行分析,并对程序进行有针对性的优化。

其次,能够自动生成设计文档,大大减少了开发人员的工作量。

再次,能够对不符合编码规则的程序片段进行标识,快速定位不符合项程序片段,易于修改程序。

最后,适用性强,适用所有型号的程序,可以兼容旧版本的程序。分析结果可以在多个项目之间复用,降低了其他型号的开发成本,通过构建的分析模型能够进一步的优化程序。

附图说明

图1本发明运行的具体实施步骤流程图;

图2本发明的设计框架图。

具体实施方式

下面结合附图对本技术方案作进一步详细说明。

所述的方法,根据待评价程序的结构和编码规则,建立提取关键信息的正则表达式分析规则,从提取到的关键信息数据库中,得到不符合待评价程序结构和编码规则的项目。

图1显示的是本方法的处理流程。图1中有两个功能组建,程序分析器和文档生成器。通过分析程序的关键信息,建立正则表达式规则库,程序分析器可以对输入的程序进行分析并输出数据字典,关键信息数据库和统计与分析模型。文档生成器能够生成程序对应的文档 和不符合项报告。开发人员可以根据统计与分析模型,以及不符合项报告来改进和优化程序。

使用本方法整个实施步骤参见附图1,具体描述如下:

步骤1:提取程序需要分析的关键信息。对于程序来说,程序的关键信息包括函数名、局部变量、全局变量、返回值、函数中使用的数据结构和当前函数调用的其他函数名。

步骤2:结合程序关键信息,建立程序的编码规则。根据编码规则,建立分析和解析程序的正则表达式规则库。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的组合,用来表达对字符串的一种过滤逻辑。正则表达式能够自由方便的进行字符串匹配,具有适用性强,灵活且易于修改的特点。正则表达式规则库是多条正则表达式规则的集合,它是能够进行程序分析的前提,提供了对程序关键信息的映射关系。程序关键信息中的每一个要素,如程序中的函数名,对应于正则表达式规则库中的一条规则,程序分析器可以通过此规则找到每个函数,同理,可以找到其他的程序关键信息。

步骤3:根据正则表达式分析规则库,提取待评价程序的关键信息。分析过程基于正则表达式规则。根据正则表达式规则匹配程序中的相应程序关键信息,自动生成关键信息数据库、数据字典,并建立统计与分析模型。关键信息数据库是用来存储程序关键信息的数据库,数据字典是存放数据库所用的有关信息,描述了数据库的格式,为数据库提供存取和控制管理。

步骤4:从关键信息数据库中提取不符合待评价程序的结构和编码规则的项目。使用文档生成器生成文档。文档生成器访问步骤3建立的数据字典和关键信息数据库,并结合规定的文档模版,生成程序对应的文档。此文档模版规定了需要输出的文档格式以及文档中需要填写的内容。此外,在解析程序的过程中,识别程序中不符合编码规则的程序片段,生成不符合项分析报告。

步骤5:根据不符合项分析报告,对不符合惯导编码规则的程序片段进行修正,使之完全符合标准,此方式降低了人工在海量的程序片段中进行检查的成本,能够快速定位不符合项的位置。

步骤6;重新使用程序分析器对改进后的程序进行分析,查看不符合项报告。若不存在不符合项,则说明已经完成对所有不符合项的修正。否则重复步骤6,直到不存在不符合项为止。

步骤7:根据步骤4建立的统计和分析模型,结合惯导硬件系统,对程序进行优化。统计程序中使用频度最高的函数体,全局变量和数据结构,根据“2-8法则”,对这些程序关键信息的优化能够大幅提升程序运行效率。

实施例

应用场景如下:在某型号飞机上,该型惯导系统的硬件单片机基本配置如下:

CPU类型:PowerPC8245处理器。

操作系统:VXworks5.5。

程序需支持此CPU,且使用此操作系统API。

图2是本发明在应用场景下的设计框架图。

根据程序的运行环境(CPU和操作系统),以及程序关键信息,建立程序的编码规则。规定程序关键信息包括函数名、局部变量、全局变量、返回值、函数中使用的数据结构和当前函数调用的其他函数名。函数输入参数的变量命名规则:名称前缀为程序指定的特定字符串,能够唯一识别对应的程序关键信息。

通过操作界面,载入需要分析的程序,可以是单个文件,也可以是一批文件存放在某个文件夹。

点击“开始分析”按钮,调用程序分析器对程序进行分析,并得到XML格式的数据字典和关键信息数据库。在分析完毕之后,文档生成器会自动根据以上结果生成程序对应的文档和不符合项分析报告。

根据不符合项分析报告改进程序。不符合项分析报告中,包括不符合项的统计信息,如不符合项的个数,所在的文件以及所在文件的行数和其所在的函数。根据此信息,对程序进行修改,使之符合惯导的编码规则。

根据统计和分析模型,对输入的程序中,出现频率最高的函数体和数据结构进行分析。对数据结构中的变量的存储空间,以及顺序进行调整;优化数据结构的在内存中的对齐方式;并删去不使用的数据结构项,将此数据结构中的使用频度最少变量提出,建立单独的变量,能够有效减少使用频度最高的数据结构所占用的空间,提高对其访问的效率。

通过实际验证,本发明能够在200ms内完成10万行规模级的程序的分析工作,并输出程序对应的文档和不符合项,通过不符合项和统计与分析模型对程序改进,优化后的程序执行效率提高约1.6%。原本人工完成10万行规模级程序对应的设计文档,需要约216小时/人,现在可自动生成文档,无需人工介入,极大节约人力成本。

本发明还可以有其它多种实施例,在不背离本发明精神和实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变,但这些相应的改变都应属于本发明所附的权利要求的保护范围。

完整全部详细技术资料下载
当前第1页 1  2  3 
相关技术
  • 一种系统内存分析方法和装置与...
  • 一种系统CPU分析方法和装置...
  • 一种服务器故障指示方法及装置...
  • 一种工作频率调整方法、装置及...
  • 一种基于Flume的数据处理...
  • 计算机功耗测试方法以及装置与...
  • 一种基于XML技术的飞控系统...
  • 一种数据备份方法、装置和系统...
  • 一种数据校验方法与流程
  • 数据存储装置及其操作方法与流...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
程序静态分析相关技术
  • 循环语句中变量抽象取值的迭代求精方法
  • 一种序批式静态沉淀系统的制作方法
  • 一种序批式静态沉淀方法及其系统的制作方法

深圳SEO优化公司福永模板网站建设观澜模板网站建设木棉湾企业网站制作龙华网站设计吉祥百搜词包民治关键词排名包年推广罗湖SEO按效果付费坪地网站建设设计南山百度seo双龙企业网站设计坪山关键词排名福永优秀网站设计永湖百度关键词包年推广松岗网站排名优化南山建站横岗企业网站建设沙井网页设计盐田网站开发大运外贸网站设计坑梓SEO按效果付费龙岗优秀网站设计布吉百度爱采购坑梓建站东莞网站开发沙井网站搜索优化西乡推广网站木棉湾seo排名石岩网站优化按天扣费西乡网络广告推广塘坑网站改版歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化