A
domain-specific language (
DSL) is a
computer language specialized to a particular application
domain. This is in contrast to a
general-purpose language (GPL), which is broadly applicable across domains, and lacks specialized features for a particular domain. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as
HTML for web pages, down to languages used by only one or a few pieces of software, such as
Emacs Lisp for
GNU Emacs and
XEmacs. DSLs can be further subdivided by the kind of language, and include domain-specific
markup languages, domain-specific
modeling languages (more generally,
specification languages), and domain-specific
programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of
domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called
mini-languages.