在我开始编程之前,DSL(Domain–Specific Language,领域特定语言)就已经成了程序世界中的一员。随便找个UNIX或者Lisp老手问问,他一定会跟你滔滔不绝地谈起DSL是怎么成为他的镇宅之宝的,直到你被烦得痛不欲生为止。但即便这样,DSL却从未成为计算领域的一大亮点。大多数人都是从别人那里学到DSL,而且只学到了有限的几种技术。我写这本书就是为了改变这个现状。我希望通过本书介绍的大量DSL技术,让你有足够的信息来做出决策:是否在工作中使用DSL,以及选择哪一种DSL技术。造成DSL流行的原因有很多,我只着重强调两点:首先, 提升开发人员的生产力;其次,增进与领域专家之间的沟通。如果DSL选择得当,就可以使一段复杂的代码变得清晰易懂,在使用这段代码时提高程序员的工作效率。同时,如果DSL选择得当,就可以使一段普通的文字既可以当做可执行的软件,又可以充当功能描述,让领域专家能理解他们的想法是如何在系统中得到体现的,开发者和领域专家的沟通也会更加顺畅。增进沟通比起工作效率提升困难了一些,但带来的效果却更为显著。因为它可以帮助我们打通软件开发中最狭窄的瓶颈─程序员和客户之间的沟通。
第一部分 叙 述第1章入门例子1.1 哥特式建筑安全系统1.2 状态机模型1.3 为格兰特小姐的控制器编写程序1.4 语言和语义模型1.5使用代码生成1.6 使用语言工作台1.7 可视化第2章 使用DSL2.1定义DSL2.2为何需要DSL2.3DSL的问题2.4广义的语言处理2.5DSL的生命周期2.6设计优良的DSL从何而来第3章实现DSL3.1DSL处理之架构3.2解析器的工作方式3.3文法、语法和语义3.4解析中的数据3.5宏3.6测试DSL3.7错误处理3.8DSL迁移第4章实现内部DSL4.1连贯API与命令–查询API4.2解析层的需求4.3使用函数4.4字面量集合4.5基于文法选择内部元素4.6闭包4.7解析树操作4.8标注4.9为字面量提供扩展4.10消除语法噪音4.11动态接收4.12提供类型检查
相关资源:七夕情人节表白HTML源码(两款)