Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala.

Arif Wider · EDBT/ICDT Workshops · 2014

Despite advantages in terms of comprehensibility, verication, and maintainability, bidirectional transformation (bx) languages lack wide-spread adoption. Possible reasons are that tool support for bx languages is sometimes weak or outdated, that many bx languages are hard to integrate with existing software technologies, or that bx languages often cannot be mixed with unidirectional transformation languages and general-purpose programming languages. We present an approach to implement existing bx languages as internal domain-specic languages (iDSLs) in the Scala programming language and demonstrate the approach by implementing state-based tree lenses as a statically typed iDSL in Scala. We show that this approach allows for rich tool-support based on static analysis and for achieving technological integration with the Java platform in general and with the Eclipse Modeling Framework (EMF) in particular. At the same time, the iDSL is independent from DSL-specic tool-support and can be mixed with Scala, Java, or unidirectional transformation languages.

Read the paper · More papers on PaperTik