  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 correctness 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 correctness of 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 validating the correctness of
the generated artifacts. We report about our experience with this approach in
an industrial development project.
