Industrial Experiences with a Formal DSL Semantics to Check Correctness of DSL Transformations
This addresses correctness issues in DSL transformations for industrial software development, but it is incremental as it applies existing formal methods to a specific domain.
The authors tackled the problem of ensuring consistency among multiple transformations from a domain-specific language (DSL) by using a formal semantics, reporting on its application in an industrial project with techniques like equivalence checking and model-based testing.
A domain specific language (DSL) abstracts from implementation details and is aligned with the way domain experts reason about a software component. The development of DSLs is usually centered around a grammar and transformations that generate implementation code or analysis models. The semantics of the language is often defined implicitly and in terms of a transformation to implementation code. In the presence of multiple transformations from the DSL, the consistency of the generated artifacts with respect to the semantics of the DSL is a relevant issue. We show that a formal semantics is essential for checking the consistency between the generated artifacts. We exploit the formal semantics in an industrial project and use formal techniques based on equivalence checking and model-based testing for consistency checking. We report about our experience with this approach in an industrial development project.