[发明专利]用于源代码配对的静态检查方法及装置有效
申请号: | 201210217915.9 | 申请日: | 2012-06-27 |
公开(公告)号: | CN102799520A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 胡事民;刘虎球 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张大威 |
地址: | 100084 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 源代码 配对 静态 检查 方法 装置 | ||
1.一种用于源代码配对的静态检查方法,其特征在于,包括以下步骤:
S1、对所述源代码进行词法分析,将所述源代码中的注释滤除,并将所述源代码拆分成若干个记号流;
S2、对所述记号流进行语法分析以构造语法树;
S3、对所述语法树进行语义分析,查找需配对元素,并标记所述需配对元素的作用域;
S4、判断所述需配对元素在所述作用域中是否配对;
S5、若发现未被配对的所述需配对元素,则进一步判断是否允许修正;
S6、若允许修正则在所述作用域结束处添加配对;以及
S7、若不允许修正则发出警告和提示。
2.如权利要求1所述的源代码配对的静态检查方法,其特征在于,还包括:
S8、若所述需配对元素全部配对,则直接结束检查。
3.如权利要求1或2所述的源代码配对的静态检查方法,其特征在于,所述需配对元素包括:内存元素、锁元素和信号量元素。
4.如权利要求1-3任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在主函数中时,在所述主函数的结束处添加配对。
5.如权利要求1-3任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在子函数中时,在所述子函数的结束处添加配对。
6.如权利要求1-3任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在分支结构中时,在所述分支结构的每一个分支的结束处添加配对。
7.如权利要求1-3任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在循环结构中时,在所述循环结构的每一个循环节的结束处添加配对。
8.一种用于源代码配对的静态检查装置,其特征在于,包括以下部分:
词法分析器,用于对所述源代码进行词法分析,将所述源代码中的注释滤除,并将所述源代码拆分成若干个记号流;
语法分析器,用于对所述记号流进行语法分析以构造语法树;
查找及标记模块,用于对所述语法树进行语义分析,查找需配对元素,并标记所述需配对元素的作用域;
第一判断模块,用于判断所述需配对元素在所述作用域中是否配对,若发现未被配对的所述需配对元素,则进入第二判断模块;
所述第二判断模块,用于判断是否允许修正,若允许修正则进入修正模块,若不允许修正则发出警告和提示;以及
所述修正模块,用于在所述作用域结束处添加配对。
9.如权利要求8所述的源代码配对的静态检查装置,其特征在于:若所述第一判断模块判断需配对元素全部配对,则直接结束检查。
10.如权利要求8或9所述的源代码配对的静态检查方法,其特征在于,所述需配对元素包括:内存元素、锁元素和信号量元素。
11.如权利要求8-10任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在主函数中时,在所述主函数的结束处添加配对。
12.如权利要求8-10任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在子函数中时,在所述子函数的结束处添加配对。
13.如权利要求8-10任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在分支结构中时,在所述分支结构的每一个分支的结束处添加配对。
14.如权利要求8-10任一项所述的源代码配对的静态检查方法,其特征在于,当未被配对的所述需配对元素出现在循环结构中时,在所述循环结构的每一个循环节的结束处添加配对。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210217915.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:便携式电脑桌
- 下一篇:一种用于蒸汽清洁装置的排刷