内容介绍
本书曾是美国麻省理工学院计算机科学专业的入门课程教材之一, 从理论上讲解计算机程序的创建、 执行和研究。 主要内容包括:构造过程抽象,构造数据抽象,模块化、 对象和状态,元语言抽象,寄存器机器里的计算等。
计算机程序的构造和解释(原书第2版)(典藏版)
目录
●出版者的话序第2版前言第1版前言致谢第1章 构造过程抽象11.1 程序设计的基本元素31.1.1 表达式31.1.2 命名和环境51.1.3 组合式的求值61.1.4 复合过程71.1.5 过程应用的代换模型91.1.6 条件表达式和谓词111.1.7 实例:采用牛顿法求平方根141.1.8 过程作为黑箱抽象171.2 过程及其产生的计算201.2.1 线性的递归和迭代211.2.2 树形递归241.2.3 增长的阶281.2.4 求幂291.2.5 优选公约数321.2.6 实例:素数检测331.3 用高阶函数做抽象371.3.1 过程作为参数371.3.2 用lambda构造过程411.3.3 过程作为一般性的方法441.3.4 过程作为返回值48第2章 构造数据抽象532.1 数据抽象导引552.1.1 实例:有理数的算术运算552.1.2 抽象屏障582.1.3 数据意味着什么602.1.4 扩展练习:区间算术622.2 层次性数据和闭包性质652.2.1 序列的表示662.2.2 层次性结构722.2.3 序列作为一种约定的界面762.2.4 实例:一个图形语言862.3 符号数据962.3.1 引号962.3.2 实例:符号求导992.3.3 实例:集合的表示1032.3.4 实例:Huffman编码树1092.4 抽象数据的多重表示1152.4.1 复数的表示1162.4.2 带标志数据1192.4.3 数据导向的程序设计和可加性1222.5 带有通用型操作的系统1282.5.1 通用型算术运算1292.5.2 不同类型数据的组合1322.5.3 实例:符号代数138第3章 模块化、对象和状态1493.1 赋值和局部状态1493.1.1 局部状态变量1503.1.2 引进赋值带来的利益1543.1.3 引进赋值的代价1573.2 求值的环境模型1623.2.1 求值规则1633.2.2 简单过程的应用1653.2.3 将框架看作局部状态的展台1673.2.4 内部定义1713.3 用变动数据做模拟1733.3.1 变动的表结构1733.3.2 队列的表示1803.3.3 表格的表示1833.3.4 数字电路的模拟器1883.3.5 约束的传播1983.4 并发:时间是一个本质问题2063.4.1 并发系统中时间的性质2073.4.2 控制并发的机制2103.5 流2203.5.1 流作为延时的表2203.5.2 无穷流2263.5.3 流计算模式的使用2323.5.4 流和延时求值2413.5.5 函数式程序的模块化和对象的模块化245第4章 元语言抽象2494.1 元循环求值器2514.1.1 求值器的内核2524.1.2 表达式的表示2554.1.3 求值器数据结构2604.1.4 作为程序运行求值器2644.1.5 将数据作为程序2664.1.6 内部定义2694.1.7 将语法分析与执行分离2734.2 Scheme的变形—惰性求值2764.2.1 正则序和应用序2774.2.2 一个采用惰性求值的解释器2784.2.3 将流作为惰性的表2844.3 Scheme的变形—非确定性计算2864.3.1 amb和搜索2874.3.2 非确定性程序的实例2904.3.3 实现amb求值器2964.4 逻辑程序设计3044.4.1 演绎信息检索3064.4.2 查询系统如何工作3154.4.3 逻辑程序设计是数理逻辑吗3214.4.4 查询系统的实现324第5章 寄存器机器里的计算3435.1 寄存器机器的设计3445.1.1 一种描述寄存器机器的语言3465.1.2 机器设计的抽象3485.1.3 子程序3515.1.4 采用堆栈实现递归3545.1.5 指令总结3585.2 一个寄存器机器模拟器3595.2.1 机器模型3605.2.2 汇编程序3645.2.3 为指令生成执行过程3665.2.4 监视机器执行3725.3 存储分配和废料收集3745.3.1 将存储看作向量3745.3.2 维持一种无穷存储的假象3785.4 显式控制的求值器3835.4.1 显式控制求值器的内核3845.4.2 序列的求值和尾递归3885.4.3 条件、赋值和定义3915.4.4 求值器的运行3935.5 编译3975.5.1 编译器的结构3995.5.2 表达式的编译4025.5.3 组合式的编译4075.5.4 指令序列的组合4125.5.5 编译代码的实例4155.5.6 词法地址4225.5.7 编译代码与求值器的互连425参考文献431练习表437索引439
内容介绍
本书曾是美国麻省理工学院计算机科学专业的入门课程教材之一, 从理论上讲解计算机程序的创建、 执行和研究。 主要内容包括:构造过程抽象,构造数据抽象,模块化、 对象和状态,元语言抽象,寄存器机器里的计算等。
摘要
第2版前言软件很可能确实与其他任何东西都不同,它的本意就是被抛弃:这一观点就是总将它看作一个肥皂泡吗?—Alan J. Perlis自1980年以来,本书的材料就一直在MIT作为计算机科学入门课程的基础。在本书第1版出版之前,我们已经用这一材料教了4年课,而到第2版出版,时间又过去了12年。我们非常高兴地看到这一工作得到广泛认可,并被结合到其他一些教材中。我们已经看到我们的学生掌握了本书中的思想和程序,并将它们构筑到新的计算机系统或者语言的核心里—我们的学生已经变成了我们的创造者。我们非常幸运能有如此有能力的学生和如此有建树的创造者。在准备这一新版本的过程中,我们采纳了成百条澄清性建议,它们来自我们自己的教学经验,也来自MIT和其他地方的同行们的评述。我们重新设计了本书里大部分主要程序设计系统,包括通用型算术系统、解释器、寄存器机器模拟器和编译器,也重写了所有的程序实例,以保证任何符合IE......
微信支付
支付宝
扫一扫购买