This paper presents a method of automatically converting source codes (Rust programs) into Petri nets, focusing on the detection of deadlocks caused by the double locks and lock conflicts in the parallel Rust programs. We construct the transformation rules and develop a tool. Our method can omit those Rust codes without relations to locks when scanning the input codes, and thus tool can handle a large-scale code. We do a number of experiments to show the advantages of our method compared with the state-of-the-art ones.
翻译:本文介绍了一种将源代码( Rust 程序) 自动转换为 Petri 网的方法, 重点是发现双锁和平行的 Rust 程序中的冲突造成的僵局。 我们构建了转换规则并开发了一个工具。 我们的方法可以省略这些 Rust 代码, 在扫描输入代码时没有关联, 从而工具可以处理一个大型代码 。 我们做了一些实验, 以展示我们的方法相对于最先进的代码的优势 。