程序设计语言概论 复习
考试时间 : 下午 2:00~4:00 考试地点 :
第一章 高级程序设计语言的设计目标 程序的解决方案与问题的物理结构相匹配 全世界广泛使用 易证明解决方案的正确性 程序设计语言的编程范型 命令型、函数式、逻辑型、面向对象
第二章 语言设计要考虑的基本因素 硬件计算机 虚拟计算机(或执行模型) 计算模型 虚拟计算机 程序运行时的数据和算法所定义的计算机
第三章 程序的语法与语义 定义、形式、及分类 程序的主要构成 声明 + 控制 语言的翻译 分析 词法、语法、语义,各阶段的功能 综合 优化、目标代码生成
第三章(续) BNF 文法 文法的推导过程 文法定义的语言 语法分析树 文法的二义性及其解决 有限状态自动机 (FSA) FSA 的能力 接受一个句子与识别一个语言的区别 FSA 与正则文法、正则表达式之间的相互转换 下推自动机 (PDA) 运行原理 PDA 的能力
第四章 语义模型 文法模型、操作模型、应用模型、公理模型、规约模型 属性文法 表达式的语义 程序验证的关键性问题 建模 / 规约、实现、验证 公理语义 程序正确性证明
第五章 数据对象 数据对象的属性 数据值 数据类型 数据类型的构成 类型的转换 常见基本数据类型的实现
第六章 常见结构化数据类型的实现 常见的抽象机制 结构化数据、子程序、类型声明、继承 抽象数据类型 信息隐蔽与封装 子程序 定义与激活、激活的生命周期 类型检查与等价 强类型、弱类型、静态与动态检查 类型等价 与 数据对象相等
第七章 继承 继承的根源 对象的派生、方法的继承 重载 定义及冲突解决 多态 多态的创建与实现 动态多态
第八章 顺序控制的层次 算术表达式的顺序控制 表达式的表示方法 树形表示、线性表示 表示方法蕴含(或不蕴含)计算顺序 不同表达方法的计值过程 计值中存在的问题 计值规则、副作用、出错、布尔表达式短路
第八章(续) 语句的顺序控制 主要控制结构 结构化程序设计的基本原则 素程序 定义 合式程序的分解 素程序定理的证明 逻辑表达式 替代与合一
第九章 子程序控制 子程序控制的主要目标 局部变量的访问,变量的作用域 激活记录堆栈的管理 参数传递 基本方法:按名、按值、按引用等
第十章 堆存储中存在的主要问题 引用悬空、不可访问的存储区、存储碎片 垃圾回收 常用的回收算法
第十一章 例外处理 产生例外的方式 例外的传播 并行编成 并行任务和协程 并行程序的存储管理 不确定性程序 卫哨命令 同步和信号 信号和消息的适用范围
常见程序设计语言 C/C++ Java Smalltalk Prolog Lisp 等等