《编译原理》课程教学大纲 (2)_第1页
《编译原理》课程教学大纲 (2)_第2页
《编译原理》课程教学大纲 (2)_第3页
《编译原理》课程教学大纲 (2)_第4页
《编译原理》课程教学大纲 (2)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译原理课程教学大纲课程编号:20411110总学时数:48总学分数:3课程性质:必修课程适用专业:计算机科学与技术一、课程的任务和基本要求:编译原理是计算机科学与技术专业的一门专业必修课,在计算机本科教学中占有重要地位。本课程主要讲解词法分析、语法分析、语义分析、代码优化、运行时存储空间组织等基本内容,了解目标代码生成、符号表、错误处理等。通过本课程的学习,使学生对编译过程中的基本概念、基本原理和基本实现方法有一个较全面、直观的认识,为后续课程的学习打下必要的基础。二、基本内容和要求:1 绪论教学内容:编译和解释,编译程序、编译过程概述,编译程序的结构,编译程序与程序设计环境,编译阶段的组合

2、。教学要求:(1)熟悉编译程序的概念;(2)了解编译程序工作的基本过程及其各阶段的基本任务;(3)熟悉编译程序总框。2文法和语言的基本知识教学内容:语言语法结构的形式描述,文法和语言的定义,文法的类型,上下文无关文法,语法分析树与文法二义性的判断。教学要求:(1)熟悉文法的形式化表示;(2)掌握根据文字叙述书写一些较典型的文法的方法;(3)熟悉形式语言的分类;(4)掌握正规文法及正规表达式与上下文无关文法的相互转换;(5)掌握规范推导、短语、直接短语、句柄、素短语、语法树、文法的二义性等基本概念;(6)掌握利用语法树寻找句型的短语、直接短语和句柄的方法;(7)掌握消除文法的二义性的方法。3.

3、词法分析教学内容:词法分析器任务;正则表达式;确定有穷自动机;非确定有穷自动机;自动机的确定化;从正则表达式到DFA的构造;由正规文法构造有穷自动机。教学要求:(1)熟悉词法分析器的任务及输出形式;(2)了解运用状态转换图进行词法分析器的设计;(3)掌握正规表达式、DFA、NFA的形式定义,能根据文字叙述书写相应的正规表达式;(4)掌握正规表达式与NFA的相互转换;(5)掌握NFA确定化为DFA的方法;(6)掌握DFA的化简方法;(7)了解词法分析器的自动生成。4. 语法分析自上而下分析教学内容:语法分析器的功能,自上而下语法分析(递归下降分析法,预测分析程序),LL(1)文法的定义和判别,非

4、LL(1)文法的等价变换。教学要求:(1)熟悉自上而下分析的基本思想和PDA的概念;(2)掌握消除左递归及消除回溯的方法;(3)了解LL(1)分析器的基本结构;(4)掌握FIRST集、FOLLOW集的概念,能根据给定文法求出相应的首符集和随符集;(5)掌握LL(1)文法的判别方法及LL(1)分析表的构造方法;(6)掌握预测分析表的构造;(7)了解递归下降分析器的构造方法。5. 语法分析自下而上分析教学内容:算符优先分析,LR分析器,LR(0)项目集族和LR(0)分析表的构造,SLR分析表的构造,规范LR分析表的构造。教学要求:(1)熟悉自下而上分析的基本思想;(2)掌握算符优先分析的基本方法,

5、算符优先分析表的构造,查找最左素短语的方法;(3)了解优先函数;(4)掌握LR分析器的基本结构、工作原理,能根据LR分析表写出给定语句的LR分析过程;(5)掌握LR(0)、SLR(1)及LR(1)分析表的构造方法;(6)掌握SLR(1)冲突解决办法;(7)了解二义文法的应用。6语法制导翻译和中间代码产生教学内容:属性、语义规则、属性文法;中间语言的表示形式;说明语句、简单赋值语句、布尔表达式、控制语句的翻译方法。教学要求:(1)熟悉语法制导翻译基本原理;(2)了解自上而下语法制导翻译基本思想和实现方法;(3)掌握几种常见的中间语言:逆波兰表示,三元式,四元式表示;(41)掌握各种语句到四元式的

