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

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

《编译原理》课程教学大纲
Compiler Principles
课程编号:130301006
学时:48学分:3
适用对象:软件工程.计算机科学与技术.网络工程.物联网工程.医学信息工程.数字媒体技术(理科)
先修课程:高级语言程序设计.数据结构.离散数学
一、课程的性质和任务
根据培养方案中课程体系与培养要求的对应关系矩阵,该课程可以支撑毕业要求第1.2.3条的达成。

《编译原理》课程是计算机科学与技术专业学生的一门重要专业必修课,它在计算机系统软件中占有十分重要的地位。

它既有很强的理论性,又有一定的实践性,尤其是该课程所涉及的知识内容与计算机科学技术中的其他众多学科联系紧密,并在很多领域有着广泛的应用,其基本原理与技术对软件开发有很好的启发和指导作用。

学习和掌握好本课程的基本原理与技术,将有利于提高学生的专业素质.培养学生进行系统分析和软件设计的能力。

本课程主要学习编译程序的设计与实现的一般原理.基本方法和主要实现技术。

二、教学目的与要求
本课程的教学目的是介绍程序设计语言编译程序构造的基本原理和设计方法,通过本课程的学习,学生应该能够正确理解什么是编译程序,了解编译程序工作的基本过程及其各阶段的基本任务,熟悉编译程序总体框架,掌握编译程序构造的一般原理.基本设计方法和主要实现技术,巩固《高级语言程序设计》.《数据结构》.《离散数学》等基础知识,能将编译程序中的概念和技术应用于一般的软件设计之中,能够独立完成小型编译程序。

三、教学内容
第一章:概述
1.基本内容:
编译程序的基本概念,编译过程,编译程序的结构,编译程序和程序设计环境,编译程序的生成过程和构造工具
2.教学基本要求:
正确了解什么是编译程序,了解编译程序工作的基本过程几个阶段的基本任务,熟悉编译程序总框。

3.教学重点难点:
编译过程和编译程序的结构。

4.教学建议:
注重介绍课程特点.在人才培养中的作用,学生在学习中要注意的问题,使学生掌握基本的概念和系统总体结构以激发学习兴趣。

第二章:高级语言及语法描述
1.基本内容:
程序设计语言的定义,高级语言的一般特性,高级语言的语法描述,上下文无关文法,语法分析树和二义性,乔姆斯基文法体系
2.教学基本要求:
理解程序语言的词法.语法和语义等概念,进一步掌握高级程序设计语言的一般结构和主要共同特征,使学生具有必要的基础知识;理解文法和语言的一些基本概念,如文法的定义和构造.句型.句子.语言.推导.语法树等。

3.教学重点难点:
语法,语义,文法的构造。

4.教学建议:
文法的概念介绍从简单的例子开始,最后考虑算术表达式的文法描述,让学生从文法理解语言——掌握文法如何描述语言。

第三章:词法分析
1.基本内容:
词法分析器的功能和输出形式,词法分析器的设计方法——状态转换图的实现,正规表达式与有限自动机,LEX的一般描述和实现。

2.教学基本要求:
了解词法分析器的功能和输出形式,熟练掌握词法分析器设计的原理和方法,能够以转换图为工具使用某种语言的编写并调试一个扫描器。

在正确理解正规表达式与有限自动机的有关概念.理论的基础上,了解词法分析的自动产生原理。

3.教学重点难点:
词法分析器的功能和设计方法,正规表达式与有限自动机的等价性。

4.教学建议:
瞄准基本表示方法,重点是让学生在实验中去体会。

第四章:语法分析----自上而下分析
1.基本内容:
语法分析器的功能,自上而下分析面临的问题,LL(1)分析法,递归下降分析,预测分析程序。

2.教学基本要求:
理解自上而下分析法的基本思想,掌握递归下降分析法的基本方法:如消除左递归.消除回溯.构造递归下降子程序。

理解预测分析方法,掌握预测分析表的构造方法.LL(1)文法的定义。

3.教学重点难点:
消除左递归,消除回溯.递归下降子程序的构造,预测分析表的构造。

4.教学建议:
关于递归下降分析法重点在于介绍一种问题的处理思想,这种思想在语义分析阶段构建翻译模式时会再次出现,此处只是铺垫,不必花太多时间。

关于LL(1)分析法,通过讲清楚该方法的基本思想来突破难点,使学生掌握好基本内容。

特别注意当某候选式的FRIST集含有ε时为什么用FOLLOW集。

