《领域特定语言》一导读

简介: 我写这本书就是为了改变这个现状。我希望通过本书介绍的大量DSL技术,让你有足够的信息来做出决策:是否在工作中使用DSL,以及选择哪一种DSL技术。

image

前 言

在我开始编程之前,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章 使用DSL
2.1定义DSL
2.2为何需要DSL
2.3DSL的问题
2.4广义的语言处理
2.5DSL的生命周期
2.6设计优良的DSL从何而来
第3章实现DSL
3.1DSL处理之架构
3.2解析器的工作方式
3.3文法、语法和语义
3.4解析中的数据
3.5宏
3.6测试DSL
3.7错误处理
3.8DSL迁移
第4章实现内部DSL
4.1连贯API与命令–查询API
4.2解析层的需求
4.3使用函数
4.4字面量集合
4.5基于文法选择内部元素
4.6闭包
4.7解析树操作
4.8标注
4.9为字面量提供扩展
4.10消除语法噪音
4.11动态接收
4.12提供类型检查

相关文章
|
9月前
|
网络协议 数据挖掘 编译器
C++语言
C++语言
110 3
|
自然语言处理 JavaScript 前端开发
【100 种语言速成】第 2 节:Emojicode
【100 种语言速成】第 2 节:Emojicode
96 0
|
存储 算法 Unix
用一句Halle认识C 语言
用一句Halle认识C 语言
159 0
用一句Halle认识C 语言
|
SQL 关系型数据库 MySQL
msq语言
控制语言,定义语言,操纵语言
318 0
|
Java 关系型数据库 C#
什么语言才是世界上最好语言 ?
XXX语言是世界上最好语言 前言一个好的编译器/解释器决定一个语言的命运。我们常常看到有人会在网络上谈论一个语言的好坏,从而引起社区口水战,在这些话题中性能占了很大的比例,很少会有人辩论语言的语法合理性,语言的设计缺陷。
2000 0
|
Java 开发者
快速掌握一个语言最常用的50%
现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。
978 0
P4语言
官网:https://p4.org/ github:https://github.com/p4lang/tutorials   相关文章: P4语言编程快速开始:https://www.sdnlab.com/18072.
1556 0
|
JavaScript 开发工具 前端开发