中国科学院软件研究所燕季薇获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉中国科学院软件研究所申请的专利Python代码静态分析方法及装置获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN116303053B 。
龙图腾网通过国家知识产权局官网在2026-03-27发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202310294925.0,技术领域涉及:G06F11/362;该发明授权Python代码静态分析方法及装置是由燕季薇;张弛;严俊设计研发完成,并于2023-03-23向国家知识产权局提交的专利申请。
本Python代码静态分析方法及装置在说明书摘要公布了:本公开涉及一种Python代码静态分析方法及装置,所述方法包括:获取Python项目的源代码,将源代码转化为抽象语法树;生成抽象对象,所述抽象对象用于模拟源代码在运行过程中创建的对象;基于抽象语法树与Python语法蕴含的语义信息,将抽象对象绑定到对应的变量中,以得到Python项目的指向分析结果;根据抽象语法树中节点的节点类型,获取被推测变量,并通过推测每一被推测变量的类型,得到Python项目的变量类型推测结果;基于指向分析结果和变量类型推测结果,判断Python项目是否违反代码编程规则与触及对象类型错误,以得到Python项目的静态分析结果。本发明可以基于语法、语义的推测方法对现有技术中无法推理的变量类型进行补充,实现了全面的Python代码静态分析。
本发明授权Python代码静态分析方法及装置在权利要求书中公布了:1.一种Python代码静态分析方法,其特征在于,所述方法包括: 获取Python项目的源代码,将所述源代码转化为抽象语法树; 生成抽象对象,所述抽象对象用于模拟所述源代码在运行过程中创建的对象; 基于所述抽象语法树与Python语法蕴含的语义信息,将抽象对象绑定到对应的变量中,以得到所述Python项目的指向分析结果; 根据所述抽象语法树中节点的节点类型,获取被推测变量的变量名,并通过推测每一所述被推测变量的类型,得到所述Python项目的变量类型推测结果; 基于所述指向分析结果和所述变量类型推测结果,判断所述Python项目是否违反代码编程规则与触及对象类型错误,以得到所述Python项目的静态分析结果; 其中,所述基于所述抽象语法树与Python语法蕴含的语义信息,将抽象对象绑定到对应的变量中,以得到所述Python项目的指向分析结果,包括: 生成指向分析赋值操作规则;所述指向分析赋值操作规则表示所述Python项目中赋值语句的赋值操作规则; 基于所述指向分析赋值操作规则,对所述Python项目中的每一文件进行流敏感、上下文敏感和域敏感的指向分析,得到所述Python项目的语法分析结果; 其中,所述根据所述抽象语法树中节点的节点类型,获取被推测变量的变量名,并通过推测每一所述被推测变量的类型,得到所述Python项目的变量类型推测结果,包括: 构建变量推测类型表;所述变量推测类型表包括:属性的类型推测表、下标语法的类型推测表和二元操作的类型推测表; 初始化变量类型关系表; 遍历所述抽象语法树; 在节点的节点类型为属性、下标语法或二元运算符时,获取被推测变量的变量名,根据所述变量推测类型表推断所述被推测变量的变量类型,并将所述变量类型加入所述变量类型关系表,得到该被推测变量在该节点上的类型列表; 在节点的节点类型为模块、类或函数的定义时,对每一被推测变量的所有类型列表中的元素取交集,且在交集的元素为1时,使用交集元素更新该被推测变量的类型列表; 直至所述遍历结束,基于当前的变量类型关系表,得到所述Python项目的变量类型推测结果。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人中国科学院软件研究所,其通讯地址为:100190 北京市海淀区中关村南四街4号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
以上内容由龙图腾AI智能生成。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

皖公网安备 34010402703815号
请提出您的宝贵建议,有机会获取IP积分或其他奖励