产生式编程:方法、工具与应用

产生式编程:方法、工具与应用
作 者: Krzysztof Czarnecki Ulrich Eisenecker 梁海华 梁海华
出版社: 中国电力出版社
丛编项: 开发大师系列
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 高级程序语言设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  KRZYSZTOF CZARNECKI是德国乌尔姆DAIMLERCHRYSLER研究和技术中心的一位研究员和顾问。他在对华盛顿REDMOND的施乐PALO ALTO研究中心和微软研究中心进行访问研究期间,取得了面向方面编辑和意图编辑的第一手经验。他在萨克拉门托的加利福尼亚州立大学获得了计算机科学的学士学位,在德国的LLMENAU大学获得了计算机科学的硕士学位和博士学位。ULRICH W·EISENECKER是ZWEIBRUCKEN的凯泽斯劳滕应用科学大学的一位计算机科学教授,在那里他主管组件和窗口接口部门。在大学职业生涯以前,他在工业界度过了大约十年时间。他是德国IT杂志《OBJEKTSPEKTRUM》的一种组件软件专辑增刊的编辑,他还为之撰写了一个C++专栏。他已经发表了一百多篇文章,并且经常在国内和国际IT会议上讲演。

内容简介

“本书为我们作了一个对产生式编程的精彩介绍,它注定会成为一部经典之作。作者精心讲述了领域特定语言和产生式编程之间通常为人所忽视的联系,并把这种联系作为未来开发的一个推动因素。广大的开发人员完全可以把书中丰富而且实用的方法当做可以立即应用的首要步骤……而且,无论是使用现存系统,还是为正在出现的新产生式技术而做准备,它们都是价值不凡的。” ——CharlesSimonvi,微软研究院总构架师、意图编程的发明者 “本书围绕‘统一那些本来支离破碎的东西’这个原则,逐步展开了一些令人印象深刻的主题,主要包括领域工程和元程序设计。关键是要理解,本书并不是某种新颖的变换,也不仅仅是对某些值得关注的边角技术的阐述:它是一种更加广泛的启蒙运动的先锋官,这种运动打开了一扇通向一个新时代的大门。” ——摘自由IamesCoplien所作的前言,Coplien是朗讯贝尔实验室中一位声名卓著的技术专家 产生式编程(Generative Programming,GP)为应用程序开发人员提出了十分美妙的承诺。它使“从‘一种一个’的软件系统向自动制作软件的各不相同的变体发展”这种思路变得十分真实可信。简单地说,GP以“确定软件开发中自动化的好处”为中心。本书包括了将帮助你设计和实现一个系统族的“正确”组件,以及自动组合组件的方法和工具。这里提出的方法可以应用到所有的商用开发中——从类和过程的层次上的“微观编程”(programming in the small),到“宏观编程”(programming in the large),就是说开发大型系统的家族。本书是对这种正在浮现的规程的完整指导和参考。它提供了对以下这些关键技术和主题的深入探讨: ●领域工程 ●特征建模 ●泛型编程 ●面向方面的编程 ●使用C++的模板元程序设计 ●产生器 ●微软的意图编程 使用本书你将会学习到如何组合这些技术,以及(也是更加重要的)如何在实践中运用它们。书中包括来自三个不同领域的完整的案例研究:程序设计领域(容器数据结构)、业务领域(银行业务)以及科学计算(矩阵计算)。Krzysztof Czarnecki是德国乌尔姆Daimler Chrysler研究和技术中心的一位研究员和顾问。他在对华盛顿Redmond的施乐Palo Alto研究中心和微软研究中心进行访问研究期间,取得了面向方面编程和意图编程的第一手经验。他在萨克拉门托的加利福尼亚州立大学获得了计算...

图书目录

前 言

致 谢

第1章 本书所讨论的主要内容

1. 1 从手工作坊到自动装配线

1. 2 产生式编程

1. 3 利益和可应用性

第一部分 分析和设计方法与技术

第2章 领域工程

2. 1 为什么本章值得一读

2. 2 什么是领域工程

2. 3 领域分析

2. 4 领域设计和领域实现

2. 5 应用工程

2. 6 产品线实践

2. 7 关键领域工程概念

2. 8 领域分析和领域工程方法概览

2. 9 领域工程与相关方法

2. 10 历史笔记

2. 11 小结

第3章 领域工程和面向对象的分析与设计

3. 1 为什么本章值得一读

3. 2 OO技术与重用

3. 3 领域工程和OOA/D方法之间的关系

3. 4 整合领域工程和OOA/D方法的方面

3. 5 横向方法与纵向方法的比较

