Verifying atomicity preservation and deadlock freedom of a generic shared variable mechanism used in model-to-code transformations

D Zhang, D Bošnački, M van den Brand…�- …�-Driven Engineering and�…, 2017 - Springer
Model-Driven Engineering and Software Development: 4th International�…, 2017Springer
A challenging aspect of model-to-code transformations is to ensure that the semantic
behavior of the input model is preserved in the output code. When constructing concurrent
systems, this is mainly difficult due to the non-deterministic potential interaction between
threads. In this paper, we consider this issue for a framework that implements a
transformation chain from models expressed in the state machine based domain specific
language SLCO to Java. In particular, we provide a fine-grained generic mechanism to�…
Abstract
A challenging aspect of model-to-code transformations is to ensure that the semantic behavior of the input model is preserved in the output code. When constructing concurrent systems, this is mainly difficult due to the non-deterministic potential interaction between threads. In this paper, we consider this issue for a framework that implements a transformation chain from models expressed in the state machine based domain specific language SLCO to Java. In particular, we provide a fine-grained generic mechanism to preserve atomicity of SLCO statements in the Java implementation. We give its generic specification based on separation logic and verify it using the verification tool VeriFast. The solution can be regarded as a reusable module to safely implement atomic operations in concurrent systems. Moreover, we also prove with VeriFast that our mechanism does not introduce deadlocks. The specification formally ensures that the locks are not reentrant which simplifies the formal treatment of the Java locks.
Springer
Showing the best result for this search. See all results