The State of the Art in Language Workbenches

Conclusions from the Language Workbench Challenge
  • Sebastian Erdweg
  • Tijs van der Storm
  • Markus Völter
  • Meinte Boersma
  • Remi Bosman
  • William R. Cook
  • Albert Gerritsen
  • Angelo Hulshout
  • Steven Kelly
  • Alex Loh
  • Gabriël D. P. Konat
  • Pedro J. Molina
  • Martin Palatnik
  • Risto Pohjonen
  • Eugen Schindler
  • Klemens Schindler
  • Riccardo Solmi
  • Vlad A. Vergu
  • Eelco Visser
  • Kevin van der Vlist
  • Guido H. Wachsmuth
  • Jimi van der Woning
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8225)

Abstract

Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alderson, A.: Experience of bi-lateral technology transfer projects. In: Diffusion, Transfer and Implementation of Information Technology (1997)Google Scholar
  2. 2.
    Anlauff, M., Kutter, P.W., Pierantonio, A.: Tool support for language design and prototyping with montages. In: Jähnichen, S. (ed.) CC 1999. LNCS, vol. 1575, pp. 296–300. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  3. 3.
    Arnold, B.R.T., Van Deursen, A., Res, M.: An algebraic specification of a language for describing financial products. In: Formal Methods Application in Software Engineering, pp. 6–13. IEEE (1995)Google Scholar
  4. 4.
    Batory, D.: Feature models, grammars, and propositional formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Borras, P., Clement, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B., Pascual, V.: Centaur: the system. SIGPLAN Not. 24(2), 14–24 (1988)CrossRefGoogle Scholar
  6. 6.
    Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/XT 0.17. A language and toolset for program transformation. Sci. Comput. Program. 72(1-2), 52–70 (2008)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Chen, M., Nunamaker, J.: Metaplex: An integrated environment for organization and information system development. In: ICIS, pp. 141–151. ACM (1989)Google Scholar
  8. 8.
    Dmitriev, S.: Language oriented programming: The next programming paradigm. JetBrains on Board 1(2) (2004)Google Scholar
  9. 9.
    Donzeau-Gouge, V., Huet, G., Kahn, G., Lang, B.: Programming environments based on structured editors: The MENTOR experience. Technical Report 26, INRIA (1980)Google Scholar
  10. 10.
    Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., Hanus, M.: Xbase: Implementing domain-specific languages for Java. In: GPCE, pp. 112–121 (2012)Google Scholar
  11. 11.
    Erdweg, S.: Extensible Languages for Flexible and Principled Domain Abstraction. PhD thesis, Philipps-Universität Marburg (2013)Google Scholar
  12. 12.
    Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: LDTA, pp. 7:1–7:8. ACM (2012)Google Scholar
  13. 13.
    Erdweg, S., Kats, L.C.L., Rendel, T., Kästner, C., Ostermann, K., Visser, E.: Growing a language environment with editor libraries. In: GPCE, pp. 167–176. ACM (2011)Google Scholar
  14. 14.
    Erdweg, S., Rendel, T., Kästner, C., Ostermann, K.: SugarJ: Library-based syntactic language extensibility. In: OOPSLA, pp. 391–406. ACM (2011)Google Scholar
  15. 15.
    Erdweg, S., Rendel, T., Kästner, C., Ostermann, K.: Layout-sensitive generalized parsing. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 244–263. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  16. 16.
    Erdweg, S., Rieger, F., Rendel, T., Ostermann, K.: Layout-sensitive language extensibility with SugarHaskell. In: Haskell Symposium, pp. 149–160. ACM (2012)Google Scholar
  17. 17.
    Eysholdt, M., Behrens, H.: Xtext: Implement your language faster than the quick and dirty way. In: SPLASH Companion, pp. 307–309. ACM (2010)Google Scholar
  18. 18.
    Ford, B.: Parsing expression grammars: A recognition-based syntactic foundation. In: POPL, pp. 111–122. ACM (2004)Google Scholar
  19. 19.
    Fowler, M.: Language workbenches: The killer-app for domain specific languages? (2005), http://martinfowler.com/articles/languageWorkbench.html
  20. 20.
    Heering, J., Klint, P.: Semantics of programming languages: a tool-oriented approach. SIGPLAN Not. 35(3), 39–48 (2000)CrossRefGoogle Scholar
  21. 21.
    Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and refinement of textual syntax for models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  22. 22.
    Hemel, Z., Visser, E.: Declaratively programming the mobile web with Mobl. In: OOPSLA, pp. 695–712. ACM (2011)Google Scholar
  23. 23.
    Hills, M., Klint, P., Vinju, J.J.: Meta-language support for type-safe access to external resources. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 372–391. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  24. 24.
    Honeywell Technology Center. Dome guide (1999)Google Scholar
  25. 25.
    Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical report, CMU Software Engineering Institute (1990)Google Scholar
  26. 26.
    Kärnä, J., Tolvanen, J.-P., Kelly, S.: Evaluating the use of domain-specific modeling in practice. In: DSM (2009)Google Scholar
  27. 27.
    Kats, L.C.L., Visser, E.: The Spoofax language workbench: Rules for declarative specification of languages and IDEs. In: OOPSLA, pp. 444–463. ACM (2010)Google Scholar
  28. 28.
    Kelly, S., Lyytinen, K., Rossi, M.: MetaEdit+: A fully configurable multi-user and multi-tool CASE and CAME environment. In: Constantopoulos, P., Vassiliou, Y., Mylopoulos, J. (eds.) CAiSE 1996. LNCS, vol. 1080, pp. 1–21. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  29. 29.
    Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press (2008)Google Scholar
  30. 30.
    Klint, P.: A meta-environment for generating programming environments. TOSEM 2(2), 176–201 (1993)CrossRefGoogle Scholar
  31. 31.
    Klint, P., van der Storm, T., Vinju, J.: On the impact of DSL tools on the maintainability of language implementations. In: LDTA. ACM (2010)Google Scholar
  32. 32.
    Klint, P., van der Storm, T., Vinju, J.: EASY meta-programming with rascal. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE III. LNCS, vol. 6491, pp. 222–289. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  33. 33.
    Klint, P., van der Storm, T., Vinju, J.J.: RASCAL: A domain specific language for source code analysis and manipulation. In: SCAM, pp. 168–177. IEEE (2009)Google Scholar
  34. 34.
    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
  35. 35.
    Kosar, T., López, P.E.M., Barrientos, P.A., Mernik, M.: A preliminary study on various implementation approaches of domain-specific language. Inf. Softw. Technol. 50(5), 390–405 (2008)CrossRefGoogle Scholar
  36. 36.
    Kuiper, M.F., Saraiva, J.: Lrc – a generator for incremental language-oriented tools. In: Koskimies, K. (ed.) CC 1998. LNCS, vol. 1383, pp. 298–301. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  37. 37.
    de Lara, J., Vangheluwe, H.: AToM3: A tool for multi-formalism and meta-modelling. In: Kutsche, R.-D., Weber, H. (eds.) FASE 2002. LNCS, vol. 2306, pp. 174–188. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  38. 38.
    Ledeczi, A., Maroti, M., Bakay, A., Karsai, G., Garrett, J., Thomason, C., Nordstrom, G., Sprinkle, J., Volgyesi, P.: The generic modeling environment. In: Intelligent Signal Processing (2001)Google Scholar
  39. 39.
    Lorenz, D.H., Rosenan, B.: Cedalion: A language for language oriented programming. In: OOPSLA, pp. 733–752. ACM (2011)Google Scholar
  40. 40.
    Lorenzen, F., Erdweg, S.: Modular and automated type-soundness verification for language extensions. In: ICFP (to appear, 2013)Google Scholar
  41. 41.
    Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)CrossRefGoogle Scholar
  42. 42.
    Mernik, M., Lenič, M., Avdicauševic, E., Zumer, V.: LISA: An interactive environment for programming language development. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 1–4. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  43. 43.
    Meta Systems Ltd. Quickspec reference guide (1989)Google Scholar
  44. 44.
    MetaCase. MetaEdit+ revolutionized the way Nokia develops mobile phone software (2007), http://www.metacase.com/cases/nokia.html (June 5th, 2013)
  45. 45.
    Parr, T., Quong, R.W.: ANTLR: A predicated-LL(k) parser generator. Software Practice and Experience 25(7), 789–810 (1995)CrossRefGoogle Scholar
  46. 46.
    Reps, T., Teitelbaum, T.: The synthesizer generator. SIGPLAN Not. 19(5), 42–48 (1984)CrossRefGoogle Scholar
  47. 47.
    Simonyi, C., Christerson, M., Clifford, S.: Intentional software. In: OOPSLA, pp. 451–464. ACM (2006)Google Scholar
  48. 48.
    Smolander, K., Lyytinen, K., Tahvanainen, V.-P., Marttiin, P.: MetaEdit—a flexible graphical environment for methodology modelling. In: Andersen, R., Solvberg, A., Bubenko Jr., J.A. (eds.) CAiSE 1991. LNCS, vol. 498, pp. 168–193. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  49. 49.
    Söderberg, E., Hedin, G.: Building semantic editors using JastAdd: tool demonstration. In: LDTA, p. 11 (2011)Google Scholar
  50. 50.
    Solmi, R.: Whole platform. PhD thesis, University of Bologna (2005)Google Scholar
  51. 51.
    Sorenson, P.G., Tremblay, J.-P., McAllister, A.J.: The Metaview system for many specification environments. IEEE Software 5(2), 30–38 (1988)CrossRefGoogle Scholar
  52. 52.
    Teichroew, D., Macasovic, P., Hershey III, E., Yamato, Y.: Application of the entity-relationship approach to information processing systems modeling (1980)Google Scholar
  53. 53.
    van den Bos, J., van der Storm, T.: Bringing domain-specific languages to digital forensics. In: ICSE SEIP, pp. 671–680. ACM (2011)Google Scholar
  54. 54.
    van der Storm, T.: The Rascal Language Workbench. CWI Technical Report SEN-1111, CWI (2011)Google Scholar
  55. 55.
    van Rest, O., Wachsmuth, G., Steel, J., Süss, J.G., Visser, E.: Robust real-time synchronization between textual and graphical editors. In: ICMT (2013)Google Scholar
  56. 56.
    Visser, E.: WebDSL: A case study in domain-specific language engineering. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE II. LNCS, vol. 5235, pp. 291–373. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  57. 57.
    Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: ICSE, pp. 1449–1450. IEEE (2012)Google Scholar
  58. 58.
    Voelter, M., Ratiu, D., Kolb, B., Schaetz, B.: mbeddr: Instantiating a language workbench in the embedded software domain. Journal of Automated Software Engineering (2013)Google Scholar
  59. 59.
    Voelter, M., Ratiu, D., Schaetz, B., Kolb, B.: mbeddr: an extensible C-based programming language and IDE for embedded systems. In: SPLASH Wavefront, pp. 121–140. ACM (2012)Google Scholar
  60. 60.
    Vollebregt, T., Kats, L.C.L., Visser, E.: Declarative specification of template-based textual editors. In: LDTA (2012)Google Scholar
  61. 61.
    Ward, M.P.: Language-oriented programming. Software – Concepts and Tools 15, 147–161 (1995)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Sebastian Erdweg
    • 1
  • Tijs van der Storm
    • 2
    • 3
  • Markus Völter
    • 4
  • Meinte Boersma
    • 5
  • Remi Bosman
    • 6
  • William R. Cook
    • 7
  • Albert Gerritsen
    • 6
  • Angelo Hulshout
    • 8
  • Steven Kelly
    • 9
  • Alex Loh
    • 7
  • Gabriël D. P. Konat
    • 10
  • Pedro J. Molina
    • 11
  • Martin Palatnik
    • 6
  • Risto Pohjonen
    • 9
  • Eugen Schindler
    • 6
  • Klemens Schindler
    • 6
  • Riccardo Solmi
    • 12
  • Vlad A. Vergu
    • 10
  • Eelco Visser
    • 10
  • Kevin van der Vlist
    • 13
  • Guido H. Wachsmuth
    • 10
  • Jimi van der Woning
    • 13
  1. 1.TU DarmstadtGermany
  2. 2.CWIAmsterdamThe Netherlands
  3. 3.INRIA Lille Nord EuropeLilleFrance
  4. 4.voelter.deStuttgartGermany
  5. 5.DSL ConsultancyLeidenThe Netherlands
  6. 6.SiouxEindhovenThe Netherlands
  7. 7.University of TexasAustinUS
  8. 8.Delphino ConsultancyBestThe Netherlands
  9. 9.MetaCaseJyväskyläFinland
  10. 10.TU DelftThe Netherlands
  11. 11.IcineticSevillaSpain
  12. 12.IndependentBolognaItaly
  13. 13.Universiteit van AmsterdamNetherlands

Personalised recommendations