Domain-specific language
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.
Description
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.
The line between general-purpose languages and domain-specific languages is not always sharp, as a language may have specialized features for a particular domain but be applicable more broadly, or conversely may in principle be capable of broad application but in practice used primarily for a specific domain.
For example, Perl was originally developed as a text-processing and glue language, for the same domain as AWK and shell scripts, but was mostly used as a general-purpose programming language later on.
By contrast, PostScript is a Turing complete language, and in principle can be used for any task, but in practice is narrowly used as a page description language.
See also
- Architecture description language
- Cognitive dimensions of notations
- Combinator library
- Domain analysis
- Domain-specific entertainment language
- Domain-specific modeling
- Domain-specific multimodeling
- Configuration file
- Fluent interface
- Metacompiler
- Metalinguistic abstraction
- Metamodeling
- Model-driven engineering
- Multi-paradigm programming language
- Programming domain
- Programming paradigm
- Specification and Description Language
- Probabilistic programming language (PPL)
External links
- Domain-specific language @ Wikipedia.org