《程序设计语言概念和结构(第二版)》目录

第一部分 引言

第1章 程序设计语言的位置
1.1 走向高级语言
1.2 规模的问题
1.3 程序设计风范
1.4 语言实现:在裂谷上架桥
练习
引文注记

2章语言的描述:语法结构
2.1 表达式的记法
2.2 抽象语法树
2.3 词语法
2.4 上下文无关文法
2.5 表达式的文法
2.6 文法的各种变形
练习
引文注记

第二部分 命令式程序设计

第3章 语句:结构化程序设计
3.1 结构化程序设计的必要性。
3.2 语法制导的控制流
3.3 设计考虑:语法
3.4 处理循环中的特殊情况
3.5 使用不变量做程序设计
3.6 部分正确性的证明规则
3.7 C语言的控制流
练习
引文注记

4章类型:数据表示
4.1 类型的作用
4.2 基本类型
4.3 数组:元素的序列
4.4 记录:命名的域
4.5 联合和变体记录
4.6 集合
4.7指针:效率和动态存储存储分配
4.8 两种字符串表
4.9 类型和错误检查
练习
引文注记

5章过程活动
5.1 过程简介
5.2 参数传递方式
5.3 名字的作用域规则
5.4 源文本中的嵌套作用域
5.5 活动记录
5.6 词法作用域:C语言的过程
5.7 词法作用域:嵌套过程和Pascal
练习
引文注记

第三部分 面向对象程序设计

第6章 数据和操作
6.1 程序构造的结构
6.2 信息隐藏
6.3 使用模块的程序设计
6.4 模块和用户定义类型
6.5 C++ 的类声明
6.6 C++ 的动态存储分配
6.7 模板:参数化类型
6.8 C++ 对象的实现
练习
引文注记

7章 面向对象程序设计
7.1 什么是对象
7.2 面向对象的思想
7.3 继承
7.4 C++ 语言做面向对象的程序设计
7.5 一个扩充的C++ 例子
7.6 派生类和信息隐藏
7.7 Smalltalk中的对象
7.8 Smalltalk对象的self
练习
引文注记

第四部分 函数式程序设计
8章函数式程序设计的要素
8.1 一个很小的表达式语言
8.2 类型:值和运算
8.3 函数声明
8.4 表达式的求值方式
8.5 词法作用域
8.6 类型检查
练习
引文注记

9章一个有类型语言中的函数式程序设计
9.1 表的探查
9.2 函数的分情况声明
9.3 函数作为一阶的值
9.4 ML:隐含类型
9.5 数据类型
9.6 ML的异常处理
9.7 Standard ML里实现Little Quilt
练习
引文注记

10章表的函数式程序设计
10.1 Scheme,一种Lisp方言
10.2 表的结构
10.3 表的操作
10.4 启发性的实例:微分
10.5 表达式化简
10.6 表的存储管理
练习
引文注记

第五部分 其他风范

11章 逻辑式程序设计
11.1 用关系做计算
11.2 Prolog初步
11.3 Prolog的数据结构
11.4 程序设计技术
11.5 Prolog的控制
11.6
练习
引文注记

12章 并发程序设计导引
12.1 硬件的并行性
12.2 流:隐式的同步
12.3 作为交错的并发性
12.4 进程的活性性质
12.5 共享数据的安全访问
12.6 Ada中的并发性
12.7 共享变量的同步访问
练习
引文注记

第六部分 语言的描述

13章 语义方法
13.1 综合属性
13.2 属性文法
13.3 自然语义
13.4 指称语义
13.5 一个Scheme计算器
13.6 词法作用域中的lambda表达式
13.7 一个解释器
13.8 一个扩充:递归函数
练习
引文注记

14章静态类型和Lambda演算
14.1 lambda演算中的相等
14.2 再论替换
14.3 lambda项的计算
14.4 作为lambda-项的程序设计结构
14.5 带类型的lambda演算
14.6 多态类型
练习
引文注记

15章语言概览
15.1 Pascal:一个教学语言
15.2 C:系统程序设计
15.3 C++:多种程序设计风格
15.4 Smalltalk语言
15.5 Standard ML
15.6 Scheme:一种Lisp方言
15.7 Prolog
练习
引文注记

参考文献

索引