《软件灵活性设计:如何避免陷入编程困境》-克里斯·汉森
本书主要介绍如何利用数学符号操作、基于规则的系统和通用程序构建灵活的软件,并利用依赖系统跟踪、解释和控制回溯。第1章通过对编程哲学的介绍提出灵活性的概念。第2章探讨如何用一些普遍适用的方法构建易于扩展的系统。第3章介绍谓词分派的通用程序。第4章介绍符号模式匹配,首先启用术语重写系统,然后通过合一展示类型推理的实现。第5章探讨解释和编译。第6章展示如何构造分层数据和分层程序的系统,并用各种元数据注释其中的数据项。第7章引入传播这一概念来摆脱计算机语言的面向表达式范式。