首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是特定于领域的语言?有人用过吗?以什么方式?

什么是特定于领域的语言?有人用过吗?以什么方式?
EN

Stack Overflow用户
提问于 2009-04-30 23:28:35
回答 12查看 92.5K关注 0票数 133

我想我正在寻找某种介绍,看看是否有人使用过它。使用它有什么特别的好处吗?

维基百科:

领域专用语言(DSL)是一种专门针对特定问题域、特定问题表示技术和/或特定解决方案技术的编程语言或规范语言。

有人能给出具体的例子来说明你是如何实现它的,或者它在给定的场景中是如何有用的吗?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-04-30 23:40:23

特定于领域的语言是为处理特定领域或一组关注点而编写的语言。它们中有很多,比如make、ant和rake用于描述软件构建,或者lexx和yacc用于语言构建。近年来,它们变得流行起来,因为一些东西结合在一起,使它们更易于构建。其中最重要的是Ruby的日益流行,它有几个特性使构建新的DSL变得更加容易。

马丁·福勒( Martin )是这里这个想法的大力支持者。

票数 128
EN

Stack Overflow用户

发布于 2009-05-01 00:19:38

您可以将DSL看作是用更通用的编程语言编写的函数的复杂参数。真正的编程语言解析DSL代码并使用它做一些事情,通常,DSL代码只关注您想要做的事情,而更大的系统就会知道如何做。

DSL的示例包括所有查询语言(SQL、XPath、.)、所有模板语言(Django、Smarty、.)、shell脚本,特别包括诸如XML、命令驱动的web浏览器(主要用于自动测试)、数据存储和交换语言(XML、YAML、.)以及LaTex、HTML或CSS等文档语言。

有些语言具有非常灵活的语法,如TCL和Lisp,直接将它们的DSL构建到语言中.如果可能的话。大多数语言使用字符串,通常从外部文件加载。

使用它们有什么特别的好处吗?将它们用于预期的目的是非常有利的,因为您将在不知道的情况下转向它们,就像您一直在使用SQL或HTML而不将它们视为DSL一样。

我敢说,有足够的DSL为您可能需要的任何类型的应用程序;您几乎可以肯定不需要学习如何编写您自己的应用程序。

票数 83
EN

Stack Overflow用户

发布于 2009-04-30 23:48:30

(解决问题的关键)

我想我第一次在某个地方看到DSL,它的定义是“特定领域的语言”,我也认为它是一种特殊的、具体的语言,我只是没有听说过--但是,不,它是针对特定应用领域的语言的通用术语。

具有讽刺意味的是,如果您刚刚听说TCL是一种“工具命令语言”,您可能会认为,像DSL一样,各种工具都会有大量的TCLs -但是,不,它是一种特定脚本语言的特定名称。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/809574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档