程序设计语言概论

Download Report

Transcript 程序设计语言概论

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