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. There is 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.
领域专用语言(DSL) 是一种 专用于特定应用领域的计算机语言。与之对应的是通用语言(GPL):跨多个领域使用的计算机语言。有丰富的DSL,从被广泛使用在常见领域的语言 如制作网页的HTML,到只被一个或几个软件使用的语言,如GNU Emacs 和 XEmacs 使用的 Emacs Lisp 。领域专用语言又可以进一步细分为多种语言,域标签语言,域建模语言(一般地说,规范语言),域编程语言。专用计算机语言一直存在于计算机时代,但领域专用语言这一术语由于领域建模的兴起才变得普及。简单的 DSLs ,特别是被单个应用程序使用的DSL ,有时也被称为迷你语言。
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.
通用语言和领域特定语言之间的界线并不总是鲜明的,因为语言可能具有特定领域的专门特征,但可以更广泛地适用,或者相反地在原则上可以广泛应用,但实际上主要用于一个特定的领域。例如,Perl最初是作为文本处理和胶合语言开发的,与AWK和shell脚本相同,但是后来被通常用作通用编程语言。相比之下,PostScript是一种图灵完整的语言,原则上可以用于任何任务,但在实践中被狭义地用作页面描述语言。