Warning: Parameter 1 to Language::getMagic() expected to be a reference, value given in /usr/share/mediawiki/includes/StubObject.php on line 58
Type-Safe Model Transformation Languages as Internal DSLs in Scala – GRK-Wiki

Type-Safe Model Transformation Languages as Internal DSLs in Scala

Aus GRK-Wiki

Wechseln zu: Navigation, Suche


  • In: 5th International Conference on Model Transformation (ICMT'12), Prague, Czech Republic, May 28-29, 2012.

Authors

Abstract

Although there are powerful model transformation languages (MTLs) like ATL, model-to-model transformations still are often implemented in general-purpose languages (GPLs) like Java, especially in EMF-based projects. Developers might hesitate to learn another language, use new tools, or they feel limited by the specific but less versatile constructs an MTL provides. However, model transformation code written in a GPL is less readable, contains redundancies or verbose expressions, and there are fewer possibilities for formal reasoning. Our approach combines some benefits of MTLs with GPL programming. We use the GPL Scala to realize MTLs similar to ATL as internal domain-specific languages. The benefits are seamless integration with EMF and state-of-the-art tool support as well as the possibility to extend MTLs and to mix MTL and GPL code. In contrast to similar approaches with dynamically typed languages like Ruby, Scala allows for static type-safety without adding syntactic clutter.

Download Paper

  • author's version of the paper, the original publication is available at www.springerlink.com; copying permitted only for private and academic purposes.

BibTeX

@inproceedings{icmt12-smtl,
 author = {George, L. and Wider, A. and Scheidgen, M.},
 title = {Type-Safe Model Transformation Languages as Internal DSLs in Scala},
 booktitle = {Proceedings of the 5th International Conference on Model Transformation (ICMT'12), Prague, Czech Republic, May 28-29, 2012},
 year = {2012},
 editor = {Zhenjiang Hu and Juan de Lara},
 volume = {7307},
 series = {LNCS},
 pages = {160--175},
 publisher = {Springer, Heidelberg}
}
Persönliche Werkzeuge
Sprache