[发明专利]一种基于PRDL规则描述语言的C程序代码规范检查装置有效
申请号: | 201710191241.2 | 申请日: | 2017-03-28 |
公开(公告)号: | CN106970819B | 公开(公告)日: | 2020-07-10 |
发明(设计)人: | 周旻;顾明;孙家广 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/36 |
代理公司: | 北京律谱知识产权代理事务所(普通合伙) 11457 | 代理人: | 罗建书 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 prdl 规则 描述 语言 程序代码 规范 检查 装置 | ||
1.一种基于PRDL规则描述语言的C程序代码规范检查装置,其特征在于:所述代码规范检查装置包括五个功能模块:
规则解析器,由下述两个子功能模块组成:语义解析器、查询优化器,首先语义解析器解析PRDL规则语义,生成初始逻辑查询计划,查询优化器再对该计划进行重写优化,生成优化逻辑查询计划,并将其送入规则检查引擎;
其中:重写优化的策略包括以下三种:
约束位置重置策略,查询计划中存在一个查询的搜索空间包含有另一个查询的搜索空间,但两个查询独立从全局空间进行搜索的情况,对应的优化策略是重置查询的执行顺序,让两者嵌套执行,并使前者查询优先于后者查询执行,以保证后者查询在更小的搜索空间中进行搜索,更快得到查询结果;
重用子查询策略,查询计划中存在一个查询可能是多个查询的子查询,即多个查询需要使用该查询的查询结果的情况,对应的优化策略是将前者查询的查询结果提前计算并缓存,等其他查询需要用到前者查询的查询结果时,将缓存的查询结果取出使用即可,避免重复查询;
最优查询路径起点策略,查询计划本身可以转化为查询树,选择不同的查询作为查询起点,会产生不同层次的查询树,使得查询执行的时间不同,为了提高执行效率,根据统计,选择出现频率最小的节点为查询起点,对查询计划进行变形,即可提高查询效率;
程序解析器,由代码行解析器、标记(Token)流解析器、语法树解析器三个子功能模块所组成,负责对源代码进行文本特征抽取和结构特征抽取,将抽取得到的代码行、标记、语法树三个层次的模型融合成C程序模型送入规则检查引擎;
规则检查引擎,负责接收规则解析器送入的优化逻辑查询计划和程序解析器送入的C程序模型,按照优化逻辑查询计划执行规则检查,将检查结果发送给缺陷报告器;
缺陷报告器,负责根据规则检查引擎的检查结果以及相应规则的信息,将可能的代码缺陷整合并汇报给用户交互接口;
用户交互接口,由分别完成各自功能的四个子功能模块:规则库管理、测试集管理、规则检查界面及结果显示模块所组成,负责根据用户需求定制检查的上下文,并将缺陷报告器整合完毕的结果向用户进行反馈。
2.如权利要求1所述的基于PRDL规则描述语言的C程序代码规范检查装置,其特征在于:所述规则解析器中两个子模块的功能是:
语义解析器对PRDL规则文本进行解析,产生查询上下文和初始逻辑查询计划,并向查询优化器提供接口,以便查询优化器读取这些信息;
查询优化器对初始逻辑查询计划应用重写优化策略,产生优化逻辑查询计划,并向规则检查引擎提供接口,供其读取信息。
3.如权利要求1所述的基于PRDL规则描述语言的C程序代码规范检查装置,其特征在于:所述程序解析器中三个子模块的功能是:
代码行解析器以源代码作为输入,为每一行代码生成一个数据封装对象,提供程序行层次的文本信息;
标记流解析器以源代码作为输入,对代码中的每个标记进行封装与连接,提供单词层次的文本信息;
语法树解析器,提供程序的结构信息,包括程序的语法组成元素以及它们之间的关系;
三个子模块之间互相提供接口,以实现对象间相互转化,三个子模块都向规则检查引擎提供接口,供其读取程序行、单词层次的文本信息以及结构信息。
4.如权利要求1所述的基于PRDL规则描述语言的C程序代码规范检查装置,其特征在于:所述PRDL规则描述语言的基本结构包括内部变量定义、内部函数定义、外部函数定义、规则主体;规则有两个来源,一是内嵌的规则库,现包括GJB 5369-2005航天型号软件C语言安全子集中的138条规则和MSIRA-C汽车制造业嵌入式C编码标准中的117条规则;二是用户自定义规则,允许用户添加按照PRDL规则描述语言语法写成的规则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710191241.2/1.html,转载请声明来源钻瓜专利网。