《编译原理》课程教学大纲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《编译原理》课程教学大纲
(Principles of Compiler)
课程性质: 专业课
适用专业: 计算机科学与技术
先修课程:PASCAL语言程序设计或C语言程序设计、离散数学、数据结构
后续课程:
总学分:4学分(其中实验0.5)
一、教学目的与要求
1.教学目的
编译原理是计算机科学与技术专业中的一门很重要的专业课程,它在系统软件中占有十分重要的地位,是计算机科学与技术专业学生的一门主修课。

通过本课程的学习,使学生掌握编译理论基础,包括词法分析、语法分析、中间代码生成、代码优化和目标代码生成。

理解编译的实现方法,了解自动机语言的形式化定义、编译技术的各种概念以及具体实现过程的方法。

从形式语言理论角度讨论词法分析和语法分析技术,为学生从事系统软件开发打下良好的基础。

2.教学要求
编译原理是一门重要的专业选修课程,本课程将以课堂讲授为主,讲授编译系统的一般构造原理、基本实现技术和一些自动构造工具,布置一定量的作业,配合相应的实验,帮助学生理解有关编译的基本概念,甚至更深入地理解编程语言。

从而使学生的编程能力得到真正的锻炼与提高。

二、课时安排
三、教学内容
1.引论(4学时)
(1)教学的基本要求
了解:编译程序与高级程序设计语言的关系;编译和解释的概念;编译程序的几个阶段所完成的任务及编写编译程序的主要方法
理解:编译理论和实践相结合的重要性
掌握:编译的各个阶段及其主要任务
(2)教学内容
①程序设计语言与编译
②编译程序概述
③编译程序的生成
④编译程序的构造
2.编译基础知识(4学时)
(1)教学的基本要求
了解:文法的分类;闭包、正闭包、文法、语言、推导、归约、语法树、二义文法的概念,无ε产生式的文法及文法的简化
理解:文法与语言的关系
掌握:文法与语言的形式化定义以及它们之间的关系,二义文法,短语、简单短语的概念
(2)教学内容
①字母表、符号表、闭包
②文法与语言的关系
③文法构造与文法简化
④语法树、短语、简单短语、二义文法
3.词法分析(6学时)
(1)教学的基本要求
了解:正规文法、正规集、正规式的概念;
理解:词法分析扫描器的设计。

掌握:确定的有限自动机(DFA)、不确定的有限自动机(NFA)以及它们之间的转换关系,并能进行DFA的最小化;正规文法、正规式、确定的有限自动机之间的关系。

灵活运用:运用DFA进行有关程序设计。

(2)教学内容
①正规文法、正规集与正规式
②确定的有限自动机DFA
③不确定的有限自动机NFA
④NFA的确定化
⑤DFA的简化
⑥正规式与有限自动机之间的关系
⑦正规文法与DFA之间的关系
⑧词法分析程序的设计
4.自上而下语法分析(6学时)
(1)教学的基本要求
了解:自上而下分析法中存在的问题及其处理方法
理解:下推自动机的原理及应用;LL(1)文法及构造LL(1)分析表的算法
掌握:LL(1)分析表分析表的构造;递归下降分析法程序的构造
(2)教学内容
①下推自动机
②消除左递归、消除回溯
③如何求终结首符集和随符集
④如何构造预测分析表
⑤递归下降分析法
5.优先分析法(3学时)
(1)教学的基本要求
了解:算符优先分析法的存在问题
理解:自下而上分析的下推自动机原理
掌握:算符优先分析法的基本思想,算符优先分析表及优先函数的构造方法
(2)教学内容
①会求FIRSTVT、LASTVT
②算符优先分析法及优先分析表的构造
③优先函数的构造
6.LR分析法及分析程序自动构造(9学时)
(1)教学的基本要求
了解:LR(0)分析法及LR(0)分析表的构造方法
理解:上下文无关文法的LR分析法的思想;LALR分析法及LALR分析表的构造
掌握:SLR分析法及SLR分析表的构造、LR(1)分析法及LR(1)分析表的构造、二义文法的LR分析表的构造方法
(2)教学内容
①LR分析器的基本思想
②LR(0)项目集规范族和LR(0)分析表的构造
③SLR分析表的构造
④规范LR分析表的构造
⑤LALR分析表的构造
⑥二义文法分析表的构造及其应用
7.语法制导翻译并产生中间代码(9学时)
(1)教学的基本要求
了解:语法制导翻译的方法及中间代码的表示方法;过程调用语句、说明语句、输入/输出语句等的语法制导翻译
理解:标号与转移语句、REPEAT语句、FOR循环语句、复合语句、数组的语法制导翻译
掌握:赋值语句、布尔表达式、IF语句、WHILE语句等的语法制导翻译
灵活运用:语义子程序编写语法制导翻译程序
(2)教学内容
①简单算术表达式和赋值语句的翻译
②布尔表达式的翻译
③控制语句的翻译
④数组元素及其在赋值语句中的翻译
⑤过程调用语句
⑥说明语句的翻译
⑦输入/输出语句的翻译
⑧中间代码的其它表示形式
8.运行时数据区的管理(6学时)
(1)教学的基本要求
了解:数据区的存储分配形式
理解:静态存储分配中公用语句、等价语句、地址分配的有关原理及算法
掌握:栈式存储分配管理的方法
(2)教学内容
①静态存储管理
②栈式存储管理
9.中间代码优化(6学时)
(1)教学的基本要求
了解:代码优化的必要性及基本方法;局部优化中使用无环路有向图即DAG的优化算法;控制流程分析和循环查找算法;数据流及数据流方法及其在代码优化的作用和算法;循环优化算法
理解:控制流程、数据流的分析
掌握:局部优化
(2)教学内容
①局部优化
②循环优化
③DAG图及DAG构造算法
④控制流程分析和循环查找算法
⑤数据流分析
⑥循环优化
10.目标代码生成(3学时)
(1)教学的基本要求
了解:目标代码生成方法以及如何提高代码生成效率
理解:目标代码生成方法的理解
掌握:目标代码生成算法
(2)教学内容
①模型计算机的指令系统
②简单代码生成算法
四、授课方式及考核方式
1.授课方式
部分采用多媒体课件讲授
2.考核方式
考试形式:闭卷笔试
课程成绩构成:平时作业和上机操作成绩占30%,期末考试成绩占70%
五、教材与参考书目
1.张幸儿. 计算机编译理论(第二版). 北京:科学出版社,2003。

2.高仲仪,金茂忠. 编译原理及编译程序构造. 北京:北京航空航天大学出版社,2001。

3.胡元义,邓亚玲,胡英. 编译原理实践教程. 西安:西安电子科技大学出版社,2002。

相关文档
最新文档