On Language Interfaces

  • Thomas Degueule
  • Benoit Combemale
  • Jean-Marc Jézéquel


Complex systems are developed by teams of experts from multiple domains, who can be liberated from becoming programming experts through domain-specific languages (DSLs). The implementation of the different concerns of DSLs (including syntaxes and semantics) is now well established and supported by various language workbenches. However, the various services associated to a DSL (e.g., editors, model checkers, debuggers, or composition operators) are still directly based on its implementation. Moreover, while most of the services crosscut the different DSL concerns, they only require specific information on each. Consequently, this prevents the reuse of services among related DSLs and increases the complexity of service implementation. Leveraging the time-honored concept of interface in software engineering, we discuss the benefits of language interfaces in the context of software language engineering. In particular, we elaborate on particular usages that address current challenges in language development.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Beugnard, A., Jézéquel, J.M., Plouzeau, N., Watkins, D.: Making components contract aware. Computer 32(7), 38–45 (1999)CrossRefGoogle Scholar
  2. 2.
    Bousse, E., Corley, J., Combemale, B., Gray, J., Baudry, B.: Supporting efficient and advanced omniscient debugging for xdsmls. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering, ACM, pp. 137–148 (2015)Google Scholar
  3. 3.
    Brown, F., Nötzli, A., Engler, D.: How to build static checking systems using orders of magnitude less code. In: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, ACM, pp. 143–157 (2016)Google Scholar
  4. 4.
    Canning, P.S., Cook, W.R., Hill, W.L., Olthoff, W.G.: Interfaces for strongly-typed object-oriented programming. In: ACM SigPlan Notices, ACM, vol. 24, pp. 457–467 (1989)Google Scholar
  5. 5.
    Cardelli. L., Wegner, P.: On understanding types, data abstraction, and polymorphism. ACM Comput. Surv. 17(4), 471–523 (1985)CrossRefGoogle Scholar
  6. 6.
    Cheng, B.H., Combemale, B., France, R.B., Jézéquel, J.M., Rumpe, B.: On the globalization of domain-specific languages. In: Globalizing Domain-Specific Languages, pp. 1–6. Springer, Cham (2015)Google Scholar
  7. 7.
    Clark, T., den Brand, M., Combemale, B., Rumpe, B.: Conceptual model of the globalization for domain-specific languages. In: Globalizing Domain-Specific Languages, pp. 7–20. Springer, Cham (2015)CrossRefGoogle Scholar
  8. 8.
    Combemale, B., Deantoni, J., Baudry, B., France, R.B., Jézéquel, J.M., Gray, J.: Globalizing modeling languages. Computer 47(6), 68–71 (2014)CrossRefGoogle Scholar
  9. 9.
    Crane, M.L., Dingel, J.: UML vs. classical vs. Rhapsody statecharts: not all models are created equal. In: Model Driven Engineering Languages and Systems, pp. 97–112. Springer, Berlin (2005)CrossRefGoogle Scholar
  10. 10.
    Cuadrado, J.S., Guerra, E., De Lara, J.: Generic model transformations: write once, reuse everywhere. In: Theory and Practice of Model Transformations, pp. 62–77. Springer, Berlin (2011)Google Scholar
  11. 11.
    Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.M.: Melange: a meta-language for modular and reusable development of DSLs. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering, ACM, pp. 25–36 (2015)Google Scholar
  12. 12.
    Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, ACM, pp. 307–309 (2010)Google Scholar
  13. 13.
    Favre, J.M.: Languages evolve too! changing the software time scale. In: Eighth International Workshop on Principles of Software Evolution (IWPSE’05), IEEE, pp. 33–42 (2005)Google Scholar
  14. 14.
    Fowler, M.: Language workbenches: the killer-app for domain specific languages (2005). Google Scholar
  15. 15.
    France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: 2007 Future of Software Engineering, pp. 37–54. IEEE Computer Society, Los Alamitos (2007)Google Scholar
  16. 16.
    Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)zbMATHGoogle Scholar
  17. 17.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF—reference manual. ACM SIGPLAN Not. 24(11), 43–75 (1989)CrossRefGoogle Scholar
  18. 18.
    Heineman, G.T., Councill, W.T.: Component-Based Software Engineering. Putting the Pieces Together, p. 5. Addison-Westley, London (2001)Google Scholar
  19. 19.
    Ichbiah, J.D., Firth, R., Hilfinger, P.N., Roubine, O., Woodger, M., Barnes, J.G., Abrial, J.R., Gailly, J.L., Heliard, J.C., Ledgard, H.F., et al.: Reference Manual for the ADA Programming Language. Castle House, Washington (1983)Google Scholar
  20. 20.
    Jézéquel, J.M.: Model driven design and aspect weaving. J. Softw. Syst. Model. 7(2), 209–218 (2008). CrossRefGoogle Scholar
  21. 21.
    Kats, L.C., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and IDEs, vol. 45, ACM (2010)CrossRefGoogle Scholar
  22. 22.
    Kell, S.: In search of types. In: Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, ACM, pp. 227–241 (2014)Google Scholar
  23. 23.
    Kleppe, A.: Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Pearson Education, Estados Unido (2008)Google Scholar
  24. 24.
    Krahn, H., Rumpe, B., Völkel, S.: Monticore: a framework for compositional development of domain specific languages. Int. J. Softw. Tools Technol. Trans. 12(5), 353–372 (2010)CrossRefGoogle Scholar
  25. 25.
    Kühn, T., Cazzola, W., Olivares, D.M.: Choosy and picky: configuration of language product lines. In: Proceedings of the 19th International Conference on Software Product Line, ACM, pp. 71–80 (2015)Google Scholar
  26. 26.
    Meyer, B.: Applying ‘design by contract’. Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  27. 27.
    MOF, 2.0 core final adopted specification (2004).
  28. 28.
    Mosses, P.D.: The varieties of programming language semantics and their uses. In: Perspectives of System Informatics, pp. 165–190. Springer, Berlin (2001)Google Scholar
  29. 29.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  30. 30.
    Parnas, D.L., Shore, J.E., Weiss, D.: Abstract types defined as classes of variables. ACM SIGPLAN Not. 11(SI), 149–154 (1976)CrossRefGoogle Scholar
  31. 31.
    Siegel, J.: CORBA 3 Fundamentals and Programming, vol. 2. Wiley, New York (2000)Google Scholar
  32. 32.
    Steel, J., Jézéquel, J.M.: On model typing. SoSyM 6(4), 401–413 (2007)Google Scholar
  33. 33.
    Vacchi, E., Cazzola, W., Pillay, S., Combemale, B.: Variability support in domain-specific language development. In: Software Language Engineering, pp. 76–95. Springer, Berlin (2013)CrossRefGoogle Scholar
  34. 34.
    Visser, E., Wachsmuth, G., Tolmach, A., Neron, P., Vergu, V., Passalaqua, A., Konat, G.: A language designer’s workbench: a one-stop-shop for implementation and verification of language designs. In: Proceedings of SPLASH, pp. 95–111 (2014)Google Scholar
  35. 35.
    Voelter, M., Kolb, B., Warmer, J.: Projecting a modular future. IEEE Softw. 32(5) (2014)CrossRefGoogle Scholar
  36. 36.
    Ward, M.P.: Language-oriented programming. Software-Concepts Tools 15(4), 147–161 (1994)Google Scholar
  37. 37.
    Wirth, N.: Modula: a language for modular multiprogramming. Softw. Pract. Exp. 7(1), 1–35 (1977)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Thomas Degueule
    • 1
  • Benoit Combemale
    • 2
  • Jean-Marc Jézéquel
    • 2
  1. 1.INRIA/IRISARennesFrance
  2. 2.IRISAUniversity of Rennes 1RennesFrance

Personalised recommendations