乐正

Actions speak louder than words.

计算机程序的构造和解释-习题解答

目标是完成《计算机程序的构造和解释》一书所有的习题。会不断更新,希望在年底之前能完成。

第一章: 构造过程抽象

1.1 程序设计的基本元素

1.2 过程与它们所产生的计算

1.3 用高阶函数做抽象

第二章: 构造数据抽象

2.1 数据抽象导引

2.2 层次性数据和闭包性质

2.3 符号数据

2.4 抽象数据的多重表示

2.5 带有通用型操作的系统

第三章: 模块化、对象和状态

3.1 赋值和局部状态

3.2 求值的环境模型

3.3 用变动数据做模拟

3.4 并发:时间是一个本质问题

3.5 流

  • 3.5.1 流作为延时的表(练习 3.50练习 3.51练习 3.52)
  • 3.5.2 无穷流(练习 3.53练习 3.54练习 3.55练习 3.56练习 3.57练习 3.58练习 3.59练习 3.60,练习 3.61,练习 3.62)
  • 3.5.3 流计算模式的使用(练习 3.63,练习 3.64,练习 3.65,练习 3.66,练习 3.67,练习 3.68,练习 3.69,练习 3.70,练习 3.71,练习 3.72,练习 3.73,练习 3.74,练习 3.75,练习 3.76)
  • 3.5.4 流和延时求值(练习 3.77,练习 3.78,练习 3.79,练习 3.80)
  • 3.5.5 函数式程序的模块化和对象的模块化(练习 3.81,练习 3.82)

第四章: 元语言抽象

4.1 元循环求值器

4.2 Scheme 的变形 —— 惰性求值

  • 4.2.1 正则序和应用序(练习 4.25,练习 4.26)
  • 4.2.2 一个采用惰性求值的解释器(练习 4.27,练习 4.28,练习 4.29,练习 4.30,练习 4.31)
  • 4.2.3 将流作为惰性的表(练习 4.32,练习 4.33,练习 4.34)

4.3 Scheme 的变形 —— 非确定性求值

  • 4.3.1 amb 和搜索(练习 4.35,练习 4.36,练习 4.37)
  • 4.3.2 非确定性程序的实例(练习 4.38,练习 4.39,练习 4.40,练习 4.41,练习 4.42,练习 4.43,练习 4.44,练习 4.45,练习 4.46,练习 4.47,练习 4.48,练习 4.49)
  • 4.3.3 实现 amb 求值器(练习 4.50,练习 4.51,练习 4.52,练习 4.53,练习 4.54)

4.4 逻辑程序设计

  • 4.4.1 演绎信息检索(练习 4.55,练习 4.56,练习 4.57,练习 4.58,练习 4.59,练习 4.60,练习 4.61,练习 4.62,练习 4.63)
  • 4.4.2 查询系统如何工作
  • 4.4.3 逻辑程序设计是数理逻辑吗(练习 4.64,练习 4.65,练习 4.66,练习 4.67,练习 4.68,练习 4.69)
  • 4.4.4 查询系统的实现(练习 4.70,练习 4.71,练习 4.72,练习 4.73,练习 4.74,练习 4.75,练习 4.76,练习 4.77,练习 4.78,练习 4.79)

第五章: 寄存器机器里的计算

5.1 寄存器机器的设计(练习 5.1)

  • 5.1.1 一种描述寄存器机器的语言(练习 5.2)
  • 5.1.2 机器设计的抽象(练习 5.3)
  • 5.1.3 子程序
  • 5.1.4 采用堆栈实现递归(练习 5.4,练习 5.5,练习 5.6)
  • 5.1.5 指令总结

5.2 一个寄存器机器模拟器(练习 5.7)

  • 5.2.1 机器模型
  • 5.2.2 汇编程序(练习 5.8)
  • 5.2.3 为指令生成执行过程(练习 5.9,练习 5.10,练习 5.11,练习 5.12,练习 5.13)
  • 5.2.4 监视机器执行(练习 5.14,练习 5.15,练习 5.16,练习 5.17,练习 5.18,练习 5.19)

5.3 存储分配和废料收集

  • 5.3.1 将存储看作向量(练习 5.20,练习 5.21,练习 5.22)
  • 5.3.2 维持一种无穷存储的假象

5.4 显式控制的求值器

  • 5.4.1 显式控制求值器的内核
  • 5.4.2 序列的求值和尾递归
  • 5.4.3 条件、赋值和定义(练习 5.23,练习 5.24,练习 5.25)
  • 5.4.4 求值器的运行(练习 5.26,练习 5.27,练习 5.28,练习 5.29,练习 5.30)

5.5 编译

  • 5.5.1 编译器的结构(练习 5.31,练习 5.32)
  • 5.5.2 表达式的编译
  • 5.5.3 组合式的编译
  • 5.5.4 指令序列的组合
  • 5.5.5 编译代码的实例(练习 5.33,练习 5.34,练习 5.35,练习 5.36,练习 5.37,练习 5.38)
  • 5.5.6 词法地址(练习 5.39,练习 5.40,练习 5.41,练习 5.42,练习 5.43,练习 5.44)
  • 5.5.7 编译代码和求值器的互连(练习 5.45,练习 5.46,练习 5.47,练习 5.48,练习 5.49,练习 5.50,练习 5.51,练习 5.52)

技术

« 机器学习基础 sicp-ex1-19 »

Comments