News
Approach to static verification of multithreaded applications based on a graph model of a program
Abstract
This work is devoted to developing a static verification method for concurrent programs through the analysis of automatically constructed formal program models. The proposed solution is a graph-based approach utilizing an extended Petri net with semantic relations, which, owing to the explicit separation of control and data flows within a directed bipartite graph, enables efficient detection of critical concurrency errors, such as data races and deadlocks. The practical significance of the approach is confirmed by a prototype implementation – the Semantic Petri Net Analyzer for the Go language – which, in experiments conducted on the GoBench benchmark, demonstrated its ability to detect data races and deadlocks and outperformed dynamic analysis methods. It is shown that the proposed method offers a balanced solution for enhancing the reliability of concurrent software, combining analysis completeness, automation, and practical applicability.
Keywords
Edition
Proceedings of the Institute for System Programming, vol. 38, issue 6, part 1, 2026, pp. 41-62
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(6)-3
For citation
Full text of the paper in pdf (in Russian)
Back to the contents of the volume