返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版 领域特定语言 [美]Martin Fowler 人民邮电出版社 978711556
  • 新华书店旗下自营,正版全新
    • 作者: [美]Martin Fowler著 | [美]Martin Fowler编 | [美]Martin Fowler译 | [美]Martin Fowler绘
    • 出版社: 人民邮电出版社
    • 出版时间:2020-05-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    美阅书店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品参数
    • 作者: [美]Martin Fowler著| [美]Martin Fowler编| [美]Martin Fowler译| [美]Martin Fowler绘
    • 出版社:人民邮电出版社
    • 出版时间:2020-05-01
    • 版次:1版1次
    • 印次:1
    • 字数:693.0
    • 页数:473
    • 开本:16开
    • ISBN:9787115563163
    • 版权提供:人民邮电出版社
    • 作者:[美]Martin Fowler
    • 著:[美]Martin Fowler
    • 装帧:平装
    • 印次:1
    • 定价:149.90
    • ISBN:9787115563163
    • 出版社:人民邮电出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2020-05-01
    • 页数:473
    • 外部编号:11076801
    • 版次:1版1次
    • 成品尺寸:暂无

    第 一部分 叙述
    第 1章 入门示例 2
    1.1 古堡安全系统 2
    1.2 状态机模型 4
    1.3 为格兰特女士的控制器编程 7
    1.4 语言和语义模型 13
    1.5 使用代码生成 15
    1.6 使用语言工作台 17
    1.7 可视化 19
    第 2章 使用DSL 21
    2.1 定义DSL 21
    2.1.1 DSL的边界 22
    2.1.2 片段DSL和独立DSL 25
    2.2 为何使用DSL 25
    2.2.1 提高开发效率 26
    2.2.2 与领域专家沟通 26
    2.2.3 改变执行环境 27
    2.2.4 备选计算模型 28
    2.3 DSL的问题 28
    2.3.1 语言噪声 29
    2.3.2 构建成本 29
    2.3.3 集中营语言 30
    2.3.4 狭隘的抽象 30
    2.4 广义的语言处理 31
    2.5 DSL的生命周期 31
    2.6 设计优良的DSL从何而来 33
    第3章 实现DSL 34
    3.1 DSL处理的架构 34
    3.2 语法分析器的工作方式 37
    3.3 文法、语法和语义 39
    3.4 语法分析中的数据 39
    3.5 宏 41
    3.6 DSL的测试 42
    3.6.1 语义模型的测试 42
    3.6.2 语法分析器的测试 46
    3.6.3 脚本的测试 49
    3.7 错误处理 50
    3.8 DSL的迁移 51
    第4章 实现内部DSL 53
    4.1 连贯API和命令查询API 53
    4.2 对语法分析层的需要 56
    4.3 使用函数 57
    4.4 字面量集合 61
    4.5 基于文法选择内部元素 62
    4.6 闭包 63
    4.7 语法分析树操作 65
    4.8 注解 66
    4.9 字面量扩展 67
    4.10 降低语法噪声 68
    4.11 动态接收 68
    4.12 提供类型检查 69
    第5章 实现外部DSL 71
    5.1 语法分析策略 71
    5.2 输出生成策略 74
    5.3 解析中的概念 75
    5.3.1 单独的词法分析 75
    5.3.2 文法和语言 76
    5.3.3 正则文法、上下文无关文法和上下文相关文法 77
    5.3.4 自顶向下解析和自底向上解析 78
    5.4 混入另一种语言 80
    5.5 XML DSL 81
    第6章 在内部DSL和外部DSL之间做选择 83
    6.1 学习曲线 83
    6.2 构建成本 84
    6.3 程序员的熟悉度 85
    6.4 与领域专家沟通 85
    6.5 与宿主语言混合 85
    6.6 表达性强边界 86
    6.7 运行时配置 86
    6.8 趋于通用 87
    6.9 组合多种DSL 87
    6.10 小结 88
    第7章 备选计算模型 89
    7.1 决策表 91
    7.2 产生式规则系统 92
    7.3 状态机 93
    7.4 依赖网络 94
    7.5 选择模型 94
    第8章 代码生成 95
    8.1 选择生成什么 96
    8.2 如何生成 98
    8.3 混合生成的代码和手写代码 99
    8.4 生成可读的代码 100
    8.5 语法分析前的代码生成 100
    8.6 延伸阅读 101
    第9章 语言工作台 102
    9.1 语言工作台的要素 102
    9.2 模式定义语言和元模型 103
    9.3 源编辑和投射编辑 107
    9.4 说明性编程 109
    9.5 工具之旅 110
    9.6 语言工作台和CASE工具 111
    9.7 是否应该使用语言工作台 112
    第二部分 常见主题
    第 10章 DSL集锦 114
    10.1 Graphviz 114
    10.2 JMock 115
    10.3 CSS 116
    10.4 HQL 118
    10.5 XAML 118
    10.6 FIT 120
    10.7 Make等 121
    第 11章 语义模型(Semantic Model) 123
    11.1 运行机制 123
    11.2 使用时机 125
    11.3 入门示例(Java) 126
    第 12章 符号表(Symbol Table) 127
    12.1 运行机制 127
    12.2 使用时机 129
    12.3 延伸阅读 129
    12.4 以外部DSL实现的依赖网络(Java和ANTLR) 130
    12.5 在内部DSL中使用符号键(Ruby) 131
    12.6 以枚举作为静态类型符号(Java) 132
    第 13章 上下文变量(Context Variable) 135
    13.1 运行机制 135
    13.2 使用时机 136
    13.3 读取INI文件(C#) 136
    第 14章 构造型构建器(Construction Builder) 139
    14.1 运行机制 139
    14.2 使用时机 140
    14.3 构建简单的航班数据(C#) 140
    第 15章 宏(Macro) 142
    15.1 运行机制 142
    15.1.1 文本宏 143
    15.1.2 语法宏 146
    15.2 使用时机 149
    第 16章 通知(Notification) 150
    16.1 运行机制 150
    16.2 使用时机 151
    16.3 非常简单的通知(C#) 151
    16.4 对通知进行语法分析(Java) 152
    第三部分 外部DSL主题
    第 17章 分隔符制导翻译(Delimiter-Directed Translation) 156
    17.1 运行机制 156
    17.2 使用时机 159
    17.3 常客记分(C#) 159
    17.3.1 语义模型 159
    17.3.2 语法分析器 161
    17.4 使用格兰特女士的控制器对非自治语句进行语法分析(Java) 164
    第 18章 语法制导翻译(Syntax-Directed Translation) 171
    18.1 运行机制 172
    18.1.1 词法分析器 172
    18.1.2 语法分析器 175
    18.1.3 产生输出 177
    18.1.4 语义谓词 177
    18.2 使用时机 178
    18.3 延伸阅读 178
    第 19章 巴克斯-诺尔范式(BNF) 179
    19.1 运行机制 179
    19.1.1 多重性符号(克林运算符) 181
    19.1.2 其他有用的运算符 182
    19.1.3 解析表达式文法 182
    19.1.4 将EBNF转换为基础BNF 183
    19.1.5 行为代码 185
    19.2 使用时机 187
    第 20章 基于正则表达式表的词法分析器(Regex Table Lexer) 188
    20.1 运行机制 189
    20.2 使用时机 190
    20.3 对格兰特女士的控制器进行词法分析(Java) 190
    第 21章 递归下降语法分析器(Recursive Descent Parser) 193
    21.1 运行机制 194
    21.2 使用时机 196
    21.3 延伸阅读 197
    21.4 递归下降和格兰特女士的控制器(Java) 197
    第 22章 语法分析器组合子(Parser Combinator) 202
    22.1 运行机制 203
    22.1.1 处理动作 205
    22.1.2 函数式风格的组合子 206
    22.2 使用时机 207
    22.3 语法分析器组合子和格兰特女士的控制器(Java) 207
    第 23章 语法分析器生成器(Parser Generator) 214
    23.1 运行机制 214
    23.2 使用时机 216
    23.3 Hello World(Java和ANTLR) 216
    23.3.1 编写基本的文法 217
    23.3.2 构建语法分析器 218
    23.3.3 为文法添加行为代码 220
    23.3.4 使用代沟 221
    第 24章 树构造(Tree Construction) 224
    24.1 运行机制 224
    24.2 使用时机 226
    24.3 使用ANTLR的树构造语法(Java和ANTLR) 227
    24.3.1 分词 228
    24.3.2 语法分析 228
    24.3.3 组装语义模型 230
    24.4 使用行为代码进行树构造(Java和ANTLR) 233
    第 25章 内嵌翻译(Embedded Translation) 239
    25.1 运行机制 239
    25.2 使用时机 240
    25.3 格兰特女士的控制器(Java和ANTLR) 240
    第 26章 内嵌解释(Embedded Interpretation) 244
    26.1 运行机制 244
    26.2 使用时机 244
    26.3 计算器(ANTLR和Java) 245
    第 27章 外来代码(Foreign Code) 247
    27.1 运行机制 247
    27.2 使用时机 248
    27.3 嵌入动态代码(ANTLR、Java和JavaScript) 249
    27.3.1 语义模型 249
    27.3.2 语法分析器 251
    第 28章 可变分词方式(Alternative Tokenization) 255
    28.1 运行机制 255
    28.1.1 引用 256
    28.1.2 词法状态 258
    28.1.3 修改记号类型 259
    28.1.4 忽略记号类型 260
    28.2 使用时机 261
    第 29章 嵌套运算符表达式(Nested Operator Expression) 262
    29.1 运行机制 262
    29.1.1 自底向上的语法分析器 262
    29.1.2 自顶向下的语法分析器 264
    29.2 使用时机 266
    第30章 换行分隔符(Newline Separator) 267
    30.1 运行机制 267
    30.2 使用时机 269
    第31章 外部DSL拾遗 271
    31.1 语法缩进 271
    31.2 模块化文法 273
    第四部分 内部DSL主题
    第32章 表达式构建器(Expression Builder) 276
    32.1 运行机制 277
    32.2 使用时机 277
    32.3 用构建器和不用构建器的连贯接口日程表(Java) 278
    32.4 对日程表使用多个构建器(Java) 280
    第33章 函数序列(Function Sequence) 283
    33.1 运行机制 283
    33.2 使用时机 284
    33.3 简单的计算机配置范例(Java) 284
    第34章 嵌套函数(Nested Function) 287
    34.1 运行机制 287
    34.2 使用时机 289
    34.3 简单的计算机配置示例(Java) 289
    34.4 用记号处理多个不同的参数(C#) 291
    34.5 针对IDE支持使用子类型记号(Java) 292
    34.6 使用对象初始化器(C#) 294
    34.7 重复事件(C#) 295
    34.7.1 语义模型 295
    34.7.2 DSL 298
    第35章 方法级联(Method Chaining) 300
    35.1 运行机制 300
    35.1.1 使用构建器还是值 301
    35.1.2 收尾问题 302
    35.1.3 分层结构 303
    35.1.4 渐进式接口 303
    35.2 使用时机 304
    35.3 简单的计算机配置示例(Java) 304
    35.4 带有属性的方法级联(C#) 307
    35.5 渐进式接口(C#) 308
    第36章 对象作用域(Object Scoping) 310
    36.1 运行机制 310
    36.2 使用时机 311
    36.3 安全代码(C#) 312
    36.3.1 语义模型 312
    36.3.2 DSL 314
    36.4 使用实例求值(Ruby) 316
    36.5 使用实例初始化程序(Java) 318
    第37章 闭包(Closure) 320
    37.1 运行机制 320
    37.2 使用时机 324
    第38章 嵌套闭包(Nested Closure) 325
    38.1 运行机制 325
    38.2 使用时机 326
    38.3 用嵌套闭包来包装函数序列(Ruby) 327
    38.4 简单的C#范例(C#) 329
    38.5 使用方法级联(Ruby) 330
    38.6 带有显式闭包参数的函数序列(Ruby) 331
    38.7 使用实例求值(Ruby) 333
    第39章 字面量列表(Literal List) 336
    39.1 运行机制 336
    39.2 使用时机 336
    第40章 字面量映射(Literal Map) 338
    40.1 运行机制 338
    40.2 使用时机 339
    40.3 使用列表和映射表达计算机的配置信息(Ruby) 339
    40.4 演化为格林斯潘式(Ruby) 340
    第41章 动态接收(Dynamic Reception) 344
    41.1 运行机制 344
    41.2 使用时机 345
    41.3 积分—使用经过语法分析的方法名(Ruby) 347
    41.3.1 模型 347
    41.3.2 构建器 349
    41.4 积分—使用方法级联(Ruby) 350
    41.4.1 模型 351
    41.4.2 构建器 351
    41.5 去除密室控制器中的引用(JRuby) 354
    第42章 注解(Annotation) 359
    42.1 运行机制 359
    42.1.1 定义注解 360
    42.1.2 处理注解 361
    42.2 使用时机 362
    42.3 用于运行时处理的自定义语法(Java) 362
    42.4 使用类方法(Ruby) 364
    42.5 动态代码生成(Ruby) 365
    第43章 语法分析树操作(Parse Tree Manipulation) 367
    43.1 运行机制 367
    43.2 使用时机 368
    43.3 由C#条件生成IMAP查询(C#) 369
    43.3.1 语义模型 369
    43.3.2 使用C#构建 371
    43.3.3 退后一步 375
    第44章 类符号表(Class Symbol Table) 377
    44.1 运行机制 377
    44.2 使用时机 378
    44.3 静态类型的类符号表(Java) 379
    第45章 文本打磨(Textual Polishing) 385
    45.1 运行机制 385
    45.2 使用时机 386
    45.3 打磨后的折扣规则(Ruby) 386
    第46章 字面量扩展(Literal Extension) 389
    46.1 运行机制 389
    46.2 使用时机 390
    46.3 食谱配料(C#) 390
    第五部分 备选计算模型
    第47章 适应性模型(Adaptive Model) 394
    47.1 运行机制 395
    47.1.1 在适应性模型中纳入命令式代码 396
    47.1.2 工具 397
    47.2 使用时机 398
    第48章 决策表(Decision Table) 400
    48.1 运行机制 400
    48.2 使用时机 401
    48.3 订单费用计算(C#) 402
    48.3.1 模型 402
    48.3.2 语法分析器 405
    第49章 依赖网络(Dependency Network) 408
    49.1 运行机制 408
    49.2 使用时机 410
    49.3 分析药剂(C#) 411
    49.3.1 语义模型 411
    49.3.2 语法分析器 413
    第50章 产生式规则系统(Production Rule System) 414
    50.1 运行机制 415
    50.1.1 规则链 415
    50.1.2 矛盾的推理 416
    50.1.3 规则结构里的模式 417
    50.2 使用时机 417
    50.3 俱乐部会员验证(C#) 418
    50.3.1 模型 418
    50.3.2 语法分析器 419
    50.3.3 演进DSL 420
    50.4 适任资格的规则:扩展俱乐部成员(C#) 421
    50.4.1 模型 422
    50.4.2 语法分析器 425
    第51章 状态机(State Machine) 426
    51.1 运行机制 426
    51.2 使用时机 428
    51.3 密室控制器(Java) 428
    第六部分 代码生成
    第52章 基于转换器的代码生成(Transformer Generation) 430
    52.1 运行机制 430
    52.2 使用时机 431
    52.3 密室控制器(Java生成C) 432
    第53章 基于模板的代码生成(Templated Generation) 435
    53.1 运行机制 435
    53.2 使用时机 436
    53.3 使用嵌套条件生成密室状态机(Velocity和Java生成C) 437
    第54章 嵌入助手(Embedment Helper) 442
    54.1 运行机制 443
    54.2 使用时机 443
    54.3 密室状态(Java和ANTLR) 444
    54.4 辅助类是否应该生成HTML(Java和Velocity) 446
    第55章 基于模型的代码生成(Model-Aware Generation) 448
    55.1 运行机制 448
    55.2 使用时机 449
    55.3 密室状态机(C) 449
    55.4 动态加载状态机(C) 455
    第56章 无视模型的代码生成(Model Ignorant Generation) 458
    56.1 运行机制 458
    56.2 使用时机 459
    56.3 使用嵌套条件的密室状态机(C) 459
    第57章 代沟(Generation Gap) 461
    57.1 运行机制 461
    57.2 使用时机 462
    57.3 根据数据模式生成类(Java和一些Ruby) 463
    参考文献 467
    模式清单 468
    速查表 470

    马丁·福勒(Martin Fowler),***软件开发大师,ThoughtWorks首席科学家。他是一位作家、演说者、咨询师和泛软件开发领域的意见领袖。他致力于改善企业级的软件设计,对优秀的设计以及支撑优秀设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP和UML等领域都有卓越贡献,著有《重构:改善既有代码的设计》《分析模式:可复用的对象模型》《领域特定语言》《企业应用架构模式》等经典著作。

    1.本书由世界软件开发大师Martin Fowler历时多年完成,堪称DSL领域的丰碑之作,书中充分介绍了在适用的场景中构建DSL的多种有效技。
    2.本书介绍的技巧可用于大多数现代面向对象语言。书中给出了许多采用Java和C#编写的示例,并精选了部分适合采用Ruby编写的示例。
    3.通过这部内容丰富、覆盖范围广泛的著作,开发人员能够掌握做出DSL重要决策所需的知识,并在恰当使用DSL时获得技术和业务上的显著收益。
    4.通过阅读本书,软件开发人员可全面的了解各种DSL及其构建方式,提高开发生产力和沟通能力。

    《领域特定语言》是领域特定语言(Domain-Specific Language,DSL)领域的丰碑之作,由世界级软件开发大师马丁·福勒(Martin Fowler)历时多年写作而成。
    全书共57章,分为6个部分,全面介绍了DSL概念、DSL常见主题、外部DSL主题、内部DSL主题、备选计算模型以及代码生成等内容,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。
    本书适合想要了解各种DSL及其构造方式,理解其通用原则、模式和适用场景,以提高开发生产力和沟通能力的软件开发人员阅读。

    1.本书由世界软件开发大师Martin Fowler历时多年完成,堪称DSL领域的丰碑之作,书中充分介绍了在适用的场景中构建DSL的多种有效技。 2.本书介绍的技巧可用于大多数现代面向对象语言。书中给出了许多采用Java和C#编写的示例,并精选了部分适合采用Ruby编写的示例。 3.通过这部内容丰富、覆盖范围广泛的著作,开发人员能够掌握做出DSL重要决策所需的知识,并在恰当使用DSL时获得技术和业务上的显著收益。 4.通过阅读本书,软件开发人员可全面的了解各种DSL及其构建方式,提高开发生产力和沟通能力。

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购