首页>参考读物>计算机科学与技术>软件工程及软件方法学

软件灵活性设计:如何避免陷入编程困境
作者 : [美]克里斯·汉森(Chris Hanson) 杰拉尔德·杰伊·萨斯曼(Gerald Jay Sussman) 著
译者 : 谢学说 王子纯 王刚 李涛 译
出版日期 : 2024-03-22
ISBN : 978-7-111-74704-8
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 :
开本 : 16
原书名 : Software Design for Flexibility:How to Avoid Programming Yourself into a Corner
原出版社: MIT Press
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

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

图书特色

上架指导

计算机科学及应用

封底文字

这本书不是调研,也不是教程——它是大师之作。在每一章中,你可以看到两位专家通过逐步开发一大块工作代码来演示一种先进的技术,他们一边演示一边解释每一个步骤,偶尔暂停一下,指出陷阱或消除限制。本书中的观点丰富而深刻,密切关注讨论环节和代码部分将会受益匪浅。 
—— Guy L. Steele Jr.
计算机科学家,Scheme的设计者,Common Lisp的作者

大多数系统必须随着时间的推移保持正常运行的状态。本书对预测性动态调度、元数据和其他构建灵活系统的技术进行了探索,这些系统可以在不中断的情况下得到增强。                                   
—— Rich Hickey
Clojure的设计者和Datomic的架构师

本书引入了一种改变游戏规则的增量式编程。增量式编程允许对现有设计进行更改,不需要程序员像杂技演员一样紧张而忙碌。作者优雅、清晰、细心地指出了软件设计中长期被忽视的问题,并提供了Scheme友好的、聪明的解决方案。阅读本书是一种享受!
—— Dan Friedman
美国印第安纳大学计算机科学教授,The Little Prover的作者

本书源于麻省理工学院的课程讲义,结合两位作者多年的编程经验,描述了用于构建人工智能应用以及编译器等复杂系统的有效技术。这些技术将帮助程序员灵活地建立系统,了解其中的依赖关系,从而避免陷入编程困境。本书通过以下方式探讨了增强灵活性的方法:
使用组合器组织系统,以组合混合和匹配部分,范围从小函数到整个算术,且具有标准化的接口。
用独立的注释层(如度量单位或来源)扩充数据。
使用合一或传播将部分信息的独立片段组合在一起。
通过领域模型、规则系统、模式匹配、传播和依赖导向回溯,将控制结构与问题域分离。
使用动态可扩展的评估器扩展编程语言。

作者简介

[美]克里斯·汉森(Chris Hanson) 杰拉尔德·杰伊·萨斯曼(Gerald Jay Sussman) 著:克里斯·汉森(Chris Hanson)目前在Datera公司担任技术人员,他曾在麻省理工学院工作多年,是MIT/GNU Scheme系统的主要开发者。他还曾在谷歌工作10年。

杰拉尔德·杰伊·萨斯曼(Gerald Jay Sussman)麻省理工学院松下电气工程教授。自1964年以来,他一直参与麻省理工学院的人工智能研究。他的研究重点是了解科学家和工程师使用的问题解决策略,目标是自动化部分过程并将其形式化,以提供更有效的科学和工程教育方法。他还从事计算机语言、计算机体系结构和VLSI设计方面的工作。他是IEEE终身会士、NAE院士、AAAI会士、ACM会士、 AAAS会士。

图书目录

教学资源推荐
作者: 韩万江
作者: (美)Jeffrey L. Whitten;Lonnie D. Bentley 著
作者: 韩万江 姜立新 等编著 宋茂强 审
参考读物推荐
作者: (美)Lenny Delligatti 著
作者: Neil S.Potter,Mary E.Sakry