第1章 程序语言设计问题
1. 1 为什么学习程序语言
1. 2 程序语言简史
1. 2. 1 早期语言的发展
1. 2. 2 软件结构的演化
1. 2. 3 应用领域
1. 3 程序语言的角色
1. 3. 1 如何构成一种好语言
1. 3. 2 语言范例
1. 3. 3 语言标准
1. 3. 4 国际化
1. 4 编程环境
1. 4. 1 对语言设计的影响
1. 4. 2 环境框架
1. 4. 3 作业控制与过程语言
1. 5 C简介
1. 6 进一步阅读的建议
1. 7 习题
第2章 机器体系结构对语言的影响
2. 1 计算机的操作
2. 1. 1 计算机的硬件结构
2. 1. 2 固件计算机
2. 1. 3 翻译器和软件模拟计算机
2. 2 虚拟计算机和绑定时间
2. 2. 1 虚拟计算机和语言实现
2. 2. 2 虚拟机的层次
2. 2. 3 绑定和绑定时间
2. 2. 4 Java概览
2. 3 进一步阅读的建议
2. 4 习题
第3章 语言翻译问题
3. 1 编程语言语法
3. 1. 1 通用语法标准
3. 1. 2 语言的语法要素
3. 1. 3 主程序—子程序结构
3. 2 翻译的步骤
3. 2. 1 源程序的分析
3. 2. 2 目标程序的综合
3. 3 形式编译模式
3. 3. 1 BNF文法
3. 3. 2 有限状态自动机
3. 3. 3 Per1概述
3. 3. 4 下推自动机
3. 3. 5 常规的语法分析策略
3. 4 递归下降语法分析
3. 5 Pascal概述
3. 6 进一步阅读的建议
3. 7 习题
第4章 建立语言属性的模型
4. 1 语言的形式性质
4. 1. 1 Chomsky层次文法
4. 1. 2 不可判定性
4. 1. 3 算法复杂性
4. 2 语言的语义
4. 2. 1 属性文法
4. 2. 2 指称语义
4. 2. 3 ML概述
4. 2. 4 程序验证
4. 2. 5 代数数据类型
4. 3 进一步阅读的建议
4. 4 习题
第5章 基本数据类型
5. 1 类型和对象的属性
5. 1. 1 数据对象. 变量和常量
5. 1. 2 数据类型
5. 1. 3 声明
5. 1. 4 类型检查和类型转换
5. 1. 5 赋值和初始化
5. 2 标量数据类型
5. 2. 1 数字数据类型
5. 2. 2 枚举类型
5. 2. 3 布尔类型
5. 2. 4 字符型
5. 3 复合数据类型
5. 3. 1 字符串
5. 3. 2 指针和程序员构造的数据对象
5. 3. 3 文件和输人输出
5. 4 FORTRAN概述
5. 5 进一步阅读的建议
5. 6 习题
第6章 封装
6. 1 结构化数据类型
6. 1. 1 结构化数据对象和数据类型
6. 1. 2 数据结构类型规范
6. 1. 3 数据结构类型的实现
6. 1. 4 数据结构的声明和类型检查
6. 1. 5 向量和数组
6. 1. 6 记录
6. 1. 7 列表
6. 1. 8 集合
6. 1. 9 可执行数据对象
6. 2 抽象的数据类型
6. 2. 1 数据类型概念的发展
6. 2. 2 信息隐藏
6. 3 通过子程序实现封装
6. 3. 1 作为抽象操作的子程序
6. 3. 2 子程序定义和调用
6. 3. 3 作为数据对象的子程序定义
6. 4 类型定义
6. 4. 1 类型相同
6. 4. 2 带有参数的类型定义
6. 5 C十十概述
6. 6 进一步阅读的建议
6. 7 习题
第7章 继承
7. 1 再论抽象数据类型
7. 2 继承
7. 2. 1 派生类
7. 2. 2 方法
7. 2. 3 抽象类
7. 2. 4 Smalltalk概述
7. 2. 5 对象和消息
7. 2. 6 有关抽象的概念
7. 3 多态
7. 4 进一步阅读的建议
7. 5 习题
第8章 顺序控制
8. 1 隐式的和显式的顺序控制
8. 2 表达式中的顷序
8. 2. 1 确良树结构表示
8. 2. 2 驶执行时的表示
8. 3 语句之间的顺序控制
8. 3. 1 基本语句
8. 3. 2 结构化的顺序控制
8. 3. 3 基本程序
8. 4 非算术表达式的顺序化
8. 4. 1 Pro1og简介
8. 4. 2 模式匹配
8. 4. 3 合一
8. 4. 4 回溯
8. 4. 5 归结
8. 5 进一步阅读的建议
8. 6 习题
第9章 子程序控制
9. 1 子程序顺序控制
9. 1. 1 简单的Call—Return子程序
9. 1. 2 递归子程序
9. 1. 3 Pascal的forward声明
9. 2 数据控制的属性
9. 2. 1 命名和引用环境
9. 2. 2 静态和动态作用域
9. 2. 3 块结构
9. 2. 4 局部数据和局部引用环境
9. 3 参数传递
9. 3. 1 实际和形式参数
9. 3. 2 参数传递的方法
9. 3. 3 参数传递语义
9. 3. 4 参数传递的实现
9. 4 显式共同环境
9. 4. 1 动态域
9. 4. 2 静态域和块结构
9. 5 参考资料
9. 6 习题
第10章 存储管理
10. l 需要存储的元素
10. 2 程序员和系统控制的存储管理
lo. 3 静态的存储管理
10. 4 堆的存储管理
10. 4. 1 UDP概况
10. 4. 2 固定大小的单元
10. 4. 3 可变长的单元
10. 5 进一步阅读的建议
10. 6 习题
第11章 分布式处理
11. 1 子程序控制的变体
11. 1. 1 异常和异常处理程序
11. 1. 2 协同程序
11. 1. 3 子程序调度
11. 2 并行程序设计
11. 2. 1 并发运行
11. 2. 2 保护命令
11. 2. 3 Ada简介
11. 2. 4 任务
11. 2. 5 任务的同步
11. 3 硬件的发展
11. 3. 1 处理器设计
11. 3. 2 系统设计
11. 4 软件体系结构
11. 4. 1 持久性数据和事务系统
11. 4. 2 网络和客户—g匠务器计算
11. 5 进一步阅读的建议
11. 6 习题
第12章 网络程序设计
12. 1 桌面出版
12. 1. 1 LATEX文档处理
12. 1. 2 WYSIWYG编辑器
12. 1. 3 Postscript
12. 1. 4 Postscritp虚拟机
12. 2 万维网
12. 2. 1 互联网
12. 2. 2 CGI脚本
12. 2. 3 Java小应用程序
12. 2. 4 XML
12. 3 进一步阅读的建议
12. 4 习题
附录A 语言概要
A. 1 ADA
A. 2 C
A. 3 C++
A. 4 FORTRAN
A. 5 JAVA
A. 6 LISP
A. 7 ML
A. 8 PASCAL
A. 9 PERL
A. 10 Postscript语言
A. 11 Prolog
A. 12 Smalltalk
A. 13 进一步阅读的建议
参考文献