Defining “Domain-Specific Language”

June 8, 2009

Numerous definitions of Domain-Specific Language exist in the literature. Wu et al. define a DSL as follows:

A domain-specific language (DSL) is a programming language with concise syntax and rich semantics designed to solve problems in a particular domain.

Van Deursen:

A small, usually declarative, language expressive over the distinguishing characteristics of a set of programs in a particular problem domain.

Mernik et al.:

Domain-specific languages are languages tailored to a specific application domain.

Waite avoids the term DSL and instead focuses on declarative specifications, which he defines as descriptions

…which explicitly list properties that a solution must have.


…a limited form of computer language designed for a specific class of problems.

Wikipedia :

In software development, a domain-specific language (DSL) is a programming

language or specification language dedicated to a particular problem domain,

a particular problem representation technique, and/or a particular solution


I’ll assume the definition given by Mernik et al.

A note on terminology: I use the term Domain-Specific Language or DSL to refer

to a notation. The term Domain-Specific Language program or DSL program refers to a

specific instance of the language, i.e. a file that could be saved on a computer.

%d bloggers like this: