Formalizing and testing the consistency of DSL transformations

Sarmen Keshishzadeh, Arjan J. Mooij

Research output: Contribution to journalArticleAcademicpeer-review

1 Citation (Scopus)
36 Downloads (Pure)

Abstract

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
Volume28
Issue number2
DOIs
Publication statusPublished - 1 Apr 2016

Keywords

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

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

  • Cite this