Authors:
Dan Zhang
1
;
Dragan Bosnacki
1
;
Mark van den Brand
1
;
Cornelis Huizing
1
;
Ruurd Kuiper
1
;
Bart Jacobs
2
and
Anton Wijs
1
Affiliations:
1
Eindhoven University of Technology, Netherlands
;
2
Katholieke Universiteit Leuven, Belgium
Keyword(s):
Model Transformation, Code Generation, Concurrency, Atomicity, Formal Verification, Separation logic.
Related
Ontology
Subjects/Areas/Topics:
Applications and Software Development
;
Component-Based Software Engineering
;
Domain-Specific Modeling and Domain-Specific Languages
;
Languages, Tools and Architectures
;
Methodologies, Processes and Platforms
;
Model Execution and Simulation
;
Model Transformation
;
Model Transformations and Generative Approaches
;
Model-Based Testing and Validation
;
Model-Driven Software Development
;
Models
;
Paradigm Trends
;
Reasoning about Models
;
Software Engineering
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 solution 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.