热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

计算机程序设计(套装共2册)

编号:
wx1203259512
销售价:
¥200.64
(市场价: ¥228.00)
赠送积分:
201
数量:
   
商品介绍

《计算机程序的构造和解释(JavaScript版)》本书主要介绍计算的核心思想,采用的方法是为计算建立一系列概念模型。主要内容包括:构造过程抽象,构造数据抽象,模块化、对象和状态,元语言抽象,寄存器机器里的计算等。采用JavaScript作为实例分析,但并不拘泥于对语言的解释,而是通过这种语言来阐述程序设计思想。第1章介绍了计算过程以及函数在程序设计中扮演的角色。第2章在第1章的基础上提供了将数据对象组合起来形成复合数据,进而构造抽象的方法。第3章介绍了一些帮助我们模块化构造大型系统的策略。第4章通过元语言抽象探究如何在一些语言的基础上开发新语言的技术。第5章从寄存器机器的角度出发,通过设计寄存器机器,开发一些机制,实现重要的程序设计结构,同时给出一种描述寄存器机器设计的语言。本书揭示计算机程序设计思想的实质是改变了人们的思考方式:从命令式的观点去研究知识的结构。因此,本书所阐述的设计思想不仅适用于计算机程序设计,而且适用于所有工程设计。

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

哈罗德?阿贝尔森(Harold Abelson)是MIT 1992年度MacVicar Faculty Fellow。在MIT电子工程和计算机科学系工作,得到过重要的计算机科学教育奖——IEEE计算机协会的Booth奖。
杰拉尔德·杰伊·萨斯曼(Gerald Jay Sussman),麻省理工学院电子工程系教授。他长期从事人工智能的研究,还从事过计算机语言、计算机体系结构和超大规模集成电路设计方面的工作(Scheme编程语言的发明人之一),并致力于用计算机语言来表达和解决各领域的实际问题。他是IEEE 、AAAI 、ACM、AAAS等协会的Fellow,曾获得ACM Karl Karlstrom杰出教育家奖、Bose教学奖等。
马丁·亨茨(Martin Henz),新加坡国立大学计算机科学系副教授。他曾是德国人工智能研究中心的科学家。他目前主要从事体验式学习的可扩展性的研究和教学。他因为在这方面的出色工作,而和Tobias Wrigstad将SICP这本书改编为JavaScript版本。他发表很多关于计算机科学和工程教育、编程语言等方面的论文。
托拜厄斯·瑞格斯塔德(Tobias Wrigstad),乌普萨拉大学信息技术系教授,主要从事编程语言、并行编程、软件工程、并发编程方面的研究工作。在教学方面,长期为本科生讲授命令与面向对象编程方法论的导论课程。
朱莉·萨斯曼(Julie Sussman),作家和编辑,同时使用自然语言和计算机语言写作。
克里斯·汉森(Chris Hanson)目前在Datera公司担任技术人员,他曾在麻省理工学院工作多年,是MIT/GNU Scheme系统的主要开发者。他还曾在谷歌工作10年。

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

《计算机程序的构造和解释(JavaScript版)》目  录
Structure and Interpretation of Computer Programs: JavaScript Edition
译者序
序言
1984年版《计算机程序的构造和解释》的原序
前言
1996年SICP第2版的前言
1984年SICP第1版的前言
致谢
1996年SICP第2版的致谢
第1章  构造函数抽象1
1.1  程序设计的基本元素2
1.1.1  表达式3
1.1.2  命名和环境4
1.1.3  运算符组合式的求值5
1.1.4  复合函数6
1.1.5  函数应用的代换模型8
1.1.6  条件表达式和谓词11
1.1.7  实例:用牛顿法求平方根14
1.1.8  函数作为黑箱抽象17
1.2  函数与它们产生的计算20
1.2.1  线性递归和迭代21
1.2.2  树形递归24
1.2.3  增长的阶28
1.2.4  求幂29
1.2.5  优选公约数31
1.2.6  实例:素数检测33
1.3  用高阶函数做抽象37
1.3.1  函数作为参数37
1.3.2  用lambda表达式构造函数41
1.3.3  函数作为通用的方法45
1.3.4  函数作为返回值48
第2章  构造数据抽象54
2.1  初识数据抽象56
2.1.1  实例:有理数的算术运算56
2.1.2  抽象屏障59
2.1.3  数据是什么意思?61
2.1.4  扩展练习:区间算术63
2.2  层次性数据和闭包性质65
2.2.1  序列的表示66
2.2.2  层次结构72
2.2.3  序列作为约定的接口76
2.2.4  实例:一个图形语言86
2.3  符号数据96
2.3.1  字符串96
2.3.2  实例:符号求导97
2.3.3  实例:集合的表示102
2.3.4  实例:Huffman编码树108
2.4  抽象数据的多重表示114
2.4.1  复数的表示115
2.4.2  带标签数据118
2.4.3  数据导向的程序设计和可
    加性121
