Language workbench

A language workbench[1][2] is a tool or set of tools that enables software development in the language-oriented programming[2] 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:[1]

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).[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.[9] is an open-source language workbench for generating parsers, type checkers, compilers, interpreters, as well as IDE plugins for Eclipse and IntelliJ.[10] 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.[11]
  • Meeduse[12] 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.[13]

See also

References

  1. ^ a b Fowler, Martin. "LanguageWorkbench". Retrieved 14 April 2015.
  2. ^ a b Fowler, Martin (12 June 2005). "Language Workbenches: The Killer-App for Domain Specific Languages?". Retrieved 14 April 2015.
  3. ^ Feltey, Daniel; Florence, Spencer P.; Knutson, Tim; St-Amour, Vincent; Culpepper, Ryan; Flatt, Matthew; Findler, Robert Bruce; Felleisen, Matthias (2016). "Languages the Racket Way" (PDF). 2016 Language Workbench Challenge (65). Retrieved 9 June 2019.
  4. ^ Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). "Languages as Libraries" (PDF). Programming Language Design and Implementation.
  5. ^ Flatt, Matthew (2012). "Creating Languages in Racket". Communications of the ACM. Retrieved 2012-04-08.
  6. ^ "JetBrains MPS: Domain-Specific Language Creator".
  7. ^ Jézéquel, Jean-Marc; Combemale, Benoit; Barais, Olivier; Monperrus, Martin; Fouquet, François (2015). "Mashup of metalanguages and its implementation in the Kermeta language workbench". Software & Systems Modeling. 14 (2): 905–920. arXiv:1306.0760. doi:10.1007/s10270-013-0354-4.
  8. ^ "Melange".
  9. ^ "The Spoofax Language Workbench".
  10. ^ 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.
  11. ^ "Xtext".
  12. ^ Idani, Akram; Ledru, Yves; Vega, German (December 2020). "Alliance of Model Driven Engineering with a proof-based Formal Approach". Innovations in Systems and Software Engineering (ISSE), NASA Journal. 6 (3): 289–307. doi:10.1007/s11334-020-00366-3.
  13. ^ "Meeduse".


Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.