DSL (领域特定语言)

DSL

DSL: 领域特定语言 (Domain Specific Language),为了解决某一类任务而专门设计的计算机语言,DSL 并不是真正的编程语言,与之相对应的是 GPL(General Purpose Language) 通用编程语言,如 Objective-C、Java、Python 等

例如:'Regex'、'SQL'、'HTML/CSS'

设计原则:简单,通过简化语言中的元素,降低使用者的负担

缺点:缺乏抽象的概念,比如:模块化、变量及方法等

抽象的概念并不是某个领域所关注的问题,就像 Regex 并不需要模块、变量以及方法等概念

嵌入 DSL (内部 DSL):↑前面部分的概念可以被称为外部 DSL,而内部的 DSL 的实现往往是嵌入一些编程语言的,比如 iOS 的依赖库管理组件 CocoaPods 和 Andriod 的主流编译工具 Gradle,前者的实现是基于 Ruby 语言的一些特性,后者基于 Groovy。

CocoaPods 以及其他的嵌入式 DSL 使用了宿主语言 (host language) 的抽象能力,并且省去了实现复杂语法分析器 (Parser) 的过程,并不需要重新实现模块、变量等特性。

你可能感兴趣的:(DSL (领域特定语言))