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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alderson, A.: Experience of bi-lateral technology transfer projects. In: Diffusion, Transfer and Implementation of Information Technology (1997)
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)
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)
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)
Borras, P., Clement, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B., Pascual, V.: Centaur: the system. SIGPLAN Not. 24(2), 14–24 (1988)
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)
Chen, M., Nunamaker, J.: Metaplex: An integrated environment for organization and information system development. In: ICIS, pp. 141–151. ACM (1989)
Dmitriev, S.: Language oriented programming: The next programming paradigm. JetBrains on Board 1(2) (2004)
Donzeau-Gouge, V., Huet, G., Kahn, G., Lang, B.: Programming environments based on structured editors: The MENTOR experience. Technical Report 26, INRIA (1980)
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)
Erdweg, S.: Extensible Languages for Flexible and Principled Domain Abstraction. PhD thesis, Philipps-Universität Marburg (2013)
Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: LDTA, pp. 7:1–7:8. ACM (2012)
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)
Erdweg, S., Rendel, T., Kästner, C., Ostermann, K.: SugarJ: Library-based syntactic language extensibility. In: OOPSLA, pp. 391–406. ACM (2011)
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)
Erdweg, S., Rieger, F., Rendel, T., Ostermann, K.: Layout-sensitive language extensibility with SugarHaskell. In: Haskell Symposium, pp. 149–160. ACM (2012)
Eysholdt, M., Behrens, H.: Xtext: Implement your language faster than the quick and dirty way. In: SPLASH Companion, pp. 307–309. ACM (2010)
Ford, B.: Parsing expression grammars: A recognition-based syntactic foundation. In: POPL, pp. 111–122. ACM (2004)
Fowler, M.: Language workbenches: The killer-app for domain specific languages? (2005), http://martinfowler.com/articles/languageWorkbench.html
Heering, J., Klint, P.: Semantics of programming languages: a tool-oriented approach. SIGPLAN Not. 35(3), 39–48 (2000)
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)
Hemel, Z., Visser, E.: Declaratively programming the mobile web with Mobl. In: OOPSLA, pp. 695–712. ACM (2011)
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)
Honeywell Technology Center. Dome guide (1999)
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)
Kärnä, J., Tolvanen, J.-P., Kelly, S.: Evaluating the use of domain-specific modeling in practice. In: DSM (2009)
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)
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)
Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press (2008)
Klint, P.: A meta-environment for generating programming environments. TOSEM 2(2), 176–201 (1993)
Klint, P., van der Storm, T., Vinju, J.: On the impact of DSL tools on the maintainability of language implementations. In: LDTA. ACM (2010)
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)
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)
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)
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)
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)
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)
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)
Lorenz, D.H., Rosenan, B.: Cedalion: A language for language oriented programming. In: OOPSLA, pp. 733–752. ACM (2011)
Lorenzen, F., Erdweg, S.: Modular and automated type-soundness verification for language extensions. In: ICFP (to appear, 2013)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)
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)
Meta Systems Ltd. Quickspec reference guide (1989)
MetaCase. MetaEdit+ revolutionized the way Nokia develops mobile phone software (2007), http://www.metacase.com/cases/nokia.html (June 5th, 2013)
Parr, T., Quong, R.W.: ANTLR: A predicated-LL(k) parser generator. Software Practice and Experience 25(7), 789–810 (1995)
Reps, T., Teitelbaum, T.: The synthesizer generator. SIGPLAN Not. 19(5), 42–48 (1984)
Simonyi, C., Christerson, M., Clifford, S.: Intentional software. In: OOPSLA, pp. 451–464. ACM (2006)
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)
Söderberg, E., Hedin, G.: Building semantic editors using JastAdd: tool demonstration. In: LDTA, p. 11 (2011)
Solmi, R.: Whole platform. PhD thesis, University of Bologna (2005)
Sorenson, P.G., Tremblay, J.-P., McAllister, A.J.: The Metaview system for many specification environments. IEEE Software 5(2), 30–38 (1988)
Teichroew, D., Macasovic, P., Hershey III, E., Yamato, Y.: Application of the entity-relationship approach to information processing systems modeling (1980)
van den Bos, J., van der Storm, T.: Bringing domain-specific languages to digital forensics. In: ICSE SEIP, pp. 671–680. ACM (2011)
van der Storm, T.: The Rascal Language Workbench. CWI Technical Report SEN-1111, CWI (2011)
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)
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)
Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: ICSE, pp. 1449–1450. IEEE (2012)
Voelter, M., Ratiu, D., Kolb, B., Schaetz, B.: mbeddr: Instantiating a language workbench in the embedded software domain. Journal of Automated Software Engineering (2013)
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)
Vollebregt, T., Kats, L.C.L., Visser, E.: Declarative specification of template-based textual editors. In: LDTA (2012)
Ward, M.P.: Language-oriented programming. Software – Concepts and Tools 15, 147–161 (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)