首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于抽象语法树的冗余变量和冗余方法的检测方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:南京航空航天大学

摘要:本发明提出了一种基于抽象语法树的冗余变量和冗余方法的检测方法及系统。所述方法包括:利用抽象语法树技术解析java源文件,在解析的过程中生成相应的变量数组和方法数组,并通过变量的关系依赖数组和方法的调用变量数组以及未匹配的字符串数组来检测出冗余变量和冗余方法,对检测出的冗余变量和冗余方法执行删除操作。通过本发明,输入一个包含main方法的java源文件,即可输出所有的冗余变量和冗余方法,并且可以自动删除所检测出来的冗余变量和冗余方法。本发明不要求进行冗余变量和冗余方法的人为判断,也可以在不知道冗余变量和冗余方法的具体位置的情况下对其进行删除,这为冗余变量和冗余方法的检测和删除提供了一个良好的解决方案。

主权项:1.一种基于抽象语法树的冗余变量和冗余方法的检测方法,其特征在于,包括以下步骤:1根据Java语言的抽象语法树的节点结构对Java源文件进行解析,得到当前文件的抽象语法树;2根据抽象语法树,将所有由用户定义的变量与方法分解出来,生成对应的变量数组与方法数组;3从函数main方法入口出发,遍历遇到的所有变量与方法,并在对应变量数组与方法数组中添加其他变量或者方法的依赖,变量和方法依赖关系的分析包括:31对于表达式语句val1=val2+funval3fun2val4,val1、val2、val3、val4为变量,fun与fun2为函数,根据字符串拆分技术将字符串分为val1与val2+funval3fun2val4,然后将第二个字符串拆分成val2、funval3与fun2val4;32在val1的变量关系依赖数组中添加val2,由于解析后两个字符串会匹配不成功,因此,将其分别拆分为fun与val3、fun2与val4,然后在val1的变量关系依赖数组中添加val3与val4,在方法关系依赖数组中添加fun与fun2;33在fun的调用变量数组中添加val3,在fun2的调用变量数组中添加val4;4将主函数调用位做上标记,并以此推断变量数组与方法数组中冗余的节点,推断变量数组与方法数组中冗余的节点的方法为:先检测哪些是非冗余变量和非冗余方法,其余的就是冗余的变量和方法,对于非冗余变量和非冗余方法的判断方法如下:i如果一个变量被一个非冗余方法调用,这个方法是用户定义的方法或者是系统方法,那么这个变量就是非冗余变量;ii如果一个变量依赖于非冗余变量,则这个变量就是非冗余变量;iii如果在main方法中的methodExpressionString与其自定义方法名相同,则该自定义方法为非冗余方法;5根据得到的冗余变量和冗余方法节点,删除对应的冗余的变量和方法。

全文数据:

权利要求:

百度查询: 南京航空航天大学 基于抽象语法树的冗余变量和冗余方法的检测方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。