Jump to content

Language workbench

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Spdegabrielle (talk | contribs) at 10:35, 7 May 2019 (See also: added example with citation). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A language workbench[1][2] is a software development tool designed to define, reuse and compose domain-specific languages together with their integrated development environment. Language workbenches support language-oriented programming. Language workbenches were introduced and popularized by Martin Fowler in 2005.

Language workbenches usually support:[1]

Examples

  • JetBrains MPS is a tool for designing domain-specific languages. It uses projectional editing which allows overcoming the limits of language parsers, and building DSL editors, such as ones with tables and diagrams. It implements language-oriented programming. MPS combines an environment for language definition, a language workbench, and an Integrated Development Environment (IDE) for such languages.[3]
  • Xtext is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser, but also a class model for the abstract syntax tree. In addition, it provides a fully featured, customizable Eclipse-based IDE.[4]
  • Kermeta is an open-source academic language workbench. [5] The Kermeta workbench uses three different meta-languages: one meta-language for the abstract syntax (aligned with Emof); one for the static semantics (aligned with OCL) and one for the behavioral semantics (called the Kermeta Language itself).
  • Racket is a cross platform language development workbench including compiler, JIT compiler, IDE and command line tools designed to accommodate creating both domain-specific languages and completely new languages.[6] [7]
  • Melange is a language workbench that provides a modular approach for customizing, assembling and integrating multiple domain-specific language (DSL) specifications and implementations.[8]
  • Spoofax is an open-source language workbench for generating parsers, type checkers, compilers, interpreters, as well as IDE plugins for Eclipse and IntelliJ.[9] It uses SDF and a scannerless GLR parser for syntax, and formalisms derived from Stratego/XT for semantics.

See also

References

  1. ^ a b Fowler, Martin. "LanguageWorkbench". Retrieved 14 April 2015.
  2. ^ Fowler, Martin (12 June 2005). "Language Workbenches: The Killer-App for Domain Specific Languages?". Retrieved 14 April 2015.
  3. ^ "JetBrains MPS: Domain-Specific Language Creator".
  4. ^ "Xtext".
  5. ^ Jézéquel, Jean-Marc; Combemale, Benoit; Barais, Olivier; Monperrus, Martin; Fouquet, François (2013). "Mashup of metalanguages and its implementation in the Kermeta language workbench" (PDF). Software & Systems Modeling. 14 (2): 905–920. doi:10.1007/s10270-013-0354-4.
  6. ^ Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). "Languages as Libraries" (PDF). Programming Language Design and Implementation. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  7. ^ Flatt, Matthew (2012). "Creating Languages in Racket". Communications of the ACM. Retrieved 2012-04-08.
  8. ^ "Melange".
  9. ^ Kats, Lennart C. L.; Visser, Eelco (2010). "The Spoofax language workbench: rules for declarative specification of languages and IDEs.". Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010. doi:10.1145/1869459.1869497. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  10. ^ http://www.metaborg.org/en/latest/#the-spoofax-language-workbench