6、翻译方法,包括:简单算术表达式、布尔表达式、控制语句等的翻译;(5)了解数组元素,过程调用和说明语句的翻译。7代码优化教学内容:代码优化的分类,常用的优化技术,局部优化和循环优化的概念及实现方法。局部优化,基本块,DAG表示,循环优化,必经结点集,删除公共子表达式,复写传播,删除无用赋值,代码外提,强度削弱,删除归纳变量,全局优化。教学要求:(1)熟悉代码优化的定义;(2)掌握基本块的DAG表示及基本块优化的基本思想,能根据给定的基本块画出相应的DAG图;(3)熟悉循环的定义;(4)掌握在程序流图中循环的查找方法;(5)了解循环优化所采用的方法。8 符号表教学内容:符号表的作用和地位;符号的类

7、型和存储类别;符号表的组织结构,符号表总体组织的选择原则;符号表的管理。教学要求:(1)掌握符号表的作用和组织方式;(2)了解名字的作用范围;(3)了解常用的符号表结构及其包含的内容。9 目标代码生成教学内容:目标机器模型;一个简单代码生成器;寄存器分配;DAG目标代码;窥孔优化。教学要求:(1)了解代码生成过程的基本问题; (2)了解待用信息、寄存器描述和地址描述等概念;(3)熟悉简单代码生成算法、寄存器分配策略;三、实践环节和要求:在学生掌握基本原理的基础上,在总体结构的导引下,通过设计出词法分析器、语法分析器,语义分析与中间代码生成器,构建一个限定高级语言的翻译器。要求学生完成相关算法和

8、数据结构的设计, 并用自己偏爱的语言完成实现,最后提交规范的实验报告。通过实验,使学生在掌握编译程序基本构造的基础上,具有分析和实现现有编译程序的初步能力,并且加深对程序设计语言原理的理解,提高中、大型程序的分析和开发能力。要求实验前做好准备,熟悉实验相关的技术和原理,制定实验方案,编写相关的程序或文档;实验独立完成,认真观察与思考;实验后进行分析小结,写出实验报告。基本要求:1编写能识别标识符、实数、整数、运算符和关键字正规式的简单词法分析程序。2从词法分析器分析出的结果入手,通过查SLR(1)的分析表来进行语法分析,在每一步的归约调用语义分析程序,产生三地址码或四元式。四、教学时数分配:理

9、论:40学时 实验:学时 上机: 8学时 其它: 教学内容学时分配教学内容学时分配1引论2实验一 简单词法分析程序22文法和语言6实验二 自上而下的语法分析器的设计与实现43词法分析5实验三 三地址代码(四元式)生成器的设计与实现24自上而下语法分析6 5自下而上语法分析7 6语法制导翻译和中间代码生成6 7代码优化4 8符号表2 9目标代码生成2 合计48学时五、其它项目(含课外学时内容):无。六、有关说明:1、教学和考核方式:本课程属于考试课,考试方式为闭卷。其中,教师在实验结束前,要注意现场验收学生设计实现的系统,并给出现场评定。评定级别分优秀、良好、合格、不合格,最后结合实验报告给出实

10、验成绩。2、习题:每章布置一定的习题和课外思考题,通过对习题的练习加强对各章内容的掌握和认识。3、能力培养要求:通过本课程理论学习,使学生对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。通过本课程的实验教学加深学生对语言编译器构造的一般原理的理解,掌握编译器的基本构造,及以词法分析程序和语法分析程序为核心的简单编译器的基本设计方法和实现技术。4、与其它课程和教学环节的联系:先修课程和教学环节:离散数学,C语言程序设计,数据结构后续课程和教学环节: 平行开设课程和教学环节:5、教材和主要参考书目:(1)教材:编译原理(第二版), 胡伦骏等。北京:电子工业出版社,2007(2)主要参考书目: 程序设计语言编译原理,陈火旺编著,北京:国防工业出版社,2005; 编译原理, 李冬梅等。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论