Advertisement

A Domain Specific Transformation Language to Bridge Concrete and Abstract Syntax

  • Adolfo Sánchez-Barbudo Herrera
  • Edward D. Willink
  • Richard F. Paige
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9765)

Abstract

Existing language workbenches, such as Xtext, support bridging the gap between the concrete syntax (CS) and abstract syntax (AS) of textual languages. However, the specification artefacts – i.e. grammars – are not sufficiently expressive to completely model the required CS-to-AS mapping, when it requires complex name resolution or multi-way mappings. This paper proposes a new declarative domain specific transformation language (DSTL) which provides support for complex CS-to-AS mappings, including features for name resolution and CS disambiguation. We justify the value of and need for a DSTL, analyse the challenges for using it to support mappings for complex languages such as Object Constraint Language, and demonstrate how it addresses these challenges. We present a comparison between the new DSTL and the state-of-the-art Gra2Mol, including performance data showing a significant improvement in terms of execution time.

Keywords

Concrete syntax Abstract syntax Domain specific transformation language Xtext OCL Gra2Mol 

Notes

Acknowledgement

We gratefully acknowledge the support of the UK Engineering and Physical Sciences Research Council, via the LSCITS initiative, and Javier Luís Cánovas Izquierdo (Gra2Mol) and Pieter Van Gorp (SHARE) for the technical support required to produce the results exposed in this paper.

References

  1. 1.
    Jouault, F., Bézivin, J., Kurtev, I.: TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In: Proceedings of the 5th International Conference, pp. 249–254. ACM, New York (2006)Google Scholar
  2. 2.
    Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Model-based language engineering with EMFText. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 322–345. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  3. 3.
    Voelter, M.: Language and IDE modularization and composition with MPS. In: Saraiva, J., Visser, J., Lämmel, R. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 383–430. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  4. 4.
    Object Management Group. Object Constraint Language (OCL), V2.4. formal/2014-02-03, February 2014. http://www.omg.org/spec/OCL/2.4
  5. 5.
    Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: Proceedings of the ACM International Conference SPLASH 2010, pp. 307–309. ACM, New York (2010)Google Scholar
  6. 6.
    Wirth, N.: Extended backus-naur form (EBNF). ISO/IEC, 14977:2996 (1996)Google Scholar
  7. 7.
    Bézivin, J.: Model driven engineering: an emerging technical space. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 36–64. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Muller, P.-A., Fleurey, F., Fondement, F., Hassenforder, M., Schneckenburger, R., Gérard, S., Jézéquel, J.-M.: Model-driven analysis and synthesis of concrete syntax. In: Wang, J., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 98–110. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. 9.
    Sánchez-Barbudo, A., Willink, E., Paige, R.F.: An OCL-based bridge from concrete to abstract syntax. In: Tuong, F., et al. (eds.) Proceedings of the 15th OCL Workshop, vol. 1512, pp. 19–34. CEUR (2015)Google Scholar
  10. 10.
    Cánovas, J.L., García-Molina, J.: Extracting models from source code in software modernization. Softw. Syst. Model. 13, 1–22 (2012)Google Scholar
  11. 11.
    Konat, G., Kats, L., Wachsmuth, G., Visser, E.: Declarative name binding and scope rules. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 311–331. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  12. 12.
    Wimmer, M., Kramler, G.: Bridging grammarware and modelware. In: Bruel, J.-M. (ed.) MoDELS 2005. LNCS, vol. 3844, pp. 159–168. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  13. 13.
    Terence Parr. ANTLR. http://www.antlr.org/
  14. 14.
    Charles, P., Fuhrer, R.M., Sutton Jr., S.M., Duesterwald, E., Vinju, J.: Accelerating the creation of customized, language-specific ides in eclipse. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2009, pp. 191–206. ACM, New York (2009)Google Scholar
  15. 15.
    LALR Parser Generator. http://sourceforge.net/projects/lpg/
  16. 16.
    Czarnecki, K., Helsen, S.: Classification of model transformation approaches. In: Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture, pp. 1–17 (2003)Google Scholar
  17. 17.
  18. 18.
    Scheidgen, M.: Textual modelling embedded into graphical modelling. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 153–168. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  19. 19.
    Kats, L.C.L., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and IDEs. In: ACM Sigplan Notices, vol. 45, pp. 444–463. ACM (2010)Google Scholar
  20. 20.
    Krahn, H., Rumpe, B., Völkel, S.: Monticore: a framework for compositional development of domain specific languages. Int. J. Softw. Tools Technol. Transf. 12(5), 353–372 (2010)CrossRefGoogle Scholar
  21. 21.
    van Rest, O., Wachsmuth, G., Steel, J.R.H., Süß, J.G., Visser, E.: Robust real-time synchronization between textual and graphical editors. In: Duddy, K., Kappel, G. (eds.) ICMB 2013. LNCS, vol. 7909, pp. 92–107. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  22. 22.
    Visser, E.: Program transformation with Stratego/XT. In: Lengauer, C., Batory, D., Blum, A., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 216–238. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  23. 23.
    Kats, L.C.L., Visser, E., Wachsmuth, G.: Pure and declarative syntax definition: paradise lost and regained. In: Proceedings of the ACM International Conference OOPSLA 2010, pp. 918–932. ACM, New York (2010)Google Scholar
  24. 24.
    Favre, J.-M., Lämmel, R., Schmorleiz, T., Varanovich, A.: 101companies: a community project on software technologies and software languages. In: Furia, C.A., Nanz, S. (eds.) TOOLS 2012. LNCS, vol. 7304, pp. 58–74. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  25. 25.
    Van Gorp, P., Grefen, P.: Supporting the internet-based evaluation of research software with cloud infrastructure. Softw. Syst. Model. 11(1), 11–28 (2012)CrossRefGoogle Scholar
  26. 26.
    Bettini, L.: Implementing java-like languages in Xtext with xsemantics. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing, pp. 1559–1564. ACM (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Adolfo Sánchez-Barbudo Herrera
    • 1
  • Edward D. Willink
    • 2
  • Richard F. Paige
    • 1
  1. 1.Department of Computer ScienceUniversity of YorkYorkUK
  2. 2.Willink Transformations Ltd.ReadingUK

Personalised recommendations