Type-Safe Model Transformation Languages as Internal DSLs in Scala

| 0 comments

Abstract. Although there are mature model transformation languages (MTLs) like ATL, model-to-model transformations still are often im- plemented in general-purpose languages (GPLs) like Java, especially in EMF-based projects. A reason might be that developers hesitate from integrating another language and a corresponding tool set or feel limited by the reduced set of constructs of an MTL. However, using a GPL for describing model transformations results in less expressiveness, reduced readability, more redundancy and fewer possibilities for formal reasoning. We present an approach to provide an MTL similar to ATL as an internal domain-specific language within the Scala programming language. This results in seamless integration with EMF-based projects, less dependency to up-to-date tool support and allows for mixing MTL constructs with GPL programming and for extending the language with new constructs. In contrast to similar approaches using dynamically typed languages like Ruby, our Scala-based approach allows for static type checking.

Download

@inproceedings{icmt/GeorgeWS12,
  author    = {Lars George and
               Arif Wider and
               Markus Scheidgen},
  title     = {Type-Safe Model Transformation Languages as Internal DSLs
               in Scala},
  booktitle = {ICMT},
  year      = {2012},
  pages     = {160-175},
  ee        = {http://dx.doi.org/10.1007/978-3-642-30476-7_11},
  crossref  = {DBLP:conf/icmt/2012},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{icmt/2012,
  editor    = {Zhenjiang Hu and
               Juan de Lara},
  title     = {Theory and Practice of Model Transformations - 5th International
               Conference, ICMT 2012, Prague, Czech Republic, May 28-29,
               2012. Proceedings},
  booktitle = {ICMT},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {7307},
  year      = {2012},
  isbn      = {978-3-642-30475-0},
  ee        = {http://dx.doi.org/10.1007/978-3-642-30476-7},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

Leave a Reply

Required fields are marked *.