编译原理 课程教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程性质、目的与任务
编译原理课程是计算机科学与技术专业学生的专业骨干课之一。通过学习这门课程,使学生掌握编译程序的基本原理、方法和实现技术,使学生更好的理解程序语言的内部机制,培养学生初步掌握设计大型系统软件的方法、技术以及设计大型软件的能力。
二、教学基本要求
1)正确理解什么是编译程序;了解编译程序工作的基本过程及其各阶段的基本任务;
熟悉编译程序总框;了解编译程序的生成过程和构造工具。
2)正确理解上下文无关文法基本概念,包括:文法的定义、编写、句型、句子、语言、语法树、二义性等;能进行各种文法等价变换;熟练掌握NFA、DFA、正则表达式和正则文法之间的等价关系,能够进行相互转换,掌握DFA的最小化算法。
3)理解词法分析器功能及形式;熟练掌握词法分析器设计的原理,掌握运用状态转换图进行词法分析器设计。
4)正确理解自上而下分析的基本思想;熟练掌握递归下降分析基本方法:消除左递归和公共前缀,消除回溯,构造递归下降子程序;掌握LL(1)分析程序的基本原理和LL(1)分析表构造;理解LL(1)方法的定义。
5)正确理解自下而上语法分析的基本思想,以及归约、短语、句柄、分析树等概念;
掌握简单优先分析基本方法:简单优先关系矩阵;LR类语法分析的基本思想及其分析表的构造,掌握LR类语法分析的基本过程。
6)理解符号表的作用及符号表组织和使用方法,了解名字的作用范围,了解符号表中一般应包含的内容。
7)正确理解语法制导翻译基本原理;熟悉常见的几种中间语言:四元式、三元式、逆波兰表示;掌握各种语句到四元式的翻译方法,包括:简单算术表达式,布尔表达式,控制语句,数组引用,过程调用等。了解自上而下分析制导翻译基本思想和实现方法。
8)正确理解代码优化的定义和各种可能的优化概念;掌握基于基本块的局部优化方法。
9)正确理解目标程序运行进存储空间的使用和组织管理方式;理解静态分配和动态存储分配基本思想;掌握栈式存储分配的处理方式;掌握栈式动态分配中活动记录和DISPLAY表作用、组织、内容及使用;了解嵌套过程语言程序运行时整个运行栈的内容的组织。
10)正确理解代码生成过程的基本问题,理解临时变量、寄存器描述和地址模式等概念;
掌握简单代码生成算法。
三、各章节内容及学时分配
第一章编译引论(2学时)
主要内容:编译程序,编译过程概述,编译程序的结构,编译程序生成,学习构造编译程序。
重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序框架。
1.1 程序设计语言和编译程序
1.2.1 编译程序构成
1.2.2 遍
1.2.3 编译程序的前端和后端
1.3 编译程序和程序设计环境
1.4 编译程序的实现
第二章形式语言与有限自动机(8学时)
主要内容:上下文无关文法,文法等价变换,语法树与文法二义性,正规表达式与有限自动机。
重点:上下文无关文法,正则表达式与有限自动机。
2.1 基本概念
2.2 文法
2.2.1 文法的定义
2.2.2 文法分类
2.2.3 推导和归约
2.2.4 语法树与文法二义性
2.2.5 文法等价变换
2.3 有限自动机(FA)
2.3.1 确定有限自动机(DFA)
2.3.2 非确定有限自动机(NFA)
2.3.3 DFA与NFA的等价
2.3.4 DFA的化简
2.4 正则表达式
2.4.1 正则表达式与正则集
2.4.2 正则表达式与有限自动机的相互转换
第三章词法分析(2学时)
主要内容:词法分析器任务,词法分析器设计,词法分析器自动生成。
重点:词法分析器的任务与设计,状态转换图。
3.1 词法分析介绍
3.1.1 词法分析程序的功能
3.1.2 词法分析程序的接口
3.2 词法分析程序的设计
3.2.1 单词分类
3.2.2 单词的内部表示
3.2.3 单词的形式描述
3.2.4 自动机的实现
3.3 词法分析程序的实现
3.3.1 实现词法分析程序应注意的问题
3.3.2单词结构
3.3.3 实现算法
3.4 词法分析程序自动生成
3.4.1 LEX简介
3.4.2 LEX工作原理
3.4.3 LEX源文件结构
3.4.4 LEX系统中的正则式
3.4.5 LEX的使用方式
3.4.6应用实例
第四章语法分析—自顶向下分析方法(8学时)主要内容:上下文无关文法,自上而下语法分析(递归下降分析法,LL(1)方法)。
重点:上下文无关文法,递归下降子程序,LL(1)分析表构造,LL(1)文法。
4.1 语法分析程序介绍
4.1.1 语法分析程序的功能
4.1.2 语法错误类别及错误处理
4.1.3 自顶向下语法分析基本思想
4.1.4 三个重要的集合
4.1.5 自顶向下语法分析条件
4.2 递归下降法
4.2.1 递归下降法语法分析原理
4.2.2 递归下降法语法分析程序的构造
4.3 LL(1)分析方法
4.3.1 LL(1)分析法原理
4.3.2 LL(1)分析表的构造
4.3.3 LL(1)驱动程序构造
4.4 自顶向下分析程序的自动生成
第五章语法分析—自底向上分析方法(14学时)主要内容:自下而上语法分析(LR(0),LR(1),SLR(1),LALR(1)等语法分析方法、简单优先分析方法)。
重点:简单优先关系矩阵的构造;LR类分析表的构造及其分析过程。
5.1 自底向上语法分析方法介绍
5.2 简单优先分析
5.2.1 简单优先文法及其优先关系矩阵的构造
5.2.2 简单优先分析算法
5.3 LR分析法
5.3.1 LR类分析法的工作过程
5.3.2 LR(0)分析方法
5.3.3 SLR(1)分析方法
5.3.4 LR(1)分析方法
5.3.5 LALR(1)分析方法
5.3.6 LR方法小结
5.4 自底向上分析程序的自动生成