转载:http://blog.csdn.net/dslztx/article/details/46682889
DSL的全称是domain-specific language,它在wiki上的定义如下:
A domain-specific language (DSL) is a computer language specialized to a particular application domain.
与之相对的是GPL(general-purpose language)。
DSL指的是针对特定应用领域而设计使用的计算机语言,而GPL指的是针对跨应用领域而设计使用的计算机语言。
常见的DSL有:HTML,Shell,make语言,ant语言,maven语言,rpm语言,dpkg语言,awk语言,正则表达式,dc计算机语言等,有些DSL语言又被称为微型语言
常见的GPL有:Java,C等
另外在Apache Storm中有Coljure DSL,Python DSL,Ruby DSL等
这里的DSL指的是为了使用Coljure,Python,Ruby等语言开发Storm应用程序而设计的语言
举例来说,现在我们设计了Coljure DSL,我们想要使用Coljure语言开发Storm应用程序,我们只需按照Coljure DSL的规范,进行一些配置,Coljure DSL会自动解析这些配置,生成采用Coljure语言编写的Storm应用程序
另外还有一个来自于网上的例子:[3]
如果我们要分析列出2011年11月20日之后商务型和个人用的13、14、15寸的A品牌笔记本的交易额,不计入价格大于10000的13寸笔记本。
那么我们定义一个DSL语言:
SUM(表. 交易额)
大小: 13寸,14寸,15寸
用途:商务型和个人用
品牌: A
Filter:日期>2011-11-20
Without: 大小=13 and 价格 >10000
DSL会解析这个命令,然后读取数据结构和地址等配置文件,然后生成数据分析的代码。
备注:
DSL的另外一个意思:Digital Subscriber Line
GPL的另外一个意思:GNU General Public License 自由软件基金会(GNU) 通用公共许可证
参考文献:
[1]:https://en.wikipedia.org/wiki/Domain-specific_language
[2]:https://en.wikipedia.org/wiki/General-purpose_language
[3]:http://blog.csdn.net/larrylgq/article/details/7299481