02-DSL的设计与实现
14.1.1 DSL的设计与实现
DSL是一种有着特定目的的语言,通用的目的语言包括常见的如C、Java和Python等,二者的区别可以总结为以下几点。
- DSL主要供领域专家和模型构建者沟通使用。
- DSL是高度的抽象对象,不涉及任何类似数据结构的细节。
- DSL表现力有限,通常只能描述该领域的模型,而通用编程语言能够描述任意的具体模型。
其实,DSL和脚本语言之间的界限是非常模糊的,但DSL常常缺乏低级功能,如文件系统访问、进程间控制和其他表征功能齐全的编程语言所具有的功能。DSL不能编译成字节码或可执行代码,但是可以编译成各种各样的领域对象。