Language workbench is a term introduced and popularized by Martin Fowler in 2005. It describes a class of software development tools designed to define, reuse and compose domain-specific languages together with their integrated development environment. Language workbenches therefore follow the idea of language-oriented programming.
Language workbenches usually support: