Language workbench explained
A language workbench[1] [2] is a tool or set of tools that enables software development in the language-oriented programming software development paradigm. A language workbench will typically include tools to support the definition, reuse and composition of domain-specific languages together with their integrated development environment. Language workbenches were introduced and popularized by Martin Fowler in 2005.
Language workbenches usually support:
Examples
- 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 with facilities to add new notation, constrain constructs, and create IDE tools.[3] [4] [5]
- 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.[6]
- Kermeta is an open-source academic language workbench. 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).
- Melange is a language workbench that provides a modular approach for customizing, assembling and integrating multiple domain-specific language (DSL) specifications and implementations.[7]
- Spoofax.[8] 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.
- 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.[10]
- Meeduse[11] is an EMF-based framework that allows one to build, prove and animate executable domain-specific languages (xDSLs) using the B Method. The tool embeds ProB, and animator and model-checker of the B Method.[12]
See also
External links
Notes and References
- Web site: LanguageWorkbench . Fowler . Martin . 14 April 2015.
- Web site: Language Workbenches: The Killer-App for Domain Specific Languages? . Fowler . Martin . 12 June 2005 . 14 April 2015.
- Feltey . Daniel . Florence . Spencer P. . Knutson . Tim . St-Amour . Vincent . Culpepper . Ryan . Flatt . Matthew . Findler . Robert Bruce . Felleisen . Matthias . Languages the Racket Way . 2016 Language Workbench Challenge . 2016 . 65 . 9 June 2019.
- Tobin-Hochstadt . S. . St-Amour . V. . Culpepper . R. . Flatt . M. . Felleisen . M. . Languages as Libraries . Programming Language Design and Implementation . 2011 .
- News: Flatt . Matthew . Creating Languages in Racket . Communications of the ACM . 2012 . 2012-04-08 .
- Web site: JetBrains MPS: Domain-Specific Language Creator.
- Web site: Melange.
- Web site: The Spoofax Language Workbench.
- Kats . Lennart C. L.. Visser . Eelco. 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. 2010. 10.1145/1869459.1869497.
- Web site: Xtext.
- Idani . Akram . Ledru . Yves . Vega . German . Alliance of Model Driven Engineering with a proof-based Formal Approach . Innovations in Systems and Software Engineering (ISSE), NASA Journal . December 2020 . 6 . 3 . 289–307 . 10.1007/s11334-020-00366-3. free .
- Web site: Meeduse.