2.5  包含通用型操作的系统127
2.5.1  通用型算术运算128
2.5.2  不同类型数据的组合131
2.5.3  实例:符号代数136
第3章  模块化、对象和状态146
3.1  赋值和局部状态146
3.1.1  局部状态变量147
3.1.2  引进赋值带来的利益152
3.1.3  引进赋值的代价155
3.2  求值的环境模型159
3.2.1  求值规则160
3.2.2  简单函数的应用163
3.2.3  框架作为局部状态的仓库165
3.2.4  内部定义169
3.3  用变动数据建模172
3.3.1  可变的表结构172
3.3.2  队列的表示179
3.3.3  表格的表示182
3.3.4  数字电路模拟器187
3.3.5  约束传播196
3.4  并发:时间是一个本质问题205
3.4.1  并发系统中时间的性质206
3.4.2  控制并发的机制209
3.5  流218
3.5.1  流作为延迟的表219
3.5.2  无穷流225
3.5.3  流计算模式的应用230
3.5.4  流和延迟求值238
3.5.5  函数式程序的模块化和对象
    的模块化242
第4章  元语言抽象246
4.1  元循环求值器248
4.1.1  求值器的核心部分249
4.1.2  组件的表示254
4.1.3  求值器的数据结构263
4.1.4  把求值器作为程序运行267
4.1.5  以数据为程序270
4.1.6  内部声明272
4.1.7  分离语法分析与执行275
4.2  惰性求值280
4.2.1  正则序和应用序280
4.2.2  采用惰性求值的解释器281
4.2.3  流作为惰性的表288
4.3  非确定性计算289
4.3.1  搜索和amb291
4.3.2  非确定性程序实例294
4.3.3  实现amb求值器300
4.4  逻辑程序设计309
4.4.1  演绎式信息检索311
4.4.2  查询系统如何工作320
4.4.3  逻辑程序设计
    是数理逻辑吗?326
4.4.4  实现查询系统330
第5章  寄存器机器里的计算350
5.1  寄存器机器的设计351
5.1.1  一种描述寄存器机器的语言352
5.1.2  机器设计的抽象355
5.1.3  子程序357
5.1.4  使用栈实现递归360
5.1.5  指令总结364
5.2  寄存器机器的模拟器365
5.2.1  机器模型366
5.2.2  汇编器369
5.2.3  指令和它们的执行函数372
5.2.4  监视机器执行378
5.3  存储分配和废料收集380
5.3.1  把存储器看作向量380
5.3.2  维持一种无穷存储的假象384
5.4  显式控制的求值器389
5.4.1  分派器和基本求值390
5.4.2  函数应用的求值393
5.4.3  块结构、赋值和声明400
5.4.4  求值器的运行401
5.5  编译405
5.5.1  编译器的结构407
5.5.2  组件的编译411
5.5.3  编译函数应用和返回语句417
5.5.4  指令序列的组合423
5.5.5  编译代码的实例426
5.5.6  词法地址433
5.5.7  将编译代码与求值器接口435
参考文献441
索引447
练习列表490

《软件灵活性设计:如何避免陷入编程困境》目 录

