Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
Alexander Heu{\ss}ner, Christopher M. Poskitt, Claudio Corrodi,, Benjamin Morandi

TL;DR
This paper introduces a practical graph transformation system-based approach for verifying object-oriented concurrent programs, specifically SCOOP, directly from code without extra annotations, enabling simulation and analysis of deadlocks and behaviors.
Contribution
It presents the first automatic translation of SCOOP programs into GTS for verification and demonstrates the use of GROOVE for semantics modeling and analysis of concurrency.
Findings
Successfully verified SCOOP programs for deadlocks and behaviors.
Implemented a run-time semantics model in GROOVE that captures key SCOOP features.
Showed the transferability of GTS-based semantics modeling to other concurrent languages.
Abstract
To harness the power of multi-core and distributed platforms, and to make the development of concurrent software more accessible to software engineers, different object-oriented concurrency models such as SCOOP have been proposed. Despite the practical importance of analysing SCOOP programs, there are currently no general verification approaches that operate directly on program code without additional annotations. One reason for this is the multitude of partially conflicting semantic formalisations for SCOOP (either in theory or by-implementation). Here, we propose a simple graph transformation system (GTS) based run-time semantics for SCOOP that grasps the most common features of all known semantics of the language. This run-time model is implemented in the state-of-the-art GTS tool GROOVE, which allows us to simulate, analyse, and verify a subset of SCOOP programs with respect to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
