新疆大学“编译原理"课程教学大纲 课程英文名称:Compliers Principles 美类8量:10o0G9 课程类型:专业 总学时:48 学 适用对象:计算机科学与技术、网络工程、信息安全专业本科生 周学时:3 设学期:第6学期 开课单位:信息科学 装核保品高纸塔音、数据结的 编写依据:2017版本科培养方 华数材及参考书 编写时间:2017 材:《编译原理》 ,王生原等编,清华大学出版社,2015年,第3版 参考书:《编译原理》,何炎祥等编,机械工业出版社,2010年 《编译原理》,毛红梅,严云祥等编,清华大学出版社,2011年 《编译原理与技术》,李文生绵,清华大学出版社,016年 《编译原理》,刘铭,徐兰芳等编,电子工业出版社,2013年 一、课程教学目的和任务 业类基 程序枸道 理和基本打法为 发等内容。课这青课在理论法技米言方法正都对学生供析系统需有效的训陈。有利干提高计算机专业入 ,使学生了解编译原理的基本概念和常用术语,理解有关编译程序的基本思想和逻辑推理过 程,掌握编译原理的基本概念和功能 分的工作原理 设计方法和 并提 学生的分析问题 领域的工作 二、课程教学基本要求 程的本有程教学的科学和系性的前提下。 2、坚持理论密切联系实际 一悦吃内交果鞋商各种算的实现思想。有关本 深入浅出地阐明其基本思想,旨 法 位置。 作业, 一、果程数学重点和难点 重点:文法和语言、词法分析、自顶向下语法分析方法、R分析、代码优化。 香整自项向下活法分折方法、L以分标、活法制导的活文计实、静态语义分新折和中间代男生成、代网代化和目标代 四、课程教学内容 第一章引论 [教学目的 相互腰本摩帮门货青的芳程性质、基本内和学习义、事提编译理中常用术百的义及其 [教学要求】 1.了解解释程序:处理源程序的软件工具
新疆大学"编译原理"课程教学大纲 课程英文名称:Compliers Principles 课程编号:100069 课程类型:专业 类基础课 总 学 时:48 学 分:3 适用对象:计算机科学与技术、网络工程、信息安全专业本科生 周 学 时:3 开设学期:第6学期 开课单位:信息科学 与工程学院 先修课程:高级语言、数据结构 编写依据:2017版本科培养方 案 使用教材及参考书 编写时间:2017 年7月 教 材:《编译原理》,王生原等编,清华大学出版社,2015年,第3版 参 考 书:《编译原理》,何炎祥等编,机械工业出版社,2010年 《编译原理》,毛红梅,严云祥等编,清华大学出版社,2011年 《编译原理与技术》,李文生编,清华大学出版社,2016年 《编译原理》,刘铭,徐兰芳等编,电子工业出版社,2013年 一、课程教学目的和任务 编译原理是计算机科学与技术专业的一门重要的专业类基础课,以研究编译程序构造的一般原理和基本方法为 主要目标。编译原理课程主要介绍文法和语言、词法分析、语法分析、语法制导翻译、中间代码生成、代码优化和 目标代码生成等内容。这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高计算机专业人 员的素质和能力。 通过本课程教学,使学生了解编译原理的基本概念和常用术语,理解有关编译程序的基本思想和逻辑推理过 程,掌握编译原理的基本概念和功能、各部分的工作原理、设计方法和实现算法,旨在培养并提高学生的分析问题 和解决问题的能力、提高编写和开发系统程序的能力,并为学生日后从事编译程序研究以及计算机相关领域的工作 奠定基础。同时,作为计算机科学与技术专业的专业类基础课,也为学生后续课程的顺利学习提供条件。 二、课程教学基本要求 1、在保证该课程教学的科学性和系统性的前提下,着重突出实现编译程序的各种算法的实现思想。有关本课 程的基本概念、基本知识和基本算法,作为教学的重点内容,要求学生牢固掌握并熟练运用。 2、坚持理论密切联系实际,讲授时,尽可能借助编译算法的一些典型实例,深入浅出地阐明其基本思想,旨 在拓开学生的思路,并积极引导学生将主要精力放在掌握编译原理的基本概念和算法思想上。 3、课堂讲授实行启发式,力求做到少而精,并注意将培养和提高学生的分析问题和解决问题的能力放在重要 位置。 4、坚持课后练习是教好、学好本门课程的关键。在整个教学过程中,将根据正常教学进度布置一定量的课后 作业,要求学生按时完成。以练促学,达到理解和掌握编译原理基本原理和算法的目的。 三、课程教学重点和难点 重点:文法和语言、词法分析、自顶向下语法分析方法、LR分析、代码优化。 难点:自顶向下语法分析方法、LR分析、语法制导的语义计算、静态语义分析和中间代码生成、代码优化和目标代 码生成。 四、课程教学内容 第一章 引论 [教学目的] 通过本章教学,使学生明确编译原理的学科性质、基本内容和学习意义,掌握编译原理中常用术语的涵义及其 相互区别,了解本门课程的教学要求和学习方法。 [教学要求] 1.了解解释程序;处理源程序的软件工具
2.理解编译程序概念:编译过程。 3.握编译程序的结构:编译阶段的组合。 [重点难点) :编泽程程程序的结构。 [教学内容] 第一节什么是编译程序 第二节编译过程和编译程序的结构 第三节角解释程序和一些软件工具 第二章文法和语言 [教学目的] 法想蕴过本章教学,使学生明确影式语言中文法和语言的特性。了解文法和语吉的概念,季据句型分行中的有关算 「教学要求1 1.了解有关文法实际应用中的一些说明。 2.理解文法的直观概念 3.掌握符号和符号串:文法和语言的形式定义:文法的类型:上下文无关文法及其语法树:句型的分析。 [重点难点] 重点:符号和符号串:文法和语言的形式定义:文法的类型:上下文无关文法和语法树:句型的分析。 难点:句型的分析。 「教学内容 第一节文法的直观概念 第二节符号和符号申 第三节文法和语言的形式定义 第四节文法的类型 第五 上下文无关文法及其语法树 第六节 句型的分析 第七节有关文法实际应用的一些说明 第三章词法分析 [教学目的] 有关源态整教学,使学生贾商词法分折的工作流程了解同法分折的服之、单润的描述工具家程同法分析中的 「教学要求1 1.了解词法分析程序的自动构造工具 2理解词法分析程序的设计:正规文法和有穷自动机的等价性。 在攀提单词的描述工具:有穷自动机:F4转换为等价的:确定有穷自动机的化简:正提式和有穷自动机的等价 [重点难点] 重点:单词的形式化描述工具:有穷自动机:NFA转换为等价的DFA:确定有穷自动机的化简:正规式和有穷自动机 的等价性。 难点:NFA转换为等价的DFA、确定有穷自动机的化简
2.理解编译程序概念;编译过程。 3.掌握编译程序的结构;编译阶段的组合。 [重点难点] 重点:编译程序概念。 难点:编译过程和编程程序的结构。 [教学内容] 第一节 什么是编译程序 第二节 编译过程和编译程序的结构 第三节 解释程序和一些软件工具 第二章 文法和语言 [教学目的] 通过本章教学,使学生明确形式语言中文法和语言的特性,了解文法和语言的概念,掌握句型分析中的有关算 法思想。 [教学要求] 1.了解有关文法实际应用中的一些说明。 2.理解文法的直观概念。 3.掌握符号和符号串;文法和语言的形式定义;文法的类型;上下文无关文法及其语法树;句型的分析。 [重点难点] 重点:符号和符号串;文法和语言的形式定义;文法的类型;上下文无关文法和语法树;句型的分析。 难点:句型的分析。 [教学内容] 第一节 文法的直观概念 第二节 符号和符号串 第三节 文法和语言的形式定义 第四节 文法的类型 第五节 上下文无关文法及其语法树 第六节 句型的分析 第七节 有关文法实际应用的一些说明 第三章 词法分析 [教学目的] 通过本章教学,使学生明确词法分析的工作流程,了解词法分析的概念、单词的描述工具,掌握词法分析中的 有关算法思想。 [教学要求] 1.了解词法分析程序的自动构造工具。 2.理解词法分析程序的设计;正规文法和有穷自动机的等价性。 3.掌握单词的描述工具;有穷自动机;NFA转换为等价的DFA;确定有穷自动机的化简;正规式和有穷自动机的等价 性。 [重点难点] 重点:单词的形式化描述工具;有穷自动机;NFA转换为等价的DFA;确定有穷自动机的化简;正规式和有穷自动机 的等价性。 难点:NFA转换为等价的DFA、确定有穷自动机的化简
[教学内容】 第一节词法分析程序的设计 第二节儿/0编译程序中词法分析程序的设计和实现(选学 第三节单词的形式化描述工具 第四节有穷自动机 第五节正规式和有穷自动机的等价性 第六节正规文法和有穷自动机的等价性 第四章自顶向下语法分析方法 [教学目的] 分析的工作流程,了解自顶向下语法分析的概念、自顶向下语法分析 满足的条件,掌握自顶向下语法分析中的有关算法思想。 [教学要求] 1.了解不确定的自顶向下分析思想。 2理解确定的自顶向下分析思想。 3.掌握LL(1)文法的判别:某些非L(1)文法到LL(1)文法的等价变换:表驱动LL(1)分析程序。 [重点难点] 重点:L(1)文法的判别:表驱动L(1)分析程序。 难点:L()文法的判别:某些非L(1文法到LL(1)文法的等价变换。 [教学内容] 第一节确定的自顶向下分析思想 第二节L(①)文法的判别 第三节某些非L()文法到L()文法的等价变挨 第四节 不确定的自顶向下分析思想 第五节L(1)分析的实现 第五章自底向上优先分析 [教学目的1 洗起阁藻补擎装白能就鞋税究身赛中搭交赞的作流程。了解自底向上优先分折的之、自底向上代先分析 「教学要求】 1.了解自底向上优先分析概述。 2.理解简单优先分析法。 3.掌握算符优先分析法。 「重点难点1 重点:算符优先分析法 难点:算符优先关系表的构造。 「教学内容1 第一节自底向上优先分析概述 第二节简单优先分析法 第三节算符优先分析法
[教学内容] 第一节 词法分析程序的设计 第二节 PL/0编译程序中词法分析程序的设计和实现(选学) 第三节 单词的形式化描述工具 第四节 有穷自动机 第五节 正规式和有穷自动机的等价性 第六节 正规文法和有穷自动机的等价性 第四章 自顶向下语法分析方法 [教学目的] 通过本章教学,使学生明确自顶向下语法分析的工作流程,了解自顶向下语法分析的概念、自顶向下语法分析 满足的条件,掌握自顶向下语法分析中的有关算法思想。 [教学要求] 1.了解不确定的自顶向下分析思想。 2.理解确定的自顶向下分析思想。 3.掌握LL(1)文法的判别;某些非LL(1)文法到LL(1)文法的等价变换;表驱动LL(1)分析程序。 [重点难点] 重点:LL(1)文法的判别;表驱动LL(1)分析程序。 难点:LL(1)文法的判别;某些非LL(1文法到LL(1)文法的等价变换。 [教学内容] 第一节 确定的自顶向下分析思想 第二节 LL(1)文法的判别 第三节 某些非LL(1)文法到LL(1)文法的等价变换 第四节 不确定的自顶向下分析思想 第五节 LL(1)分析的实现 第五章 自底向上优先分析 [教学目的] 通过本章教学,使学生明确自底向上优先分析的工作流程,了解自底向上优先分析的概念、自底向上优先分析 满足的条件,掌握自底向上优先分析中的有关算法思想。 [教学要求] 1.了解自底向上优先分析概述。 2.理解简单优先分析法。 3.掌握算符优先分析法。 [重点难点] 重点:算符优先分析法。 难点:算符优先关系表的构造。 [教学内容] 第一节 自底向上优先分析概述 第二节 简单优先分析法 第三节 算符优先分析法
第六章LR分析 [教学目的] 通过本章教学,使学生明确LR分析的工作流程,了解LR分析的概念,LR分析满足的条件,掌握LR分析中的有关 算法思想。 [教学要求] 1.了解二义性文法在LR分析中的应用。 2.理解LR分析概述、R(1)分析、LALR(1)分析。 3掌握LR(O)分析、SLR(1)分析, [重点难点】 重点:LR(O)分析、SLR(1)分析。 难点:LR(O)分析、SR(1)分析、IR(1)分析、LALR(I)分析。 [教学内容] 第一节LR分析概述 第二节LR(0)分析 第三节SLR()分析 第四节 LR(I)分折 第五节LALR(1)分析 第六节二义性文法在LR分析中的应用 第七章语法制导的语义计算 [教学日的] 法思德过本章教学,使学生明确语法制导的工作流程,了解语法制导的概念、翻译枫式,掌语法制导中的有关塑 [教学要求] 岛复解式。基于5核式的语文计第,基于礼一译镜式的自顶向下语义计:基于孔-译式的白底向上 2.理解S-属性文法和L-属性文法:基于S-属性文法的语义计算:基于L-属性文法的语义计算。 3.掌握属性文法。 「重点难点1 重点:属性文法」 难点:翻译模式。 「教学内容1 第一节基于属性文法的语义计算 :静态语义分析和中间代码生成 [教学目的1 通过本章教学,使学生明确静态语义分析和中间代码生成的工作流程,了解符号表、静态语义分析、中间代码 的概念,掌握中间表示形式。 「数学要求1 1.了解符号表的作用:符号的常见属性:符号表的实现:符号表体现作用域与可见性 2.理解静态语义分析的主要任务:常见的中间表示形式:生成三地址码。 3.掌握中间表示形式
第六章 LR分析 [教学目的] 通过本章教学,使学生明确LR分析的工作流程,了解LR分析的概念,LR分析满足的条件,掌握LR分析中的有关 算法思想。 [教学要求] 1.了解二义性文法在LR分析中的应用。 2.理解LR分析概述、LR(1)分析、LALR(1)分析。 3.掌握LR(0)分析、SLR(1)分析。 [重点难点] 重点:LR(0)分析、SLR(1)分析。 难点:LR(0)分析、SLR(1)分析、LR(1)分析、LALR(1)分析。 [教学内容] 第一节 LR分析概述 第二节 LR(0)分析 第三节 SLR(1)分析 第四节 LR(1)分析 第五节 LALR(1)分析 第六节 二义性文法在LR分析中的应用 第七章 语法制导的语义计算 [教学目的] 通过本章教学,使学生明确语法制导的工作流程,了解语法制导的概念、翻译模式,掌握语法制导中的有关算 法思想。 [教学要求] 1.了解翻译模式;基于S-翻译模式的语义计算;基于L-翻译模式的自顶向下语义计算;基于L-翻译模式的自底向上 语义计算。 2.理解S-属性文法和L-属性文法;基于S-属性文法的语义计算;基于L-属性文法的语义计算。 3.掌握属性文法。 [重点难点] 重点:属性文法。 难点:翻译模式。 [教学内容] 第一节 基于属性文法的语义计算 第二节 基于翻译模式的语义计算 第八章 静态语义分析和中间代码生成 [教学目的] 通过本章教学,使学生明确静态语义分析和中间代码生成的工作流程,了解符号表、静态语义分析、中间代码 的概念,掌握中间表示形式。 [教学要求] 1.了解符号表的作用;符号的常见属性;符号表的实现;符号表体现作用域与可见性。 2.理解静态语义分析的主要任务;常见的中间表示形式;生成三地址码。 3.掌握中间表示形式
[重点难点] 重点:中间表示形式。 难点:生成三地址码 [教学内容】 第一节符号表 第一节静态语义分析 第三节中间代码生成 第九章运行时存储组织 选学内容 第十章代码优化和目标代码生成 [教学目的] 想。 通过本章教学,使学生明确代码优化的工作流程,了解代码优化的概念和优化技术,掌握局部优化的算法思 [教学要求] 1.了解窥孔优化:循环优化 2.理解流图:循环。 3.掌握基本块:局部优化 「重点难点] 重点:基本块:流图:局部优化。 难点:流图:局部优化。 [教学内容】 第一节基本块、流图和循环 第二节数据流分析基础(选学) 第三节代码优化技术 五、实践环节 无 六、学时分配 总学时:48学时 其中课常教学:48学时:实践教学:0学时 课堂教学学时分配一览表: 章 教学内容 教学时数 第 5 弟 文法和语言 可 第四章 自顶向下语法分析方法 第五章 自底向上优先分析 第六章 LR分析 第七草 语法制导的语义计算 第八 静态语义分析和中间代码生成 弟草 代码优化和目标代码生成 合计 48
[重点难点] 重点:中间表示形式。 难点:生成三地址码。 [教学内容] 第一节 符号表 第二节 静态语义分析 第三节 中间代码生成 第九章 运行时存储组织 选学内容 第十章 代码优化和目标代码生成 [教学目的] 通过本章教学,使学生明确代码优化的工作流程,了解代码优化的概念和优化技术,掌握局部优化的算法思 想。 [教学要求] 1.了解窥孔优化;循环优化。 2.理解流图;循环。 3.掌握基本块;局部优化。 [重点难点] 重点:基本块;流图;局部优化。 难点:流图;局部优化。 [教学内容] 第一节 基本块、流图和循环 第二节 数据流分析基础(选学) 第三节 代码优化技术 五、实践环节 无 六、学时分配 总学时:48 学时 其中课堂教学:48学时;实践教学:0学时 课堂教学学时分配一览表: 章 目 教 学 内 容 教 学 时 数 第一章 引论 2 第二章 文法和语言 8 第三章 词法分析 8 第四章 自顶向下语法分析方法 8 第五章 自底向上优先分析 4 第六章 LR分析 8 第七章 语法制导的语义计算 2 第八章 静态语义分析和中间代码生成 4 第十章 代码优化和目标代码生成 4 合 计 48
七、课程考试形式和要求 可断、 最终考核成绩=期末综合成绩(70%)+平时成绩(作业及考勤30%)
七、课程考试形式和要求 本课程为考试课,考试采取"闭卷"方式进行。主要考查编译原理的基本概念、基本理论和基本算法,测评学 生的理解、判断、分析、综合等能力。考试题型有:单项选择题,判断题、填空题,算法应用题,综合题等。 最终考核成绩=期末综合成绩(70%)+平时成绩(作业及考勤30%)