译者序推荐序前  言
致  谢
第 1 章   自然和设计中的灵活性 1
1.1 计算体系结构 3
1.2 灵活的智能组件 4
1.3 冗余和简并 7
1.4 探索行为 9
1.5 灵活性的成本 10
第 2 章   领域专用语言 13
2.1 组合器 13
2.1.1 函数组合器 14
2.1.2 组合器和形体构造 24
2.2 正则表达式 25
2.2.1 一种正则表达式组合语言 26
2.2.2 翻译器的实现 26
2.3 包装器 32
2.3.1 定制化包装器 34
2.3.2 实现定制器 35
2.3.3 适配器 36
2.4 抽象领域模型 37
2.4.1 单一化实现 38
2.4.2 领域模型分解 41
2.5 小结 46
第 3 章 算 术 主题 48
3.1 组合算术 48

XIII

3.1.1 一个简单的 ODE 积分器 48
3.1.2 调整算术运算符 50
3.1.3 组合运算 52
3.1.4 算术函数 57
3.1.5 组合器问题 60
3.2 可扩展的通用程序 63
3.2.1 通用运算 65
3.2.2 构建取决于顺序 68
3.2.3 实现通用程序 70
3.3 示例:自动微分 75
3.3.1 自动微分的工作原理 77
3.3.2 n 元函数的导数 81
3.3.3 一些技术细节 82
3.3.4 微分参数的文字函数 90
3.4 高效的通用程序 91
3.4.1 trie 91
3.4.2 缓存 96
3.5 高效的用户自定义类型 97
3.5.1 谓词的类型 97
3.5.2 谓词之间的关系 99
3.5.3 谓词调度关键字 99
3.5.4 示例:冒险游戏 101
3.6 小结 113
第 4 章 模式匹配 115
4.1 模式 115
4.2 项重写 117
4.2.1 代数中的段变量 118
4.2.2 规则系统的实现 120
4.2.3 旁白:魔术宏 122
4.2.4 有向模式调用 123
4.3 匹配器设计 124
4.3.1 编译模式 130
4.3.2 匹配变量 132
4.4 合一匹配 135

XIV

4.4.1 合一的工作原理 137
4.4.2 应用:类型推断 143
4.4.3 类型推断的工作原理 144
4.4.4 添加段变量— 一个实验 150
4.5 图上的模式匹配 155
4.5.1 将列表表示为图 155
4.5.2 实现图 156
4.5.3 图上的匹配 158
4.5.4 棋盘和可交换图形视图 160
4.5.5 棋步 164
4.5.6 实现图形匹配 167
4.6 小结 172
第 5 章 评 估 174
5.1 通用 eval/apply 解释器 174
5.1.1 eval 175
5.1.2 apply 182
5.2 具有非严格参数的程序 187
5.3 编译为可执行程序 194
5.4 探索行为 202
5.4.1 amb 203
5.4.2 实现 amb 205
5.5 探索潜在连续 210
5.5.1 作为非本地出口的连续 213
5.5.2 控制权的非本地转移 214
5.5.3 从连续到 amb 216
5.6 能力与责任 223
第 6 章 分 层 225
6.1 使用分层 225
6.2 分层的实现 226
6.2.1 分层数据 227
6.2.2 分层程序 229
6.3 分层算法 232
6.3.1 单位运算 233

XV

6.4 使用依赖项注释值 237
6.4.1 支持层 239
6.4.2 提供正当性 243
6.5 分层的前景 243
第 7 章   传   播 245
7.1 示例:到恒星的距离 246
7.2 传播机制 257
7.2.1 单元 257
7.2.2 传播器 259
7.3 多种不同的世界观 261
7.4 合并值 263
7.4.1 合并基值 263
7.4.2 合并支持值 264
7.4.3 合并值集 265
7.5 搜索可能的世界 266
7.5.1 依赖定向回溯 268
7.5.2 解决组合问题 273
7.6 传播导致简并 277
后   记 279 附录 A   支持软件 281 附录 B   Scheme 编程语言 283 参考文献 297

商品参数
基本信息
出版社 其他
ISBN 2200059000136
条码 2200059000136
编者 [美]哈罗德·阿贝尔森,[美]杰拉尔德·杰伊·萨斯曼,[德]马丁·亨茨,[瑞典]托拜厄斯·瑞格斯塔德等
译者
出版年月 2024-04-01 00:00:00.0
开本 16开
装帧 平装
页数 800
字数
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]