申请/专利权人:同济大学
申请日:2023-05-31
公开(公告)日:2023-08-29
公开(公告)号:CN116661751A
主分类号:G06F8/30
分类号:G06F8/30;G06F8/41;G06F9/52
优先权:
专利状态码:在审-实质审查的生效
法律状态:2023.09.15#实质审查的生效;2023.08.29#公开
摘要:本发明公开了一种基于Petri网的Rust语言自动建模与死锁检测方法及软件工具。所述检测方法包括Rust程序源代码分析、创建Rust程序中间代码、指定检测Rust程序中的锁类型、生成锁数据流图、转换所述锁数据流图为Petri网和分析Petri网,生成死锁检测报告的步骤。所述软件工具包括用户界面模块、Rust程序源代码分析模块、映射到Petri网模块和bug检测模块。本发明是基于Cargo的,不需要重写命令,提高检测效率;屏蔽掉了多余代码带来的复杂性;使用Rust编译作为前端来执行程序化查询,基于锁操作语义的等价映射,不改变原有的程序语义;对无关操作进行了裁剪,缩减了模型检测的状态空间,提高了检测速度。
主权项:1.基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,包括以下步骤:步骤S1、Rust程序源代码分析;步骤S2、创建Rust程序中间代码;所述中间代码隐含了所述源代码的控制流图和数据流图;步骤S3、指定检测Rust程序中的锁类型;不同的所述锁类型对应不同的Petri网模型和操作语义;步骤S4、生成锁数据流图:在所述控制流图的基础上,根据所述步骤S3中锁类型进行提取的锁执行路径;步骤S5、转换所述锁数据流图为Petri网:通过提前定义好的映射关系来完成所述锁数据流图到Petri网模型的映射,对所述映射关系进行形式化表述,确保不会发生操作语义的变更;步骤S6、分析Petri网,生成死锁检测报告;所述死锁检测报告包括在程序中发现可能造成的锁结构信息。
全文数据:
权利要求:
百度查询: 同济大学 基于Petri网的Rust语言自动建模与死锁检测方法及软件工具
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。