Formalizing and testing the consistency of DSL transformations

Sarmen Keshishzadeh, Arjan J. Mooij

    Research output: Contribution to journalArticleAcademicpeer-review

    2 Citations (Scopus)
    106 Downloads (Pure)


    A domain specific language (DSL) focuses on the essential concepts in a specific problem domain, and abstracts from low-level implementation details. The development of DSLs usually centers around the meta-model, grammar and code generator, possibly extended with transformations to analysis models. Typically, little attention is given to the formal semantics of the language, whereas this is essential for reasoning about DSL models, and for assessing the correctness of the generated code and analysis models. We argue that the semantics of a DSL should be defined explicitly and independently of any code generator, to avoid all kinds of complexities from low-level implementation details. As the generated analysis models must reflect some of these implementation details, we propose to formalize them separately. To assess the correctness and consistency of the generated code and analysis models in a practical way, we use conformance testing. We extensively illustrate this general approach using specific formalizations for an industrial DSL on collision prevention. We do not aim for a generic semantic model for any DSL, but this specific DSL indicates the potential of a modular semantics to facilitate reuse among DSLs.

    Original languageEnglish
    Pages (from-to)181-206
    Number of pages26
    JournalFormal Aspects of Computing
    Issue number2
    Publication statusPublished - 1 Apr 2016


    • Code generation
    • Conformance testing
    • Domain specific language (DSL)
    • Semantics


    Dive into the research topics of 'Formalizing and testing the consistency of DSL transformations'. Together they form a unique fingerprint.

    Cite this