[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Evaluating and comparing language workbenches

Published: 01 December 2015 Publication History

Abstract

Language workbenches are environments for simplifying the creation and use of computer languages. The annual Language Workbench Challenge (LWC) was launched in 2011 to allow the many academic and industrial researchers in this area an opportunity to quantitatively and qualitatively compare their approaches. We first describe all four LWCs to date, before focussing on the approaches used, and results generated, during the third LWC. We give various empirical data for ten approaches from the third LWC. We present a generic feature model within which the approaches can be understood and contrasted. Finally, based on our experiences of the existing LWCs, we propose a number of benchmark problems for future LWCs. HighlightsWe describe the challenges posed by the 4 Language Workbench Challenges run so far.We establish a feature model that captures the design space of language workbenches.We classify 10 language workbenches according to our feature model.We present empirical data on 10 implementations of a questionnaire DSL.We propose benchmark problems to be used in future Language Workbench Challenges.

References

[1]
Fowler M. Language workbenches: the killer-app for domain specific languages?. Available at: {http://martinfowler.com/articles/languageWorkbench.html}, 2005.
[2]
Dmitriev S. Language oriented programming: the next programming paradigm. JetBrains on Board 1 (2), 2004.
[3]
M.P. Ward, Language-oriented programming, Softw - Concepts Tools, 15 (1995) 147-161.
[4]
D. Teichroew, P. Macasovic, E. Hershey III, Y. Yamato, North-Holland Publishing Co., Amsterdam, The Netherlands, 1980.
[5]
Chen M, Nunamaker J. Metaplex: an integrated environment for organization and information system development. In: ICIS, 1989. p. 141-51.
[6]
P.G. Sorenson, J.-P. Tremblay, A.J. McAllister, The Metaview system for many specification environments, IEEE Softw, 5 (1988) 30-38.
[7]
M.S. Ltd. Quickspec reference guide, 1989.
[8]
Smolander K, Lyytinen K, Tahvanainen V-P, Marttiin P. MetaEdit-a flexible graphical environment for methodology modelling. In: CAiSE, 1991. p. 168-93.
[9]
P. Borras, D. Clement, T. Despeyroux, J. Incerpi, G. Kahn, B. Lang, Centaur: the system, SIGPLAN Not, 24 (1988) 14-24.
[10]
T. Reps, T. Teitelbaum, The synthesizer generator, SIGPLAN Not, 19 (1984) 42-48.
[11]
P. Klint, A meta-environment for generating programming environments, Trans Softw Eng Methodol, 2 (1993) 176-201.
[12]
Anlauff M, Kutter PW, Pierantonio A. Tool support for language design and prototyping with Montages. In: CC, 1999. p. 296-9.
[13]
Kuiper MF, Saraiva J. Lrc - a generator for incremental language-oriented tools. In: CC, 1998. p. 298-301.
[14]
Mernik M, Lenic M, Avdicausevic E, Zumer V. LISA: an interactive environment for programming language development. In: CC, 2002. p. 1-4.
[15]
J. Heering, P. Klint, Semantics of programming languages, SIGPLAN Not, 35 (2000) 39-48.
[16]
M. Mernik, J. Heering, A.M. Sloane, When and how to develop domain-specific languages, ACM Comput Surv, 37 (2005) 316-344.
[17]
Söderberg E, Hedin G. Building semantic editors using JastAdd: tool demonstration. In: Workshop on language descriptions, tools and applications (LDTA), 2011. p. 11.
[18]
Klint P, van der Storm T, Vinju JJ. RASCAL: a domain specific language for source code analysis and manipulation. In: SCAM, 2009. p. 168-77.
[19]
Klint P, van der Storm T, Vinju J. EASY meta-programming with Rascal. In: GTTSE III, vol. 6491, 2011. p. 222-89.
[20]
Kats LCL, Visser E. The Spoofax language workbench: rules for declarative specification of languages and IDEs. In: OOPSLA, 2010. p. 444-63.
[21]
Eysholdt M, Behrens H. Xtext: implement your language faster than the quick and dirty way. In: SPLASH companion, 2010. p. 307-9.
[22]
Kelly S, Lyytinen K, Rossi M. MetaEdit+: a fully configurable multi-user and multi-tool CASE and CAME environment. In: CAiSE, vol. 1080, 1996. p. 1-21.
[23]
Honeywell Technology Center. Dome guide, 1999.
[24]
Ledeczi A, Maroti M, Bakay A, Karsai G, Garrett J, Thomason C, et al. The generic modeling environment. In: Intelligent signal processing, 2001.
[25]
Voelter M, Pech V. Language modularity with the MPS language workbench. In: ICSE, 2012. p. 1449-50.
[26]
Simonyi C, Christerson M, Clifford S. Intentional software. In: OOPSLA, 2006. p. 451-64.
[27]
Donzeau-Gouge V, Huet G, Kahn G, Lang B. Programming environments based on structured editors: the MENTOR experience. Technical report 26. INRIA; 1980.
[28]
Alderson A. Experience of bi-lateral technology transfer projects. In: Diffusion, transfer and implementation of information technology, 1997.
[29]
MetaCase. MetaEdit+ revolutionized the way Nokia develops mobile phone software. Online {http://www.metacase.com/cases/nokia.html}(June 5th, 2013), 2007.
[30]
Kärnä J, Tolvanen J-P, Kelly S. Evaluating the use of domain-specific modeling in practice. In: Workshop on domain-specific modeling (DSM), 2009.
[31]
Visser E. WebDSL: a case study in domain-specific language engineering. In: GTTSE II, vol. 5235, 2007. p. 291-373.
[32]
Hemel Z, Visser E. Declaratively programming the mobile web with Mobl. In: OOPSLA, 2011. p. 695-712.
[33]
Erdweg S, van der Storm T, Völter M, Boersma M, Bosman R, Cook WR, et al. The state of the art in language workbenches. In: Software language engineering. Springer; 2013. p. 197-217.
[34]
Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS. Feature-oriented domain analysis (FODA) feasibility study. Technical report. CMU Software Engineering Institute; 1990.
[35]
Batory DS. Feature models, grammars, and propositional formulas. In: SPLC, vol. 3714, 2005. p. 7-20.
[36]
Erdweg S, Giarrusso PG, Rendel T. Language composition untangled. In: Workshop on language descriptions, tools, and applications (LDTA), 2012. p. 7:1-8.
[37]
Voelter M, Lisson S. Supporting diverse notations in mps' projectional editor. In: GEMOC workshop 2014, 2014. p. 7.
[38]
Voelter M, Siegmund J, Berger T, Kolb B. Towards user-friendly projectional editors. In: SLE, 2014. p. 41-61.
[39]
van der Storm T. The Rascal language workbench. Technical report. SEN-1111, CWI; 2011.
[40]
Hills M, Klint P, Vinju JJ. Meta-language support for type-safe access to external resources. In: SLE, vol. 7745, 2013. p. 372-91.
[41]
Vollebregt T, Kats LCL, Visser E. Declarative specification of template-based textual editors. In: Workshop on language descriptions, tools and applications (LDTA), 2012.
[42]
Konat GDP, Kats LCL, Wachsmuth G, Visser E. Declarative name binding and scope rules. In: SLE, vol. 7745, 2012. p. 311-31.
[43]
M. Bravenboer, K.T. Kalleberg, R. Vermaas, E. Visser, Stratego/XT 0.17. A language and toolset for program transformation, Sci Comput Program, 72 (2008) 52-70.
[44]
Erdweg S. Extensible languages for flexible and principled domain abstraction Ph.D. thesis. Philipps-Universität Marburg; 2013.
[45]
Erdweg S, Rendel T, Kästner C, Ostermann K. SugarJ: library-based syntactic language extensibility. In: OOPSLA, 2011. p. 391-406.
[46]
Lorenzen F, Erdweg S. Modular and automated type-soundness verification for language extensions. In: ICFP, 2013. p. 331-42.
[47]
Erdweg S, Kats LCL, Rendel T, Kästner C, Ostermann K, Visser E. Growing a language environment with editor libraries. In: GPCE, 2011. p. 167-76.
[48]
Erdweg S, Rendel T, Kästner C, Ostermann K. Layout-sensitive generalized parsing. In: SLE, vol. 7745, 2012. p. 244-63.
[49]
Solmi R. Whole platform Ph.D. thesis. University of Bologna; 2005.
[50]
Efftinge S, Eysholdt M, Köhnlein J, Zarnekow S, von Massow R, Hasselbring W, et al. Xbase: implementing domain-specific languages for Java. In: GPCE, 2012. p. 112-21.
[51]
Diekmann L, Tratt L. Eco: a language composition editor. In: SLE, 2014. p. 82-101.
[52]
T. Parr, R.W. Quong, ANTLR: a predicated-LL(k) parser generator, Softw Pract Exp, 25 (1995) 789-810.
[53]
Ford B. Parsing expression grammars: a recognition-based syntactic foundation. In: POPL, 2004. p. 111-22.
[54]
Voelter M, Ratiu D, Schaetz B, Kolb B. mbeddr: an extensible C-based programming language and IDE for embedded systems. In: SPLASH wavefront, 2012. p. 121-40.
[55]
Klint P, van der Storm T, Vinju J. On the impact of DSL tools on the maintainability of language implementations. In: Workshop on language descriptions, tools and applications (LDTA), 2010.
[56]
van Rest O, Wachsmuth G, Steel J, Süss JG, Visser E. Robust real-time synchronization between textual and graphical editors. In: ICMT, 2013. p. 92-107.
[57]
G. Sutcliffe, C. Suttner, The TPTP problem library, J Autom Reason, 21 (1998) 177-203.
[58]
Schmidt A, Waas F, Kersten M, Carey MJ, Manolescu I, Busse R. XMark: a benchmark for XML data management. In: Very large data bases, 2002. p. 974-85.
[59]
Schmidt M, Hornung T, Lausen G, Pinkel C. Sp2bench: a SPARQL performance benchmark. In: ICDE, 2009.
[60]
Kurzyniec D, Sunderam V. Efficient cooperation between Java and native codes-JNI performance benchmark. In: The 2001 international conference on parallel and distributed processing techniques and applications, 2001.
[61]
E. Jakumeit, S. Buchwald, D. Wagelaar, L. Dan, Á Hegedüs, M. Herrmannsdörfer, A survey and comparison of transformation tools based on the transformation tool contest, Sci Comput Program, 85 (2014) 41-99.
[62]
E. Roberts, An overview of MiniJava, SIGCSE Bull, 33 (2001) 1-5.
[63]
M. Fowler, Addison-Wesley Professional, Boston, 2010.
[64]
Pech V, Shatalin A, Voelter M. Jetbrains MPS as a tool for extending Java. In: Principles and practices of programming on the Java platform: virtual machines, languages, and tools, 2013. p. 165-8.
[65]
M. Flatt, Creating languages in Racket, Commun ACM, 55 (2012) 48-56.
[66]
Voelter M. Language and IDE development, modularization and composition with MPS. In: GTTSE 2011, 2011.
[67]
Tratt L. The converge programming language, Technical report TR-05-01, Department of Computer Science, King's College London February 26, 2005.
[68]
Voelter M, Ratiu D, Kolb B, Schaetz B. mbeddr: Instantiating a language workbench in the embedded software domain. Autom Softw Eng 20 (3).
[69]
Erdweg S, Van Der Storm T, Dai Y. Capture-avoiding and hygienic program transformations. In: ECOOP 2014-object-oriented programming, 2014. p. 489-514.

Cited By

View all
  • (2024)Advanced Game Engine Wizardry for Visual Programming EnvironmentsProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3689488.3689992(41-49)Online publication date: 18-Oct-2024
  • (2024)Supporting Construction of Domain-Specific Representations in Textual Source CodeProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3689488.3689990(17-28)Online publication date: 18-Oct-2024
  • (2024)Modelling of Cyber-Physical Systems through Domain-Specific Languages: Decision, Analysis, DesignProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3652620.3688348(1170-1179)Online publication date: 22-Sep-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Computer Languages, Systems and Structures
Computer Languages, Systems and Structures  Volume 44, Issue PA
December 2015
140 pages

Publisher

Elsevier Science Publishers B. V.

Netherlands

Publication History

Published: 01 December 2015

Author Tags

  1. Benchmarks
  2. Domain-specific languages
  3. Language workbenches
  4. Questionnaire language
  5. Survey

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Advanced Game Engine Wizardry for Visual Programming EnvironmentsProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3689488.3689992(41-49)Online publication date: 18-Oct-2024
  • (2024)Supporting Construction of Domain-Specific Representations in Textual Source CodeProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3689488.3689990(17-28)Online publication date: 18-Oct-2024
  • (2024)Modelling of Cyber-Physical Systems through Domain-Specific Languages: Decision, Analysis, DesignProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3652620.3688348(1170-1179)Online publication date: 22-Sep-2024
  • (2024)Collecting Feature Models from the Literature: A Comprehensive Dataset for BenchmarkingProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672590(54-65)Online publication date: 2-Sep-2024
  • (2024)A language-parametric test coverage framework for executable domain-specific languagesJournal of Systems and Software10.1016/j.jss.2024.111977211:COnline publication date: 2-Jul-2024
  • (2024)Requirements for modelling tools for teachingSoftware and Systems Modeling (SoSyM)10.1007/s10270-024-01192-y23:5(1055-1073)Online publication date: 1-Oct-2024
  • (2023)Deriving Integrated Multi-Viewpoint Modeling Languages from Heterogeneous Modeling Languages: An Experience ReportProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623527(194-207)Online publication date: 23-Oct-2023
  • (2023)Exceptions all Over the Shop: Modular, Customizable, Language-Independent Exception Handling LayerProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623513(1-14)Online publication date: 23-Oct-2023
  • (2023)Usefulness and usability of heuristic walkthroughs for evaluating domain-specific developer tools in industryInformation and Software Technology10.1016/j.infsof.2023.107220160:COnline publication date: 1-Aug-2023
  • (2023)A personal retrospective on language workbenchesSoftware and Systems Modeling (SoSyM)10.1007/s10270-023-01101-922:3(847-850)Online publication date: 20-Mar-2023
  • Show More Cited By

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media