A language workbench (LWB) is a platform for implementing software languages, especially domain-specific languages (DSLs), efficiently. It often takes the form of a specialized IDE and uses meta-DSLs to define structure, constraints, editors, type systems, and code generation. section 15.4.1 section 15.5
Assess a language workbench by considering:
- Maturity, including software quality and documentation. section 15.4.1
- DSL style: textual and parsing-based, or projectional, with graphical notation as an extreme. section 15.4.1
- Openness, support, community, and operating-system or platform compatibility. section 15.4.1
A workbench can accelerate DSL implementation, but using one effectively requires working knowledge of DSL implementation. Building a DSL from scratch exposes that knowledge without committing to a vendor’s terminology or tools that may later change. section 15.4.1
