Software Quality Journal

, Volume 26, Issue 2, pp 417–453 | Cite as

Semantic languages for developing correct language translations

  • Bruno Barroca
  • Vasco Amaral
  • Didier Buchs


The development and validation of language translators (e.g. port programs, language preprocessors, high-level software language compilers, etc.) are time-consuming and error-prone: language engineers need to master both the source and target languages’ syntactic constructs; and most importantly their semantics. In this paper, we present an innovative approach for developing and validating such language translators based on two languages: With the first, we specify a language translation using a syntax-to-syntax mapping; and with the second, we define the semantics of both of the source and target languages. After showing how such specifications can be combined to validate and generate language translators automatically, we demonstrate the feasibility of the approach on a particular modelling language translation.


Model transformation Structural operational semantics (SOS) Language translation Bisimulation 


  1. Rahim, L.Ab., & Whittle, J. (2015). A survey of approaches for verifying model transformations. Software and Systems Modeling, 14(2), 1003–1028.CrossRefGoogle Scholar
  2. Anastasakis, K., Bordbar, B., & Küster, J. (2007). Analysis of model transformations via alloy. In Baudry, B., Faivre, A., Ghosh, S., & Pretschner, A. (Eds.) Proceedings of the workshop on model-driven engineering, verification and validation (MoDeVVA 2007), Nashville, TN (USA) (pp. 47–56). Berlin/Heidelberg: Springer.Google Scholar
  3. Andova, S., van den Brand, M.G.J., & Engelen, L. (2012). Reusable and correct endogenous model transformations. In ICMT (pp. 72–88).Google Scholar
  4. Asztalos, M., Lengyel, L., & Levendovszky, T. (2010). Towards automated, formal verification of model transformations. In ICST 2010: Proceedings of the 3rd international conference on software testing, verification and validation (pp. 15–24). IEEE Computer Society.Google Scholar
  5. Barroca, B., & Amaral, V. (2011). Asserting the correctness of translations. In Proceedings of the 6th workshop on multi-paradigm modeling - MODELS 2011. EASST, 10.Google Scholar
  6. Barroca, B., Lucio, L., Amaral, V., Sousa, V., & Felix, R. (2010). Dsltrans: a turing incomplete transformation language. In Proceedings of the 3rd international conference on software languages engineering - SLE 2010. Springer.Google Scholar
  7. Biermann, E., Ermel, C., & Taentzer, G. (2008). Precise semantics of EMF model transformations by graph transformation. In MODELS’08: Proceedings of ACM/IEEE 11th international conference on MDE languages and systems. Springer.Google Scholar
  8. Blech, J.O., Glesner, S., & Leitner, J. (2005). Formal verification of java code generation from uml models. In 3rd International Fujaba Days 2005-MDD, in Practice (pp. 49–56).Google Scholar
  9. Blech, J.O., & Grégoire, B. (2011). Certifying compilers using higher-order theorem provers as certificate checkers. Formal Methods in System Design, 38(1), 33–61.Google Scholar
  10. Büttner, F., Egea, M., Cabot, J., & Gogolla, M. (2012). Verification of atl transformations using transformation models and model finders. In Proceedings of the 14th international conference on formal engineering methods: Formal methods and software engineering, ICFEM’12 (pp. 198–213). Berlin, Heidelberg: Springer.Google Scholar
  11. Chlipala, A. (2010). A verified compiler for an impure functional language. In POPL (pp. 93–106).Google Scholar
  12. de Lara, J., & Vangheluwe, H. (2002). Atom3: a tool for multi-forMalism and meta-modelling. In FASE ’02: Proceedings of the 5th international conference on fundamental approaches to software engineering (pp. 174–188). London, UK: Springer.Google Scholar
  13. Diskin, Z., & Maibaum, T.S.E. (2012). Category theory and model-driven engineering: From formal semantics to design patterns and beyond. In Golas, U., & Soboll, T. (Eds.) ACCAT, volume 93 of EPTCS (pp. 1–21).Google Scholar
  14. Falleri, J., Huchard, M., Lafourcade, M., & Nebut, C. (2008). Metamodel matching for automatic model transformation generation. In Model driven engineering languages and systems, 11th international conference, MoDELS 2008, Toulouse, France, September 28–October 3, 2008. Proceedings, volume 5301 of Lecture Notes in Computer Science (pp. 326–340). Springer.Google Scholar
  15. Hostettler, S., Marechal, A., Linard, A., Risoldi, M., & Buchs, D. (2012). High-level petri net model checking with alpina. Fundamenta Informaticae, 113(3-4), 229–264.MathSciNetzbMATHGoogle Scholar
  16. Zhang, P., Gross, J.L., & Yellen, J. (2003). Handbook of Graph Theory (Discrete Mathematics and Its Applications), 1st edn. CRC Press.Google Scholar
  17. Kleppe, A.G. (2009). Software language engineering: creating domain-specific languages using metamodels. Addison-Wesley.Google Scholar
  18. Kuster, J.M. (2004). Systematic validation of model transformations. In Essentials of the 3rd UML workshop in software model engineering (WiSME2004).Google Scholar
  19. Lano, K., Clark, T., & Rahimi, S.K. (2015). A framework for model transformation verification. Formal Aspects of Computing, 27(1), 193–235.MathSciNetCrossRefzbMATHGoogle Scholar
  20. Lucio, L., Barroca, B., & Amaral, V. (2010). A technique for automatic validation of model transformations. In ACM/IEEE MoDELS 2010. Springer, 10.Google Scholar
  21. Marques, E., Balegas, V., Barroca, B., Amaral, V., & Barisic, A. (2012). The RPG DSL: a case study of language engineering using MDD for generating RPG games for mobile phones. In Proceedings of the 12th workshop on domain-specific modeling at OOPSLA/SPLASH. ACM Digital Library, 10.Google Scholar
  22. Mustafiz, S., Denil, J., Lúcio, L., & Vangheluwe, H. (2012). The ftg+pm framework for multi-paradigm modelling: an automotive case study. In Proceedings of the 6th international workshop on multi-paradigm modeling, MPM ’12 (pp. 13–18). New York, NY, USA: ACM.Google Scholar
  23. Narayanan, A., & Karsai, G. (2008). Verifying model transformations by structural correspondence. ECEASST, 10.Google Scholar
  24. Park, D. (1981). Concurrency and automata on infinite sequences. In Proceedings of the 5th GI-conference on theoretical computer science (pp. 167–183). London, UK: Springer.Google Scholar
  25. Plotkin, G.D. (2004). A structural approach to operational semantics. The Journal of Logic and Algebraic Programming, 60-61, 17–139.Google Scholar
  26. Pnueli, A., Siegel, M., & Singerman, F. (1998). Translation validation, (pp. 151–166). Springer.Google Scholar
  27. Stenzel, K., Moebius, N., & Reif, W. (2015). Formal verification of qvt transformations for code generation. Software and Systems Modeling, 14(2), 981–1002.CrossRefGoogle Scholar
  28. van Bakel, S., & Vigliotti, M. (2009). A logical interpretation of the lambda-calculus into the pi-calculus, preserving spine reduction and types. In CONCUR 2009 - concurrency theory - lecture notes in computer science, (Vol. 5710 pp. 84–98). Berlin/Heidelberg: Springer.Google Scholar
  29. Varró, D., & Pataricza, A. (2003). Automated formal verification of model transformations. In CSDUML 2003: Critical systems development in UML; Proceedings of the UML’03 workshop, number TUM-I0323 in Technical Report (pp. 63–78). Technische Universität München.Google Scholar
  30. Yang, X., Chen, Y., Eide, E., & Regehr, J. (2011). Finding and understanding bugs in c compilers. SIGPLAN Notices, 46(6), 283–294.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Centro de Informática e Tecnologias de Informação (CITI), Departamento de Informática, Faculdade de Ciências e TecnologiaUniversidade Nova de LisboaLisbonPortugal
  2. 2.Computer Science Department, Software Modelling and Verification LaboratoryUniversity of GenevaCarougeSwitzerland

Personalised recommendations