3. 6 选择的方法

第4章 特征建模

4. 1 为什么本章值得一读

4. 2 重新思考特征

4. 3 特征建模

4. 4 特征模型

4. 5 特征图和其他建模符号与实现技术之间的关系

4. 6 实现约束

4. 7 对特征建模的工具支持

4. 8 与特征图有关的常见问题

4. 9 特征建模过程

第5章 产生式编程的过程

5. 1 为什么本章值得一读

5. 2 产生式领域模型

5. 3 在产生式编程中的主要开发步骤

5. 4 为产生式编程改编领域工程

5. 5 领域特定语言

5. 6 DEMRAL:用于产生式编程的领域工程方法例子

5. 7 DEMRAL大纲

5. 8 领域分析

5. 9 领域设计

5. 10 领域实现

第二部分 实现技术

第6章 泛型编程

6. 1 为什么本章值得一读

6. 2 什么是泛型编程

6. 3 通用编程与产生式编程的对比

6. 4 泛型参数

6. 5 参数化与子类型多态的对比

6. 6 绑定与非绑定多态

6. 7 初观多态

6. 8 参数化组件

6. 9 参数化编程

6. 10 C++标准模板库

6. 11 泛型方法学

6. 12 历史笔记

第7章 基于模板面向组件的编程技术

7. 1 为什么本章值得一读

7. 2 系统配置的类型

7. 3 C++对动态配置的支持

7. 4 C++对静态配置的支持

7. 5 禁止某种模板实例化

7. 6 静态参数与动态参数的对比

7. 7 基于参数化继承的封装器

7. 8 基于参数化继承的模板方法

7. 9 参数化绑定类型

7. 10 多个组件的一致参数化

7. 11 组件之间的静态交互

第8章 面向方面的编程技术

8. 1 为什么本章值得一读

8. 2 什么是面向方面的编程

8. 3 面向方面的分解方法

8. 4 方面是怎样产生的

8. 5 组合机制

8. 6 怎样使用程序设计语言表达方面

8. 7 AOP编程的实现技术

8. 8 最后评论

第9章 产生器

9. 1 为什么本章值得一读

9. 2 什么是产生器

9. 3 软件开发的转化模型

9. 4 构造产生器的技术

9. 5 组合产生器与转换产生器的对比

9. 6 转换的种类

9. 7 转换系统

9. 8 选择用来产生的方法

第10章 使用C++进行静态元程序设计

10. 1 为什么本章值得一读

10. 2 什么是元程序设计

10. 3 元程序设计一览

10. 4 静态元程序设计

10. 5 作为一种二级语言的C什

10. 6 静态层的功能含义

10. 7 模板元程序设计

10. 8 模板元函数

10. 9 元函数作为其他元函数的参数和返回值

10. 10 重新表达元信息

10. 11 编译时控制结构

10. 12 代码生成

10. 13 例子:使用静态执行循环来测试元函数

10. 14 C++中的部分求值

10. 15 部分模板特化的变通方法

10. 16 模板元程序设计的问题

10. 17 历史笔记

第11章 意图编程

11. 1 为什么本章值得一读

11. 2 什么是意图编程

11. 3 IP背后的技术

11. 4 在IP编程环境中工作

11. 5 高级主题

11. 6 IP背后的哲理

11. 7 小结

第三部分 应用例子

第12章 链表容器

12. 1 为什么本章值得一读

12. 2 概观

12. 3 领域分析

12. 4 领域设计

12. 5 实现组件

12. 6 手工装配

12. 7 指定链表

12. 8 产生器

12. 9 扩展

第13章 银行账户

13. 1 为什么本章值得一读

13. 2 成功的程序设计商店

13. 3 设计模式. 框架和组件

13. 4 领域工程和产生式程序设计

13. 5 特征建模

13. 6 架构设计

13. 7 实现组件

13. 8 可配置的类层次

13. 9 设计一种领域特定的语言

13. 10 银行账户产生器

13. 11 测试产生器和它们的制品

第14章 产生式矩阵计算库

14. 1 为什么本章值得一读

14. 2 为什么要进行矩阵计算

14. 3 领域分析

14. 4 领域设计和实现

第四部分 附 录

附录A 概念建模

A. 1 什么是概念

A. 2 概念的理论

A. 3 与概念有关的重要问题

A. 4 概念建模, 面向对象和软件重用

附录B 用于Smalltalk的实例特化扩展协议

附录C 用于在Smalltalk中附加一个listener对象的协议

附录D 矩阵计算术语的词汇表

附录E 用于求解依赖性表格的元函数

术语表

参考文献