Skip to main content

The State of the Art in Language Workbenches

Conclusions from the Language Workbench Challenge

  • Conference paper
Software Language Engineering (SLE 2013)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alderson, A.: Experience of bi-lateral technology transfer projects. In: Diffusion, Transfer and Implementation of Information Technology (1997)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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)

    Article  MathSciNet  Google Scholar 

  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. Dmitriev, S.: Language oriented programming: The next programming paradigm. JetBrains on Board 1(2) (2004)

    Google Scholar 

  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. 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. Erdweg, S.: Extensible Languages for Flexible and Principled Domain Abstraction. PhD thesis, Philipps-Universität Marburg (2013)

    Google Scholar 

  12. Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: LDTA, pp. 7:1–7:8. ACM (2012)

    Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  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. 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. Ford, B.: Parsing expression grammars: A recognition-based syntactic foundation. In: POPL, pp. 111–122. ACM (2004)

    Google Scholar 

  19. Fowler, M.: Language workbenches: The killer-app for domain specific languages? (2005), http://martinfowler.com/articles/languageWorkbench.html

  20. Heering, J., Klint, P.: Semantics of programming languages: a tool-oriented approach. SIGPLAN Not. 35(3), 39–48 (2000)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  22. Hemel, Z., Visser, E.: Declaratively programming the mobile web with Mobl. In: OOPSLA, pp. 695–712. ACM (2011)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  24. Honeywell Technology Center. Dome guide (1999)

    Google Scholar 

  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. Kärnä, J., Tolvanen, J.-P., Kelly, S.: Evaluating the use of domain-specific modeling in practice. In: DSM (2009)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  29. Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press (2008)

    Google Scholar 

  30. Klint, P.: A meta-environment for generating programming environments. TOSEM 2(2), 176–201 (1993)

    Article  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Lorenz, D.H., Rosenan, B.: Cedalion: A language for language oriented programming. In: OOPSLA, pp. 733–752. ACM (2011)

    Google Scholar 

  40. Lorenzen, F., Erdweg, S.: Modular and automated type-soundness verification for language extensions. In: ICFP (to appear, 2013)

    Google Scholar 

  41. Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  43. Meta Systems Ltd. Quickspec reference guide (1989)

    Google Scholar 

  44. MetaCase. MetaEdit+ revolutionized the way Nokia develops mobile phone software (2007), http://www.metacase.com/cases/nokia.html (June 5th, 2013)

  45. Parr, T., Quong, R.W.: ANTLR: A predicated-LL(k) parser generator. Software Practice and Experience 25(7), 789–810 (1995)

    Article  Google Scholar 

  46. Reps, T., Teitelbaum, T.: The synthesizer generator. SIGPLAN Not. 19(5), 42–48 (1984)

    Article  Google Scholar 

  47. Simonyi, C., Christerson, M., Clifford, S.: Intentional software. In: OOPSLA, pp. 451–464. ACM (2006)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  49. Söderberg, E., Hedin, G.: Building semantic editors using JastAdd: tool demonstration. In: LDTA, p. 11 (2011)

    Google Scholar 

  50. Solmi, R.: Whole platform. PhD thesis, University of Bologna (2005)

    Google Scholar 

  51. Sorenson, P.G., Tremblay, J.-P., McAllister, A.J.: The Metaview system for many specification environments. IEEE Software 5(2), 30–38 (1988)

    Article  Google Scholar 

  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. 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. van der Storm, T.: The Rascal Language Workbench. CWI Technical Report SEN-1111, CWI (2011)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  57. Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: ICSE, pp. 1449–1450. IEEE (2012)

    Google Scholar 

  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. 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. Vollebregt, T., Kats, L.C.L., Visser, E.: Declarative specification of template-based textual editors. In: LDTA (2012)

    Google Scholar 

  61. Ward, M.P.: Language-oriented programming. Software – Concepts and Tools 15, 147–161 (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer International Publishing Switzerland

About this paper

Cite this paper

Erdweg, S. et al. (2013). The State of the Art in Language Workbenches. In: Erwig, M., Paige, R.F., Van Wyk, E. (eds) Software Language Engineering. SLE 2013. Lecture Notes in Computer Science, vol 8225. Springer, Cham. https://doi.org/10.1007/978-3-319-02654-1_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-02654-1_11

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-02653-4

  • Online ISBN: 978-3-319-02654-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics