首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么轻松构建DSL(二)

2013-12-20 
如何轻松构建DSL(二)? ? 既然说DSL就如同文字对于人类一样重要,让你的软件能够有自己的DSL绝对是一件很酷

如何轻松构建DSL(二)

? ? 既然说DSL就如同文字对于人类一样重要,让你的软件能够有自己的DSL绝对是一件很酷的事情,但是在很长一段时间里,开发一个DSL系统不是一个简单的事情,大家的编译原理课程,很多都是过了就过了,而且能够设计和实现一套DSL无疑是让人觉得这觉得是个高级软件工程师才能干的活。

? ? 既然我们要实现这个DSL,那就先来看它是个什么样子,有什么特征。不如这样子看,看输入和输出,先不管中间过程是怎样,大部分DSL都是脚本语言,就是语句直接执行,而不是像编译语言如JAVA,C++那样输出一个可执行程序,所以且先只管脚本语言的情况,那脚本语言的特征是怎样呢,输入是脚本,可能的形式是一行指令也可能是多行指令,反正,都是字符串。对,字符串,然后输出呢,输出就很多种多样了,可能是数值,可能是对系统里数据的更改而不是直接的输出。总而言之,就是对这个软件里的数据产生了影响。

? ? 既然有输入和输出,那中间的黑盒子是怎样呢,它做了什么事情呢?简而言之,字符串首先被解析,成为了AST(abstract synext tree),这样呢,就把无结构的数据,变成了有结构的数据,讲原先只能算长度,连接截取的字符串数据变成了,有上下关系,能单独处理的数据节点树,这个树上的节点,可能是数字,可能是字符串,可能是业务数据对象,总之,成为了可以计算的对象,然后,就可以对数据进行计算了,这是神奇发生的地方,至于怎么计算,就看你的语言怎么设计和业务的需求是怎样了。

热点排行