《编译原理》教学大纲
一、课程基本信息二、教学目标
《编译原理》是为计算机科学与技术等计算机专业学生开设的重要专业课,是一门理论性、实践性和技术性很强的课程。本课程的任务是使学生学习程序设计语言编译程序的构造原理及相关技术,掌握编译程序的基本理论、设计思想和实现方法。由于编译程序是计算机系统软件的重要组成局部之一,因此通过对本课程的学习还可以提高学生计算机专业素质,培养学生的抽象和逻辑思维能力。因此,让学生掌握编译原理的基本理论和设计思想是非常重要的。通过本课程的教学培养学生的抽象思维、逻辑推导和概括能力,并为其学习后继专业课奠定坚实的理论基础。
绪论(2学时)(一)教学目标了解和掌握高级程序设计
语言与编译程序的关系.了解和掌握编译程序的功能
1.了解和掌握编译程序的体系结构(二)重点、难点重点:编译程序工作的基本过程及其各
阶段的基本任务,编译程序总框。
(三)教学方法课堂讲授与实验相结合(四)教学内容.什么叫编译程序
1.编译过程概述.编译程序的结构(1)编译程序总框(2)表格与表格管理
(3)出错处理(4)遍(5)编译前端与后端.编译程序与程序设计环境
2.编译程序的生成第一章高级语言极其语法描述(一)教学目标.学习形式语言理论中的一
些基本概念和基础知识
1.掌握程序设计语言的语法描述方法.二义性(二)重点、难点重点:上下文无关文法的编
写,句型、句子和语法树的推导,二义性等。
难点:形式语言的分类。
(三)教学方法课堂讲授与实验相结合(四)教学内容.程序语言的定义
(1)语法(2)语义.高级语言的一般特性(1)高级语言的分类
(2)程序机构(3)数据类型与操作(4)语句与控制结构.程序语言的语法描述
(1)上下文无关文法(2)语法分析树与二义性(3)形式语言鸟瞰第二章词法分析(8
学时/6学时)
(一)教学目标.单词的形式.词法分析程序的设计方法(二)重点、难点
重点:词法分析器的任务,正规表达式与有限自动机,包括正规表达式与NFA的转换,NFA确定化的方法,DFA的化简方法等。
难点:DFA的化简。
(三)教学方法课堂讲授与实验相结合(四)教学内容.对于词法分析器的要求
(1)词法分析器的功能和输出形式(2)词法分析器作为一个独立字程序.词法分析器的
设计(1)输入、预处理
(2)单词符号的识别:超前搜索(3)状态转换图(4)状态转换图的实现.正规表达式与有限自动机
(1)正规式与正规集(2)确定有限自动机(3)非确定有限自动机(4)正规文法与有限自动机的等价性
(5)正规式与有限自动机的等价性(6)确定有限自动机的化简,词法分析器的自动产生(1)语言LEX的一般描述
(2)超前搜索LEX的实现第三章自上而下语法分析(4学时)
(一)教学目标.本章主要学习自上而下的语法分析方法,主要有递归子程序法和LL (1)分析法.自上而下语法分析的基本思想.自上而下语法分析面临的问题及解决方法
1.消除左递归的方法(二)重点、难点
重点:FIRST集和FOLLOW集的构造方法,递归下降子程序,预测分析表构造,LL(1)文法
等内容。
难点:LL (1)文法。
(三)教学方法课堂讲授与实验相结合(四)教学内容.语法分析器的功能
1.自上而下分析面临的问题. LL(1)分析法(1)左递归的消除(2)消除回溯、提左因
33) LL⑴分析条件.递归下降分析程序构造.预测分析程序工作过程(1)预测分析程序工作过程
(2)预测分析表的构造.LL (1)分析中的错误处理第四章自上而下语法分析(6学时/6学时)
(一)教学目标.自下而上语法分析的基本思想.自下而上语法分析面临的问题及解决方法(二)重点、难点
重点:自下而上语法分析的基本思想,归约、短语、句柄及分析树等概念;算符优先表和和算符优先函数构造技术;LR(O)工程集族和LR(O)分析表的构造,SLR分析表的构造,规范LR分析表的构造。
难点:LR分析法。
(三)教学方法课堂讲授与实验相结合(四)教学内容.自下而上分析基本问题
⑴归约(2)规范归约简述(3)符号栈的使用与语法树的表示.算符优先分析
(1)算符优先文法及优先表构造(2)算符优先分析算法(3)优先函数(4)算符优先分析中的出
错处理
1. LR分析法LR分析器LR(O)工程集族和LR(O)分析表的构造SLR分析表的构造
(4)规范LR分析表的构造LALR分析表的构造(6)二义文法的应用(7) LR分析中的出错处
4.语法分析器的自动产生工具YACC第五章语义分析和中间代码生成(5学时/6学时)(-)
教学目标.语法制导翻译方法的基本思想
1.语句的翻译.过程调用的处理、类型检查(二)重点、难点重点:各种常见中间语言形式,各种语句到四元式的翻译。
难点:控制语句的翻译。
(三)教学方法课堂讲授与实验相结合(四)教学内容.中间语言
(1)后缀式(2)图表示法(3)三地址代码.说明语句
(1)过程中的说明语句(2)保存作用域信息(3)记录中的域名.赋值语句的翻译
(1)简单算术表达式及赋值语句(2)数组元素的引用(3)记录中域的引用.布尔表达式的翻
(1)数值表示法(2)作为条件控制的布尔式翻译.控制语句的翻译(1)控制流语句
(2)标号与goto语句CASE语句的翻译.过程调用的过程.类型检查
汇编语言清华大学出版社
(1)类型系统(2)类型检查器的规格说明(3)函数和运算符的重载(4)多态函数
四、考核形式及成绩评定(一)考核形式:
期末考试为闭卷考试。
(二)成绩评定:
课程考核由平时作业及听课情况和期末考试成绩两局部组成,分别占课程总成绩的30% 和70%
五' 教材与参考书教材:
陈火旺等编.程序设计语言编译原理(第三版).国防工业出版社,2001参考书:
[1]张素琴编著,《编译原理》(第2板),清华大学出版社,2005年[2]蒋立源编著,《编译原
理》,西北工业大学出版社,1997年六、课程学时分配表