第五章:语法分析----自下而上分析
1.基本内容:
自下而上分析的基本问题,算符优先分析法,算符优先分析表和优先函数的构造,LR分析器的基本原理,LR文法,LR(0).SLR.LR(1)分析表的构造,语法分析器的自动产生工具YACC。

2.教学基本要求:
理解自下而上分析法的基本思想和有关归约.短语.句柄.规范归约等概念。

掌握算符优先分析法,了解算符优先表和优先函数的构造技术。

了解LR 分析器基本原理和工作方法,能够构造LR(0)分析表。

了解Y ACC实现自动产生分析表的基本思想。

3.教学重点难点:
算符优先分析表和优先函数的构造,LR(0)分析表的构造。

4.教学建议:
关于算符优先分析法,可以通过讲清楚该方法的基本思想来突破难点,通过求FIRSTVT和LASTVT向学生展示如何将一种想法.需求转换成计算机系统可以实现的过程。

关于LR分析法,通过讲述克服算符优先分析法的缺点来引入LR(0)项目,进一步引入识别所有活前缀的DFA来,并用次DFA给出其分析“过程”和所需要的分析表。

第六章:属性文法和语法制导翻译
1.基本内容:
语法制导翻译的基本思想,属性文法的基本概念,基于属性文法的处理方法,在自上而下分析和自下而上分析中的属性计算。

2.教学基本要求:
理解语法制导翻译和属性文法的基本思想和方法,掌握属性的计算方法。

3.教学重点难点:
属性的计算。

4.教学建议:
以“语法制导”为核心,讲述有关内容。

属性的提出,实际上时对翻译“目标”和获得的“中间信息”等的抽象,所以学生掌握起来比较困难,要给予足够的重视。

第七章:语义分析和中间代码产生
1.基本内容:
中间语言的形式——后缀式.图表示法.三地址代码,说明语句的语义分析,赋值语句的翻译,布尔表达式的翻译,控制语句的翻译。

2.教学基本要求:
熟悉几种中间语言的描述,掌握各种语句的翻译方法,会给出各种语句的语义规则和语义子程序。

3.教学重点难点:
表达式和控制语句的翻译。

4.教学建议:
掌握源语句结构和目标代码的对应,掌握“语法制导”的要旨,使学生领会语义分析和中间代码是如何生成的。

第八章:符号表
1.基本内容:
符号表的组织和作用,符号表的整理和查找方法,名字的作用范围,符号表的内容。

2.教学基本要求:
要求学生了解符号表的作用.组织方法和包含的一般内容,掌握名字作用域分析。

3.教学重点难点:
符号表的作用.组织方法和内容,名字的作用范围。

4.教学建议:
注意表的内容。

第九章:运行时存储空间组织
1.基本内容:
运行时目标程序的活动,参数传递机制,运行存储器的划分,静态存储分配,简单栈式存储分配堆式动态存储分配。

2.教学基本要求:
了解目标程序运行时存贮空间的使用和组织管理方法,熟悉参数传递机制,理解静态分配和动态分配的基本思想。

3.教学重点难点:
参数传递机制。

4.教学建议:
使学生掌握在编译实现中,为了完成过程调用,要做什么样的准备及工作。

第十章:优化
1.基本内容:
优化的概念,局部优化的方法。

2.教学基本要求:
要求学生正确理解代码优化的含义.作用,掌握局部优化的方法。

3.教学重点难点:
局部优化的方法。

4.教学建议:
使学生了解几种基本方法。

第十一章:目标代码生成
1.基本内容:
目标代码生成的任务和形式。

2.教学基本要求:
了解代码生成过程中的基本问题。

3.教学重点难点:
无。

4.教学建议:
通过举例展示代码生成的内容。

四、教学环节与学时分配
五、教学中应注意的问题
本课程是一门理论性.实践性和技术性很强的课程。

以课堂讲授为主,采用多媒体教学手段,重视上机实践,培养学生的动手能力。

六、实验/实践内容
见《编译原理实验大纲》和《编译原理课程设计大纲》
七、考核方式
考试。

学生最后总成绩由平时成绩(30%,其中到课率5%+课堂表现5%+课后作业10%+实验10%等)+理论闭卷考试成绩(70%)的总和确定。

详见《编译原理课程考试大纲》
八、教材及主要参考书
1.选用教材:
《程序设计语言编译原理》陈火旺主编,国防工业出版社,2014年
2.主要参考书:
《编译原理——学习指导与典型题析》刘春林主编,国防工业出版社,2010年
九、教改说明及其他
注重培养学生的综合应用能力和创新精神。

相关文档
最新文档