领域特定语言DSL与正则表达式

前言

最近无意间了解到了DSL领域特定语言这个概念,觉得这个概念还很有趣呢。
其实我对于DSL的理解是,是大家先不约而同的做了DSL所定义的事情,而后才由世界级软件开发大师和软件开发“教父”Martin Fowler总结出了DSL这个概念。
最近总遇到正则表达式的问题,不仅仅是编程,有时候即便是处理一些日常任务,正则表达式的使用也能让我buff加满,就和Linux的shell编程一样哈哈。
这篇文章集中于对DSL的简单介绍和DSL的应用领域之一——正则表达式。其中,正则表达式的部分会在过几日完成。

DSL 领域特定语言

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等
以Fowler的观点,DSL首先是一种帮助用户从一个系统中抽象出某些部分的工具。所以“当你意识到你需要一个组件,或者当你已经有了一个组件而你希望简化操作它的方式的时候”,DSL是有用的。使用DSL确实提供了某些益处。DSL不仅提高了代码的易读性,让开发者可以和领域专家更好的交流,而且是改变执行上下文的一种手段,例如:把逻辑从编译时切换到运行时,或者当命令式编程不是很合适的时候转用声明式计算模型。
哎,感觉自己还没有完全理解。先占个坑~
See more

正则表达式

参考资料

什么是DSL