Software & Systems Modeling

, Volume 14, Issue 2, pp 905–920 | Cite as

Mashup of metalanguages and its implementation in the Kermeta language workbench

  • Jean-Marc Jézéquel
  • Benoit Combemale
  • Olivier Barais
  • Martin Monperrus
  • François Fouquet
Regular Paper

Abstract

With the growing use of domain-specific languages (DSL) in industry, DSL design and implementation goes far beyond an activity for a few experts only and becomes a challenging task for thousands of software engineers. DSL implementation indeed requires engineers to care for various concerns, from abstract syntax, static semantics, behavioral semantics, to extra-functional issues such as runtime performance. This paper presents an approach that uses one metalanguage per language implementation concern. We show that the usage and combination of those metalanguages is simple and intuitive enough to deserve the term mashup. We evaluate the approach by completely implementing the non-trivial fUML modeling language, a semantically sound and executable subset of the Unified Modeling Language (UML).

Keywords

DSL design and Implementation  Model-driven engineering Software language engineering 

References

  1. 1.
    Schmidt, D.C.: Model-driven engineering. IEEE Comput. 39(2), 25–31 (2006)CrossRefGoogle Scholar
  2. 2.
    Hutchinson, J., Whittle, J., Rouncefield, M., Kristoffersen, S.: Empirical assessment of MDE in industry. In: International Conference on Software Engineering (ICSE), pp. 471–480. ACM (2011)Google Scholar
  3. 3.
    Ghosh, D.: DSLs in Action. Manning Publications Co., Greenwich (2010)Google Scholar
  4. 4.
    Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional, Reading (2010)Google Scholar
  5. 5.
    Mernik, M.: Formal and Practical Aspects of Domain-Specific Languages: Recent Developments. IGI Global (2013)Google Scholar
  6. 6.
    Markus, V., Sebastian, B., Christian, D., Birgit, E., Mats, H., Kats, L.C.L., Visser, E., Wachsmuth, G.: DSL Engineering—Designing, Implementing and Using Domain-Specific Languages. dslbook.org, (2013)Google Scholar
  7. 7.
    Borras, P., Clément, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B., Pascual, V.: Centaur: the system. ACM SIGPLAN Notices 24(2), 14–24 (1989)CrossRefGoogle Scholar
  8. 8.
    Tolvanen, J.-P., Rossi, M.: MetaEdit+: defining and using domain-specific modeling languages and code generators. In: Companion of the 18th Annual ACM SIGPLAN Conference OOPSLA, pp. 92–93. ACM (2003)Google Scholar
  9. 9.
    Cook, S., Jones, G., Kent, S., Wills, A.C.: Domain-Specific Development with Visual Studio Dsl Tools. Addison-Wesley Professional, Reading (2007)Google Scholar
  10. 10.
    Clark, T., Sammut, P., Willans, J.: Applied Metamodelling—A Foundation for Language Driven Development, 2nd edn. (2008)Google Scholar
  11. 11.
    Krahn, H., Rumpe, B., Volkel, S.: Monticore: modular development of textual domain specific languages. In: Objects, Components, Models and Patterns, vol. 11 of LNBI, pp. 297–315. Springer, Berlin (2008)Google Scholar
  12. 12.
    Kats, L.C.L., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and ides. ACM SIGPLAN Notices 45, 444–463 (2010)CrossRefGoogle Scholar
  13. 13.
    Voelter, M., Solomatov, K.: Language modularization and composition with projectional language workbenches illustrated with MPS. In: van den Brand, M., Malloy, B., Staab, S. (eds.) Third International Conference on Software Language Engineering (SLE 2010). Lecture Notes in Computer Science. Springer, Berlin (2010)Google Scholar
  14. 14.
    Object Management Group, Inc.: Meta Object Facility (MOF) 2.0 Core Specification (2006)Google Scholar
  15. 15.
    Object Management Group, Inc.: UML Object Constraint Language (OCL) 2.0 Specification (2003)Google Scholar
  16. 16.
    Jézéquel, J.-M., Barais, O., Fleurey, F.: Model driven language engineering with kermeta. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE’09), vol. 6491 of Lecture Notes in Computer Science, pp. 201–221. Springer, Berlin (2011)Google Scholar
  17. 17.
    Odersky, M., Altherr, P., Cremet, V., Dragos, I., Dubochet, G., Emir, B.., McDirmid, S., Micheloud, S., Mihaylov, N., Michel, S., Spoon, L., Stenman, E., Zenger, M.: An Overview of the Scala Programming Language, 2nd edn. Technical report (2006)Google Scholar
  18. 18.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: European Conference on Object-Oriented Programming (ECOOP 1997), pp. 220–242 (1997)Google Scholar
  19. 19.
    Clifton, C., Leavens, G.T.: Multijava: Modular open classes and symmetric multiple dispatch for Java. In: International Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pp. 130–145 (2000)Google Scholar
  20. 20.
    Object Management Group, Inc.: Semantics of a Foundational Subset for Executable UML Models (fUML), v1.0 (2011)Google Scholar
  21. 21.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Reading (1995)Google Scholar
  22. 22.
    Muller, P.-A., Fleurey, F., Jézéquel, J.-M.: Weaving executability into object-oriented meta-languages. In: International Conference on Model Driven Engineering Languages and Systems (MoDELS), vol. 3713 of Lecture Notes in Computer Science, pp. 264–278. Springer, Berlin (2005)Google Scholar
  23. 23.
    Combemale, B., Crégut, X., Garoche, P.-L., Thirioux, X.: Essay on semantics definition in MDE. An instrumented approach for model verification. J. Softw. 4(9), 943–958 (2009)Google Scholar
  24. 24.
    Meyer, B.: Eiffel: The Language. Prentice-Hall, Inc., Englewood Cliffs (1992)MATHGoogle Scholar
  25. 25.
    Harel, D., Rumpe, B.: Meaningful modeling: what’s the semantics of “semantics”? Computer 37(10), 64–72 (2004)CrossRefGoogle Scholar
  26. 26.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Reading (2008)Google Scholar
  27. 27.
    Shonle, M., Lieberherr, K., Shah, A.: XAspects: an extensible system for domain-specific aspect languages. In: Companion of the 18th Annual ACM SIGPLAN Conference OOPSLA, pp. 28–37. ACM (2003)Google Scholar
  28. 28.
    Hundt, R.: Loop Recognition in C++/Java/Go/ScalaGoogle Scholar
  29. 29.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16, 1811–1841 (1994)CrossRefGoogle Scholar
  30. 30.
    Odersky, M.: Contracts for scala. In: First international conference on Runtime verification (RV’10), pp. 51–57. Springer, Berlin (2010)Google Scholar
  31. 31.
    Hilbert, D.: Ueber die stetige Abbildung einer Line auf ein Flächenstück. Mathematische Annalen, 38 (1891)Google Scholar
  32. 32.
    Harrison, W.H., Ossher, H., Tarr, P.L.: General composition of software artifacts. In: Software Composition (SC 2006), pp. 194–210 (2006)Google Scholar
  33. 33.
    Apel, S., Kastner, C., Lengauer, C.: Featurehouse: Language-independent, automated software composition. In: International Conference on Software Engineering (ICSE), pp. 221–231 (2009).Google Scholar
  34. 34.
    Dinkelaker, T., Eichberg, M., Mezini, M.: An architecture for composing embedded domain-specific languages. In: International Conference on Aspect-Oriented Software Development (AOSD), pp. 49–60. ACM (2010)Google Scholar
  35. 35.
    Van Wyk, E., de Moor, O., Backhouse, K., Kwiatkowski, P.: Forwarding in attribute grammars for modular language design. In: 11th International Conference on Compiler Construction (CC 2002), pp. 128–142. Springer, (2002)Google Scholar
  36. 36.
    Henriques, P.R., Pereira, M.J.V., Mernik, M., Lenic, M., Gray, J., Hui, W.: Automatic generation of language-based tools using the LISA system. Softw. IEE Proc. 152(2), 54–69 (2005)CrossRefGoogle Scholar
  37. 37.
    Van Wyk, E., Bodin, D., Gao, J., Krishnan, L.: Silver: an extensible attribute grammar system. Sci. Comput. Program. 75(1–2), 39–54 (2010)MATHGoogle Scholar
  38. 38.
    Ekman, T., Hedin, G.: The jastadd system—modular extensible compiler construction. Sci. Comput. Program. 69, 14–26 (2007)CrossRefMATHMathSciNetGoogle Scholar
  39. 39.
    Rebernak, D., Mernik, M., Wu, H., Gray, J.: Domain-specific aspect languages for modularising crosscutting concerns in grammars. IET Softw. 3(3), 184–200 (2009)CrossRefGoogle Scholar
  40. 40.
    Fowler, M.: Language workbenches: The killer-app for domain specific languages. Accessed online from: http://www.martinfowler.com/articles/languageWorkbench.html (2005)
  41. 41.
    Voelter, M.: From programming to modeling-and back again. Softw. IEEE 28(6), 20–25 (2011)CrossRefGoogle Scholar
  42. 42.
    Klint, P.: A meta-environment for generating programming environments. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2(2), 176–201 (1993)CrossRefGoogle Scholar
  43. 43.
    Cordy, J.R., Halpern, C.D., Promislow, E.: Txl: a rapid prototyping system for programming language dialects. In: International Conference on Computer Languages (ICCL), pp. 280–285 (1988)Google Scholar
  44. 44.
    Sztipanovits, J., Karsai, G.: Model-integrated computing. IEEE. Comput. 30(4), 110–111 (1997)CrossRefGoogle Scholar
  45. 45.
    Renggli, L., Gîrba, T., Nierstrasz, O.: Embedding languages without breaking tools. In: European Conference on Object-Oriented Programming (ECOOP 2010), vol. 6183 of Lecture Notes in Computer Science, pp. 380–404. Springer, Berlin (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Jean-Marc Jézéquel
    • 1
  • Benoit Combemale
    • 1
  • Olivier Barais
    • 1
  • Martin Monperrus
    • 2
  • François Fouquet
    • 1
  1. 1.IRISA, INRIAUniversity of Rennes 1RennesFrance
  2. 2.LIFL, INRIAUniversity of Lille 1LilleFrance

Personalised recommendations