领域特定语言

领域特定语言
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [英] ,
2013-03
版次: 1
ISBN: 9787111413059
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 488页
正文语种: 简体中文
原版书名: Domain-Specific Languages
231人买过
  •   《领域特定语言》是DSL领域的丰碑之作,由世界级软件开发大师和软件开发“教父”Martin Fowler历时多年写作而成,ThoughtWorks中国翻译。全面详尽地讲解了各种DSL及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。
      《领域特定语言》全书共57章,分为六个部分:第一部分介绍了什么是DSL,DSL的用途,如何实现外部DS和内部DSL,如何生成代码,语言工作台的使用方法;第二部分介绍了各种DSL,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;第三部分分别揭示分隔符指导翻译、语法指导翻译、BNF、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。   Martin Fowler,世界级软件开发大师,软件开发“教父”,敏捷开发方法的创始人之一,在面向对象分析与设计、UML、模式、极限编程、重构和DSL等领域都有非常深入的研究并为软件开发行业做出了卓越贡献。他乐于分享,撰写了《企业应用架构模式》(荣获第13届Jolt生产力大奖)、《重构:改善既有代码的设计》、《分析模式:可复用的对象模型》、《UML精粹:标准对象建模语言简明指南》等在软件开发领域颇负盛名的著作。
    译者序
    前言
    第一部分 叙  述
    第1章 入门例子
    1.1 哥特式建筑安全系统
    1.2 状态机模型
    1.3 为格兰特小姐的控制器编写程序
    1.4 语言和语义模型
    1.5使用代码生成
    1.6 使用语言工作台
    1.7 可视化
    第2章  使用DSL
    2.1定义DSL
    2.1.1DSL的边界
    2.1.2片段DSL和独立DSL
    2.2为何需要DSL
    2.2.1 提高开发效率
    2.2.2与领域专家的沟通
    2.2.3执行环境的改变
    2.2.4其他计算模型
    2.3DSL的问题
    2.3.1语言噪音
    2.3.2构建成本
    2.3.3集中营语言
    2.3.4 “一叶障目”的抽象
    2.4广义的语言处理
    2.5DSL的生命周期
    2.6设计优良的DSL从何而来
    第3章 实现DSL
    3.1DSL处理之架构
    3.2解析器的工作方式
    3.3文法、语法和语义
    3.4解析中的数据
    3.5宏
    3.6测试DSL
    3.6.1语义模型的测试
    3.6.2解析器的测试
    3.6.3脚本的测试
    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提供类型检查
    第5章 实现外部DSL
    5.1语法分析策略
    5.2输出生成策略
    5.3解析中的概念
    5.3.1单独的词法分析
    5.3.2文法和语言
    5.3.3正则文法、上下文无关文法和上下文相关文法
    5.3.4自顶向下解析和自底向上解析
    5.4混入另一种语言
    5.5XML DSL
    第6章 内部DSL vs 外部DSL
    6.1学习曲线
    6.2创建成本
    6.3程序员的熟悉度
    6.4与领域专家沟通
    6.5与宿主语言混合
    6.6强边界
    6.7运行时配置
    6.8趋于平庸
    6.9组合多种DSL
    6.10总结
    第7章 其他计算模型概述
    7.1几种计算模型
    7.1.1决策表
    7.1.2产生式规则系统
    7.1.3状态机
    7.1.4依赖网络
    7.1.5选择模型
    第8章 代码生成
    8.1选择生成什么
    8.2如何生成
    8.3混合生成代码和手写代码
    8.4生成可读的代码
    8.5解析之前的代码生成
    8.6延伸阅读
    第9章 语言工作台
    9.1语言工作台之要素
    9.2模式定义语言和元模型
    9.3源码编辑和投射编辑
    9.4说明性编程
    9.5工具之旅
    9.6语言工作台和CASE工具
    9.7我们该使用语言工作台吗
    第二部分 通 用 主 题
    第10章 各种DSL
    10.1Graphviz
    10.2JMock
    10.3CSS
    10.4HQL
    10.5XAML
    10.6FIT
    10.7Make等
    第11章 语义模型
    11.1工作原理
    11.2使用场景
    11.3入门例子(Java)
    第12章 符号表
    12.1工作原理
    12.2使用场景
    12.3参考文献
    12.4以外部DSL实现的依赖网络(Java和ANTLR)
    12.5在一个内部DSL中使用符号键(Ruby)
    12.6用枚举作为静态类型符号(Java)
    第13章 语境变量
    13.1工作原理
    13.2使用场景
    13.3读取INI文件(C#)
    第14章 构造型生成器
    14.1工作原理
    14.2使用场景
    14.3构建简单的航班信息(C#)
    第15章 宏
    15.1工作原理
    15.1.1文本宏
    15.1.2语法宏
    15.2使用场景
    第16章 通知
    16.1工作原理
    16.2使用场景
    16.3一个非常简单的通知(C#)
    16.4解析中的通知(Java)
    第三部分 外部DSL主题
    第17章 分隔符指导翻译
    17.1工作原理
    17.2使用场景
    17.3常客记分(C#)
    17.3.1 语义模型
    17.3.2解析器
    17.4使用格兰特小姐的控制器解析非自治语句(Java)
    第18章 语法指导翻译
    18.1工作原理
    18.1.1词法分析器
    18.1.2语法分析器
    18.1.3产生输出
    18.1.4语义预测
    18.2使用场景
    18.3参考文献
    第19章 BNF
    19.1工作原理
    19.1.1多重性符号(Kleene运算符)
    19.1.2其他一些有用的运算符
    19.1.3解析表达式文法
    19.1.4将EBNF转换为基础BNF
    19.1.5行为代码
    19.2使用场景
    第20章 基于正则表达式表的词法分析器
    20.1工作原理
    20.2使用场景
    20.3格兰特小姐控制器的词法处理(Java)
    第21章 递归下降法语法解析器
    21.1工作原理
    21.2使用场景
    21.3参考文献
    21.4递归下降和格兰特小姐的控制器(Java)
    第22章 解析器组合子
    22.1工作原理
    22.1.1处理动作
    22.1.2函数式风格的组合子
    22.2使用场景
    22.3解析器组合子和格兰特小姐的控制器(Java)
    第23章 解析器生成器
    23.1工作原理
    23.2使用场景
    23.3Hello World(Java和ANTLR)
    23.3.1编写基本的文法
    23.3.2构建语法分析器
    23.3.3为文法添加代码动作
    23.3.4使用代沟
    第24章 树的构建
    24.1工作原理
    24.2使用场景
    24.3使用ANTLR的树构建语法(Java和ANTLR)
    24.3.1标记解释
    24.3.2解析
    24.3.3组装语义模型
    24.4使用代码动作进行树的构建(Java和ANTLR)
    第25章 嵌入式语法翻译
    25.1工作原理
    25.2使用场景
    25.3格兰特小姐的控制器(Java和ANTLR)
    第26章 内嵌解释器
    26.1工作原理
    26.2使用场景
    26.3计算器(ANTLR和Java)
    第27章 外加代码
    27.1工作原理
    27.2使用场景
    27.3嵌入动态代码(ANTLR、Java和JavaScript)
    27.3.1语义模型
    27.3.2语法分析器
    第28章 可变分词方式
    28.1工作原理
    28.1.1字符引用
    28.1.2词法状态
    28.1.3修改标记类型
    28.1.4忽略标记类型
    28.2使用场景
    第29章 嵌套的运算符表达式
    29.1工作原理
    29.1.1使用自底向上的语法分析器
    29.1.2自顶向下的语法分析器
    29.2使用场景
    第30章 以换行符作为分隔符
    30.1工作原理
    30.2使用场景
    第31章 外部DSL拾遗
    31.1语法缩进
    31.2模块化文法
    第四部分 内部DSL主题
    第32章 表达式生成器
    32.1工作原理
    32.2使用场景
    32.3具有和没有生成器的连贯日历(Java)
    32.4对于日历使用多个生成器(Java)
    第33章 函数序列
    33.1工作原理
    33.2使用场景
    33.3简单的计算机配置(Java)
    第34章 嵌套函数
    34.1工作原理
    34.2使用场景
    34.3简单计算机配置范例(Java)
    34.4用标记处理多个不同的参数(C#)
    34.5针对IDE支持使用子类型标记(Java)
    34.6使用对象初始化器(C#)
    34.7周期性事件(C#)
    34.7.1语义模型
    34.7.2DSL
    第35章 方法级联
    35.1工作原理
    35.1.1生成器还是值
    35.1.2收尾问题
    35.1.3分层结构
    35.1.4渐进式接口
    35.2使用场景
    35.3简单的计算机配置范例(Java)
    35.4带有属性的方法级联(C#)
    35.5渐进式接口(C#)
    第36章 对象范围
    36.1工作原理
    36.2使用场景
    36.3安全代码(C#)
    36.3.1 语义模型
    36.3.2DSL
    36.4使用实例求值(Ruby)
    36.5使用实例初始化器(Java)
    第37章 闭包
    37.1工作原理
    37.2使用场景
    第38章 嵌套闭包
    38.1工作原理
    38.2使用场景
    38.3用嵌套闭包来包装函数序列(Ruby)
    38.4简单的C#示例(C#)
    38.5使用方法级联(Ruby)
    38.6带显式闭包参数的函数序列(Ruby)
    38.7采用实例级求值(Ruby)
    第39章 列表的字面构造
    39.1工作原理
    39.2使用场景
    第40章 Literal Map
    40.1工作原理
    40.2使用场景
    40.3使用List和Map表达计算机的配置信息(Ruby)
    40.4演化为Greenspun式(Ruby)
    第41章 动态接收
    41.1工作原理
    41.2使用场景
    41.3积分--使用方法名解析(Ruby)
    41.3.1模型
    41.3.2生成器
    41.4积分--使用方法级联(Ruby)
    41.4.1模型
    41.4.2生成器
    41.5去掉安全仪表盘控制器中的引用(JRuby)
    第42章 标注
    42.1工作原理
    42.1.1定义标注
    42.1.2处理标注
    42.2使用场景
    42.3用于运行时处理的特定语法(Java)
    42.4使用类方法(Ruby)
    42.5动态代码生成(Ruby)
    第43章 解析树操作
    43.1工作原理
    43.2使用场景
    43.3由C#条件生成IMAP查询(C#)
    43.3.1语义模型
    43.3.2以C#构建
    43.3.3退后一步
    第44章 类符号表
    44.1 工作原理
    44.2使用场景
    44.3在静态类型中实现类符号表(Java)
    第45章 文本润色
    45.1工作原理
    45.2使用场景
    45.3使用润色的折扣规则(Ruby)
    第46章 为字面量提供扩展
    46.1工作原理
    46.2使用场景
    46.3食谱配料(C#)
    第五部分 其他计算模型
    第47章 适应性模型
    47.1工作原理
    47.1.1在适应性模型中使用命令式代码
    47.1.2工具
    47.2使用场景
    第48章 决策表
    48.1工作原理
    48.2使用场景
    48.3为一个订单计算费用(C#)
    48.3.1模型
    48.3.2解析器
    第49章 依赖网络
    49.1工作原理
    49.2使用场景
    49.3分析饮料(C#)
    49.3.1语义模型
    49.3.2解析器
    第50章 产生式规则系统
    50.1工作原理
    50.1.1链式操作
    50.1.2矛盾推导
    50.1.3规则结构里的模式
    50.2使用场景
    50.3俱乐部会员校验(C#)
    50.3.1模型
    50.3.2解析器
    50.3.3演进DSL
    50.4适任资格的规则:扩展俱乐部成员(C#)
    50.4.1模型
    50.4.2解析器
    第51章 状态机
    51.1工作原理
    51.2使用场景
    51.3安全面板控制器(Java)
    第六部分 代 码 生 成
    第52章 基于转换器的代码生成
    52.1工作原理
    52.2使用场景
    52.3安全面板控制器(Java生成的C)
    第53章 模板化的生成器
    53.1工作原理
    53.2使用场景
    53.3生成带有嵌套条件的安全控制面板状态机(Velocity和Java生成的C)
    第54章 嵌入助手
    54.1工作原理
    54.2使用场景
    54.3安全控制面板的状态(Java和ANTLR)
    54.4助手类应该生成HTML吗(Java和Velocity)
    第55章 基于模型的代码生成
    55.1工作原理
    55.2使用场景
    55.3安全控制面板的状态机(C)
    55.4动态载入状态机(C)
    第56章 无视模型的代码生成
    56.1工作原理
    56.2使用场景
    56.3使用嵌套条件的安全面板状态机(C)
    第57章 代沟
    57.1工作原理
    57.2使用场景
    57.3根据数据结构生成类(Java和一些Ruby)
    参考文献
  • 内容简介:
      《领域特定语言》是DSL领域的丰碑之作,由世界级软件开发大师和软件开发“教父”Martin Fowler历时多年写作而成,ThoughtWorks中国翻译。全面详尽地讲解了各种DSL及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。
      《领域特定语言》全书共57章,分为六个部分:第一部分介绍了什么是DSL,DSL的用途,如何实现外部DS和内部DSL,如何生成代码,语言工作台的使用方法;第二部分介绍了各种DSL,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;第三部分分别揭示分隔符指导翻译、语法指导翻译、BNF、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。
  • 作者简介:
      Martin Fowler,世界级软件开发大师,软件开发“教父”,敏捷开发方法的创始人之一,在面向对象分析与设计、UML、模式、极限编程、重构和DSL等领域都有非常深入的研究并为软件开发行业做出了卓越贡献。他乐于分享,撰写了《企业应用架构模式》(荣获第13届Jolt生产力大奖)、《重构:改善既有代码的设计》、《分析模式:可复用的对象模型》、《UML精粹:标准对象建模语言简明指南》等在软件开发领域颇负盛名的著作。
  • 目录:
    译者序
    前言
    第一部分 叙  述
    第1章 入门例子
    1.1 哥特式建筑安全系统
    1.2 状态机模型
    1.3 为格兰特小姐的控制器编写程序
    1.4 语言和语义模型
    1.5使用代码生成
    1.6 使用语言工作台
    1.7 可视化
    第2章  使用DSL
    2.1定义DSL
    2.1.1DSL的边界
    2.1.2片段DSL和独立DSL
    2.2为何需要DSL
    2.2.1 提高开发效率
    2.2.2与领域专家的沟通
    2.2.3执行环境的改变
    2.2.4其他计算模型
    2.3DSL的问题
    2.3.1语言噪音
    2.3.2构建成本
    2.3.3集中营语言
    2.3.4 “一叶障目”的抽象
    2.4广义的语言处理
    2.5DSL的生命周期
    2.6设计优良的DSL从何而来
    第3章 实现DSL
    3.1DSL处理之架构
    3.2解析器的工作方式
    3.3文法、语法和语义
    3.4解析中的数据
    3.5宏
    3.6测试DSL
    3.6.1语义模型的测试
    3.6.2解析器的测试
    3.6.3脚本的测试
    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提供类型检查
    第5章 实现外部DSL
    5.1语法分析策略
    5.2输出生成策略
    5.3解析中的概念
    5.3.1单独的词法分析
    5.3.2文法和语言
    5.3.3正则文法、上下文无关文法和上下文相关文法
    5.3.4自顶向下解析和自底向上解析
    5.4混入另一种语言
    5.5XML DSL
    第6章 内部DSL vs 外部DSL
    6.1学习曲线
    6.2创建成本
    6.3程序员的熟悉度
    6.4与领域专家沟通
    6.5与宿主语言混合
    6.6强边界
    6.7运行时配置
    6.8趋于平庸
    6.9组合多种DSL
    6.10总结
    第7章 其他计算模型概述
    7.1几种计算模型
    7.1.1决策表
    7.1.2产生式规则系统
    7.1.3状态机
    7.1.4依赖网络
    7.1.5选择模型
    第8章 代码生成
    8.1选择生成什么
    8.2如何生成
    8.3混合生成代码和手写代码
    8.4生成可读的代码
    8.5解析之前的代码生成
    8.6延伸阅读
    第9章 语言工作台
    9.1语言工作台之要素
    9.2模式定义语言和元模型
    9.3源码编辑和投射编辑
    9.4说明性编程
    9.5工具之旅
    9.6语言工作台和CASE工具
    9.7我们该使用语言工作台吗
    第二部分 通 用 主 题
    第10章 各种DSL
    10.1Graphviz
    10.2JMock
    10.3CSS
    10.4HQL
    10.5XAML
    10.6FIT
    10.7Make等
    第11章 语义模型
    11.1工作原理
    11.2使用场景
    11.3入门例子(Java)
    第12章 符号表
    12.1工作原理
    12.2使用场景
    12.3参考文献
    12.4以外部DSL实现的依赖网络(Java和ANTLR)
    12.5在一个内部DSL中使用符号键(Ruby)
    12.6用枚举作为静态类型符号(Java)
    第13章 语境变量
    13.1工作原理
    13.2使用场景
    13.3读取INI文件(C#)
    第14章 构造型生成器
    14.1工作原理
    14.2使用场景
    14.3构建简单的航班信息(C#)
    第15章 宏
    15.1工作原理
    15.1.1文本宏
    15.1.2语法宏
    15.2使用场景
    第16章 通知
    16.1工作原理
    16.2使用场景
    16.3一个非常简单的通知(C#)
    16.4解析中的通知(Java)
    第三部分 外部DSL主题
    第17章 分隔符指导翻译
    17.1工作原理
    17.2使用场景
    17.3常客记分(C#)
    17.3.1 语义模型
    17.3.2解析器
    17.4使用格兰特小姐的控制器解析非自治语句(Java)
    第18章 语法指导翻译
    18.1工作原理
    18.1.1词法分析器
    18.1.2语法分析器
    18.1.3产生输出
    18.1.4语义预测
    18.2使用场景
    18.3参考文献
    第19章 BNF
    19.1工作原理
    19.1.1多重性符号(Kleene运算符)
    19.1.2其他一些有用的运算符
    19.1.3解析表达式文法
    19.1.4将EBNF转换为基础BNF
    19.1.5行为代码
    19.2使用场景
    第20章 基于正则表达式表的词法分析器
    20.1工作原理
    20.2使用场景
    20.3格兰特小姐控制器的词法处理(Java)
    第21章 递归下降法语法解析器
    21.1工作原理
    21.2使用场景
    21.3参考文献
    21.4递归下降和格兰特小姐的控制器(Java)
    第22章 解析器组合子
    22.1工作原理
    22.1.1处理动作
    22.1.2函数式风格的组合子
    22.2使用场景
    22.3解析器组合子和格兰特小姐的控制器(Java)
    第23章 解析器生成器
    23.1工作原理
    23.2使用场景
    23.3Hello World(Java和ANTLR)
    23.3.1编写基本的文法
    23.3.2构建语法分析器
    23.3.3为文法添加代码动作
    23.3.4使用代沟
    第24章 树的构建
    24.1工作原理
    24.2使用场景
    24.3使用ANTLR的树构建语法(Java和ANTLR)
    24.3.1标记解释
    24.3.2解析
    24.3.3组装语义模型
    24.4使用代码动作进行树的构建(Java和ANTLR)
    第25章 嵌入式语法翻译
    25.1工作原理
    25.2使用场景
    25.3格兰特小姐的控制器(Java和ANTLR)
    第26章 内嵌解释器
    26.1工作原理
    26.2使用场景
    26.3计算器(ANTLR和Java)
    第27章 外加代码
    27.1工作原理
    27.2使用场景
    27.3嵌入动态代码(ANTLR、Java和JavaScript)
    27.3.1语义模型
    27.3.2语法分析器
    第28章 可变分词方式
    28.1工作原理
    28.1.1字符引用
    28.1.2词法状态
    28.1.3修改标记类型
    28.1.4忽略标记类型
    28.2使用场景
    第29章 嵌套的运算符表达式
    29.1工作原理
    29.1.1使用自底向上的语法分析器
    29.1.2自顶向下的语法分析器
    29.2使用场景
    第30章 以换行符作为分隔符
    30.1工作原理
    30.2使用场景
    第31章 外部DSL拾遗
    31.1语法缩进
    31.2模块化文法
    第四部分 内部DSL主题
    第32章 表达式生成器
    32.1工作原理
    32.2使用场景
    32.3具有和没有生成器的连贯日历(Java)
    32.4对于日历使用多个生成器(Java)
    第33章 函数序列
    33.1工作原理
    33.2使用场景
    33.3简单的计算机配置(Java)
    第34章 嵌套函数
    34.1工作原理
    34.2使用场景
    34.3简单计算机配置范例(Java)
    34.4用标记处理多个不同的参数(C#)
    34.5针对IDE支持使用子类型标记(Java)
    34.6使用对象初始化器(C#)
    34.7周期性事件(C#)
    34.7.1语义模型
    34.7.2DSL
    第35章 方法级联
    35.1工作原理
    35.1.1生成器还是值
    35.1.2收尾问题
    35.1.3分层结构
    35.1.4渐进式接口
    35.2使用场景
    35.3简单的计算机配置范例(Java)
    35.4带有属性的方法级联(C#)
    35.5渐进式接口(C#)
    第36章 对象范围
    36.1工作原理
    36.2使用场景
    36.3安全代码(C#)
    36.3.1 语义模型
    36.3.2DSL
    36.4使用实例求值(Ruby)
    36.5使用实例初始化器(Java)
    第37章 闭包
    37.1工作原理
    37.2使用场景
    第38章 嵌套闭包
    38.1工作原理
    38.2使用场景
    38.3用嵌套闭包来包装函数序列(Ruby)
    38.4简单的C#示例(C#)
    38.5使用方法级联(Ruby)
    38.6带显式闭包参数的函数序列(Ruby)
    38.7采用实例级求值(Ruby)
    第39章 列表的字面构造
    39.1工作原理
    39.2使用场景
    第40章 Literal Map
    40.1工作原理
    40.2使用场景
    40.3使用List和Map表达计算机的配置信息(Ruby)
    40.4演化为Greenspun式(Ruby)
    第41章 动态接收
    41.1工作原理
    41.2使用场景
    41.3积分--使用方法名解析(Ruby)
    41.3.1模型
    41.3.2生成器
    41.4积分--使用方法级联(Ruby)
    41.4.1模型
    41.4.2生成器
    41.5去掉安全仪表盘控制器中的引用(JRuby)
    第42章 标注
    42.1工作原理
    42.1.1定义标注
    42.1.2处理标注
    42.2使用场景
    42.3用于运行时处理的特定语法(Java)
    42.4使用类方法(Ruby)
    42.5动态代码生成(Ruby)
    第43章 解析树操作
    43.1工作原理
    43.2使用场景
    43.3由C#条件生成IMAP查询(C#)
    43.3.1语义模型
    43.3.2以C#构建
    43.3.3退后一步
    第44章 类符号表
    44.1 工作原理
    44.2使用场景
    44.3在静态类型中实现类符号表(Java)
    第45章 文本润色
    45.1工作原理
    45.2使用场景
    45.3使用润色的折扣规则(Ruby)
    第46章 为字面量提供扩展
    46.1工作原理
    46.2使用场景
    46.3食谱配料(C#)
    第五部分 其他计算模型
    第47章 适应性模型
    47.1工作原理
    47.1.1在适应性模型中使用命令式代码
    47.1.2工具
    47.2使用场景
    第48章 决策表
    48.1工作原理
    48.2使用场景
    48.3为一个订单计算费用(C#)
    48.3.1模型
    48.3.2解析器
    第49章 依赖网络
    49.1工作原理
    49.2使用场景
    49.3分析饮料(C#)
    49.3.1语义模型
    49.3.2解析器
    第50章 产生式规则系统
    50.1工作原理
    50.1.1链式操作
    50.1.2矛盾推导
    50.1.3规则结构里的模式
    50.2使用场景
    50.3俱乐部会员校验(C#)
    50.3.1模型
    50.3.2解析器
    50.3.3演进DSL
    50.4适任资格的规则:扩展俱乐部成员(C#)
    50.4.1模型
    50.4.2解析器
    第51章 状态机
    51.1工作原理
    51.2使用场景
    51.3安全面板控制器(Java)
    第六部分 代 码 生 成
    第52章 基于转换器的代码生成
    52.1工作原理
    52.2使用场景
    52.3安全面板控制器(Java生成的C)
    第53章 模板化的生成器
    53.1工作原理
    53.2使用场景
    53.3生成带有嵌套条件的安全控制面板状态机(Velocity和Java生成的C)
    第54章 嵌入助手
    54.1工作原理
    54.2使用场景
    54.3安全控制面板的状态(Java和ANTLR)
    54.4助手类应该生成HTML吗(Java和Velocity)
    第55章 基于模型的代码生成
    55.1工作原理
    55.2使用场景
    55.3安全控制面板的状态机(C)
    55.4动态载入状态机(C)
    第56章 无视模型的代码生成
    56.1工作原理
    56.2使用场景
    56.3使用嵌套条件的安全面板状态机(C)
    第57章 代沟
    57.1工作原理
    57.2使用场景
    57.3根据数据结构生成类(Java和一些Ruby)
    参考文献
查看详情
系列丛书 / 更多
领域特定语言
OpenCV 3计算机视觉:Python语言实现(原书第2版)
[爱尔兰]乔·米尼奇诺(JoeMinichino) 著;[爱尔兰]乔·米尼奇诺(JoeMinichino) 编;刘波苗贝贝史斌 译
领域特定语言
OpenGL ES 3.0编程指南
Dan、Budi、Dave Shreine 著;姚军 译
领域特定语言
OpenGL编程指南(原书第9版)
王锐 译
领域特定语言
精彩绝伦的Android UI设计:响应式用户界面与设计模式
Juhani Lehtimaki 著;王东明 译
领域特定语言
Python编程实战:运用设计模式、并发和程序库创建高质量程序
[美]Mark Summerfield 著;爱飞翔 译
领域特定语言
HTML5 Canvas核心技术:图形、动画与游戏开发
[美]David Geary 著
领域特定语言
华章程序员书库:OpenGL编程指南(原书第8版)
[美]施莱尔(Dave Shreiner)、Graham、John Kessenich 著;王锐 译
领域特定语言
iPad应用开发实践指南
[美]Kirby、[美]Tom Harrington 著;张菲 译
领域特定语言
SOA与Java:用Java技术实现面向服务
[美]Thomas、[印]Andre、[美]Satadru、[英]Philip Thomas 著;赵利通 译
领域特定语言
Android游戏开发实践指南
[美]Rick Rogers 著;爱飞翔 译
领域特定语言
华章程序员书库:vSphere 5.0存储设计与实现
[美]Mostafa Khalil 著;姚军 译
领域特定语言
Java TCP/IP Socket编程
[美]卡尔弗特、[美]多纳霍 著;周恒民 译
相关图书 / 更多
领域特定语言
领域驱动设计:软件核心复杂性应对之道(英文版)
[美]埃文斯 著
领域特定语言
领域知识工程学
罗建中 编
领域特定语言
领域驱动设计学习手册
[以色列]弗拉德·霍诺诺夫(Vlad Khononov)
领域特定语言
领域特定语言
[美]马丁·福勒(Martin Fowler)
领域特定语言
领域专用语言实战
[美]Debasish Ghosh
领域特定语言
领域驱动设计与模式实战
[瑞典]Jimmy Nilsson 著
领域特定语言
领域驱动设计.Net实践
甄镭
领域特定语言
领域驱动设计精粹
Vernon(沃恩弗农) 著;[美]Vaughn、覃宇 笪磊 译
领域特定语言
领域语义信息检索研究——以竹藤领域为例
彭琳 著
领域特定语言
领域驱动设计 软件核心复杂性应对之道 英文版
[美]埃里克·埃文斯(Eric Evans)
领域特定语言
领域自适应目标检测方法与应用
叶茂;唐宋;李旭冬
领域特定语言
领域法学社会科学的新思维与法学共同体的新融合
刘剑文 著
您可能感兴趣 / 更多
领域特定语言
最后一个人(《时代》杂志评其为“十大后世界末日小说”之一)
[英]玛丽·雪莱 著;新华先锋 出品
领域特定语言
不能赢的辩护【当当定制“检方证物线索卡*5】金匕首奖得主史蒂夫·卡瓦纳推理神作
[英]史蒂夫·卡瓦纳 著;酷威文化 出品
领域特定语言
谢林与现代欧洲哲学
[英]安德鲁·鲍伊
领域特定语言
科普勒斯顿阿哲学史11
[英]弗雷德里克·科普勒斯顿 后浪
领域特定语言
构建底层逻辑(用底层逻辑武装大脑,实现思维能力的跃升)
[英]艾萨克·瓦茨 译者;卢东民
领域特定语言
哈利·波特 一段魔法史
[英]大英图书馆 编;向寻 冬翌 译
领域特定语言
管教的常识:直面孩子成长的88个问题
[英]苏珊·伊莎克丝 译者;李江艳
领域特定语言
卢梭与德国观念论:自由、依赖和必然
[英]大卫·詹姆斯(David James) 著;吴珊珊 译
领域特定语言
点读版恐龙妙想国 动物妙想国系列全4册 3-6岁儿童趣味科普绘本爆笑动物认知启蒙图画书三角龙梁龙剑龙霸王龙恐龙科普故事幼儿园想象力绘本睡前故事书
[英]露丝·西蒙斯/著 (英)阿列克谢·彼特斯科夫/绘 邢培健 译
领域特定语言
凤凰文库设计理论研究系列-杜威与设计:实用主义的设计视角研究
[英]布莱恩·S.迪克森 著;王成思 译;汪星宇
领域特定语言
钢琴技巧实践
[英]默里·麦克拉克伦(Murray McLachlan) 著;孙晓雪 译
领域特定语言
野蔷薇村的故事(全8册):40周年官方特别纪念版
[英]吉尔·巴克莲 著;[中]马爱农 译