程序设计语言原理
- 引言(2次课)
- 简单发展史
- 语言与抽象机器
- 计算的范型(paradigms)
- 语言的实现:编译和解释
- 语言作用的演化
- 语言的设计和评价
- 程序设计语言的定义(2次课)
- 语言定义的问题
- 词法和语法
- 语法的形式描述
- 朴素的语义描述
- 操作语义
- 前后条件和Hoare公理
- 指称语义
- 进一步的问题
- 对象和环境(2次课)
- 数据和类型
- 程序中对象:创建、销毁和使用
- 变量:命名和性质约束
- 作用域
- 名字分类
- 指针和引用
- 别名
- 其他相关问题
- 类型和数据抽象(3次课)
- 类型机制及其作用
- 类型检查
- 类型等价和类型相容
- 类型转换和类型强制
- 基本类型
- 类型构造
- 数据类型与存储
- 其他类型机制
- 多态性
- 类型推理
- 基本操作和控制(2次课)
- 表达式和语句
- 表达式的构造
- 求值过程
- 基本语句
- 控制结构
- 非确定性
- 输入输出
- 控制抽象(3次课)
- 子程序抽象
- 子程序的定义
- 子程序活动和局部环境
- 静态实现模型
- 一般实现模型
- 调用序列和在线展开
- 参数机制
- 泛型子程序
- 异常处理
- 其他子程序问题
- 程序组织:模块(2次课)
- 程序组织问题:历史发展
- 模块和模块化
- 作用域和访问控制
- 接口和实现
- 模块和数据抽象
- 在C语言里模拟数据抽象和模块
- 泛型模块
- 面向对象(3次课)
- 为什么需要面向对象?
- 面向对象语言的发展
- 面向对象的基本概念
- 封装和继承
- 初始化和终结处理
- 动态方法约束
- C++与动态约束
- 多重继承
- 泛型类型
- 指向方法的指针
- 并行性(3次课)
- 并行处理的需要
- 简单历史
- 并发程序的基本问题
- 并行程序设计基础
- 进程与线程
- 共享存储器模型
- 消息传递模型
- 进程间通讯
- 函数式程序设计和语言(选)
- 逻辑程序设计和语言(选)
- 语言的其他问题(选)
参考书:
- 《程序设计语言——实践之路》(Michael L. Scott, Programming Languages Pragmatics, Morgan Kaufmann, 2000, 2005),中文版由电子工业出版社出版,2005。第二版:2006年;中译本:电子工业出版社,2007
- 《程序设计语言——原理和实践》(Kenneth C. Louden, Programming Languages, Principles and Practice, Brooks/Cole, 2003),中译本和影印版由电子工业出版社出版,2003/2004
- 《程序设计语言原理(第8版)》(Robert W. Seresta, Concept of Programming Languages),机械工业出版社影印版,2008年。中译本(第8版),机械工业出版社,2008
- 《程序设计语言,概念和结构》(Ravi Sethi, Programming Languages, Concepts & Constructs,Adison-Wesley,1997),中译本和影印本由机械工业出版社出版,2002年。
- 《程序设计语言基础》(Ellis Horowitz, Foundametals of Programming Languages, Springer-Verlag, 1986),北京大学出版社,1990。这本书早已脱销,只能从图书馆借。