《编译原理》课程教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》课程教学大纲
一、教学大纲说明
(一)课程的地位、作用和任务
编译原理》课程是信息与计算科学、信息安全专业的一门专业技术课。
通过本课程的学习,使学生掌握编译理论和方法方面的基本知识,具有设计、实现、分析和维护编译程序等方面的初步能力。
(二)课程教学的目的和要求
通过本课程的学习,使学生掌握编译程序构造的基本原理、设计方法和实现技术,具有设计、实现、分析和维护编译程序等方面的基本技能,为今后从事应用软件和系统软件的开发打下一定的理论和实践基础。
掌握:编译原理的基本概念,自动机的理论,上下文文法、LL语法分析技术,LR语法分析技术,动作文法、属性文法
理解:小型语言Micro的编译器,中间代码生成,目标代码的生成
了解:运行时的存储空间
(三)课程教学方法与手段
采用理论与实例讨论相结合的教学方法,手段拟采用PowerPoint多媒体教学。
(四)课程与其它课程的联系
本课程的前导课程是数据结构、离散数学、操作系统原理等,并与程序设计语言等课程相关联。
(五)教材与教学参考书
教材:金成植编译,《程序构造原理和实现技术》,北京,高等教育出版社,2000年
教学参考书:1、吕映芝等,《编译原理》,北京,清华大学出版社,1998年
2、杜淑敏等,《编译程序设计原理》,北京,北京大学出版社,1990年
3、杨宗源,《编译原理习题精选分析与解答》,北京,清华大学出版社,2003年
二、课程的教学内容、重点和难点
第一章编译程序概述
内容:概述编译程序的功能结构、复杂性及其设计开发和测试维护等。
重点:编译程序和解释程序的区别、编译程序的功能分解和组织结构。
难点:编译程序和解释程序的区别。
第二章一个微小编译器
内容:介绍小型语言Micro的编译器。
重点:单词的概念和词法分析、处理简单表达式的语义栈技术。
难点:处理简单表达式的语义栈技术。
第三章有限自动机与词法分析器
内容:介绍正则表达式和有限自动机及词法分析器的构造。
重点:单词的内部表示、正则表达式、有限自动机、词法分析器的构造。
难点:非确定有限自动机到确定有限自动机的化简。
第四章文法与语法分析
内容:介绍语法分析方法,包括上下文文法,LL分析法,LR分析法,二义性文法的处理,语法错误恢复,LL分析法和LR分析法的比较。
重点:上下文文法,LL分析法,LR分析法。
难点:LL分析法,LR分析法。
第五章语义分析
内容:介绍语义分析,包括标识符属性的内部表示,类型的内部表示及其构造,符号表及其构造,声明中的语义检查,语句中的语义检查。
重点:标识符属性的内部表示,类型的内部表示及其构造,符号表及其构造,声明中的语义检查,语句中的语义检查。
难点:符号表及其构造
第六章运行时的存储空间
内容:介绍运行时的存储空间,包括运行时的存储结构,存储分配,活动记录,变量访问和过程调用。
重点:活动记录,变量访问和过程调用。
难点:活动记录,变量访问和过程调用
第七章动作文法和属性文法
内容:介绍动作文法和属性文法,包括动作文法概念,动作文法的实现,属性文法的概念,属性文法的实现,动作文法和属性文法的应用。
重点:动作文法概念,动作文法的实现,属性文法的概念,属性文法的实现。
难点:动作文法的实现,属性文法的实现。
第八章中间代码生成
内容:介绍中间代码的生成,包括中间代码种类,表达式的中间代码,多维下标变量的中间代码,语句的中间代码等。
重点:表达式的中间代码,多维下标变量的中间代码,语句的中间代码等。
难点:表达式的中间代码,多维下标变量的中间代码。
第九章目标代码生成
内容:介绍目标代码生成,包括变量的状态描述,寄存器的状态描述,寄存器状态追踪,寄存器分配,编址模式,间接编址模式的转换,目标代码生成的基本技术,基于树结构的代码生成,基于DAG的代码生成,代码生成的生成器。
重点:目标代码生成的基本技术,基于树结构的代码生成,基于DAG的代码生成。
难点:基于树结构的代码生成,基于DAG的代码生成
三、学时分配。