课程名称:编译原理 课程编码:7009311 课程学分:3学分 课程学时:48学时 适用专业:计算机科学与技术 先修课程:C程序设计,数据结构 课程类别:专业必修课 《编译原理》 课程教学大纲 一、课程简介与目标 编译理论与技术是计算机领域的一个重要分支,《编译原理》课程是计算机 科学与技术专业的必修专业基础课程,本课程授课对象为计算机科学与技术专业 的本科生。课程将全面、系统地介绍编译系统的结构、工作流程及编译程序各个 组成部分的设计原理和实现技术,使学生掌握编译过程中的相关原理和编译技术, 使其具有设计、实现、分析和维护编译程序的初步能力,同时提高学生开发软件 的能力,并能初步利用上述理论和方法解决实际问题。 1.课程支撑的毕业要求 1.3能够面向计算机专业工程问题对描述模型的正确性进行分析和推理。 2.1能够运用数学、自然科学和工程科学的基本原理,识别和判断计算机专 业复杂工程问题的关键环节。 2课程拟达到的教学目标 本课程主要围绕计算机系统中重要的系统软件即计算机编译程序的设计与 实现而展开,使学生的专业基本技能和综合运用能力得到提升。具体来说,本课 程的教学目标为: 课程目标1:掌握编译原理相关概念,对一般编译系统的总体组成原理和内 部结构有较为清晰的认识,为进一步学习其它软、硬件技术打下良好的理论基础, 为其它课程学习提供知识保障: 课程目标2:理解编译程序的基本原理、方法和实现技术,能深入体会其中 经典算法的思想,理解其优点与局限性,并能运用程序设计语言和相应的集成开 发环境对其进行模拟实现: 课程目标3:能针对与编译原理相关的特定问题需求进行研究、分析,并设 计出相应的解决方案:
1 课程名称:编译原理 课程编码:7009311 课程学分:3学分 课程学时:48学时 适用专业:计算机科学与技术 先修课程:C程序设计,数据结构 课程类别:专业必修课 《编译原理》 课程教学大纲 一、课程简介与目标 编译理论与技术是计算机领域的一个重要分支,《编译原理》课程是计算机 科学与技术专业的必修专业基础课程,本课程授课对象为计算机科学与技术专业 的本科生。课程将全面、系统地介绍编译系统的结构、工作流程及编译程序各个 组成部分的设计原理和实现技术,使学生掌握编译过程中的相关原理和编译技术, 使其具有设计、实现、分析和维护编译程序的初步能力,同时提高学生开发软件 的能力,并能初步利用上述理论和方法解决实际问题。 1.课程支撑的毕业要求 1.3 能够面向计算机专业工程问题对描述模型的正确性进行分析和推理。 2.1 能够运用数学、自然科学和工程科学的基本原理,识别和判断计算机专 业复杂工程问题的关键环节。 2.课程拟达到的教学目标 本课程主要围绕计算机系统中重要的系统软件即计算机编译程序的设计与 实现而展开,使学生的专业基本技能和综合运用能力得到提升。具体来说,本课 程的教学目标为: 课程目标 1:掌握编译原理相关概念,对一般编译系统的总体组成原理和内 部结构有较为清晰的认识,为进一步学习其它软、硬件技术打下良好的理论基础, 为其它课程学习提供知识保障; 课程目标 2:理解编译程序的基本原理、方法和实现技术,能深入体会其中 经典算法的思想,理解其优点与局限性,并能运用程序设计语言和相应的集成开 发环境对其进行模拟实现; 课程目标 3:能针对与编译原理相关的特定问题需求进行研究、分析,并设 计出相应的解决方案;
课程目标4:在复杂工程问题的解决过程中,能够灵活应用所学编译原理知 识分析、设计出合理的方案,解决其他领域的相关问题。 课程思政目标:本课程在培养学生专业素质和思维能力的同时,针对国内的 编译器、操作系统等系统软件核心技术缺乏,创新能力不足的问题,在课堂教学 中,融入学术志向,引导学生树立正确的学习方向,激发爱国主义热情,为实现 信息产业的底层基础设施“中国造”而努力奋斗。 3.课程教学目标毕业要求关系表 课程教学目标毕业要求关系表见表1 表1课程教学目标毕业要求关系表 单业要求 课程目标 毕业要求1.3 毕业要求2.1 课程目标1 课程目标2 课程目标3 V 课程目标4 二、教学基本内容及基本要求 《编译原理》课程理论授课48学时。学时分配如表2所示。 表2学时分配表 总学时 讲授学时 48 48 1.课程重点 编译过程各个阶段的任务和编译程序逻辑结构及其各部分的基本功能,上下 文无关文法,推导,句子和句型,文法生成的语言,语法分析树和二义性文法, 词法分析器的任务与设计,状态转换图,递归下降子程序,预测分析表构造,山(1) 文法,归约,算符优先表构造,分析法,语法制导翻译基本思想,语法制导 翻译概述,基于属性文法的处理方法,属性文法的计算,自下而上分析制导翻译 概述,说明语句的处理,赋值语句的翻译,布尔表达式的翻译,控制语句的翻译, 过程调用的处理,符号表的组织与作用,名字的作用范围,局部优化,无环路有 向图(Directed Acyclic Graph,DAG)的构造与应用,寄存器的分配方法,目标代 码生成的基本原理及方法。 2.课程难点 遍的概念,上下文无关文法,语法分析树与二义性,两种句型的分析方法
2 课程目标 4:在复杂工程问题的解决过程中,能够灵活应用所学编译原理知 识分析、设计出合理的方案,解决其他领域的相关问题。 课程思政目标:本课程在培养学生专业素质和思维能力的同时,针对国内的 编译器、操作系统等系统软件核心技术缺乏,创新能力不足的问题,在课堂教学 中,融入学术志向,引导学生树立正确的学习方向,激发爱国主义热情,为实现 信息产业的底层基础设施“中国造”而努力奋斗。 3.课程教学目标-毕业要求关系表 课程教学目标-毕业要求关系表见表 1。 表 1 课程教学目标-毕业要求关系表 毕业要求 1.3 毕业要求 2.1 课程目标 1 √ 课程目标 2 √ 课程目标 3 √ 课程目标 4 √ 二、教学基本内容及基本要求 《编译原理》课程理论授课 48 学时。学时分配如表 2 所示。 表 2 学时分配表 总学时 讲授学时 48 48 1.课程重点 编译过程各个阶段的任务和编译程序逻辑结构及其各部分的基本功能,上下 文无关文法,推导,句子和句型,文法生成的语言,语法分析树和二义性文法, 词法分析器的任务与设计,状态转换图,递归下降子程序,预测分析表构造,LL(1) 文法,归约,算符优先表构造,LR 分析法,语法制导翻译基本思想,语法制导 翻译概述,基于属性文法的处理方法,属性文法的计算,自下而上分析制导翻译 概述,说明语句的处理,赋值语句的翻译,布尔表达式的翻译,控制语句的翻译, 过程调用的处理,符号表的组织与作用,名字的作用范围,局部优化,无环路有 向图(Directed Acyclic Graph,DAG)的构造与应用,寄存器的分配方法,目标代 码生成的基本原理及方法。 2.课程难点 遍的概念,上下文无关文法,语法分析树与二义性,两种句型的分析方法, 毕业要求 课程目标
正规文法、正规集、非确定有限自动机(Nondeterministic Finite Automata,NFA) 转化为确定有限自动机(Deterministic Finite Automata,DFA),确定有限自动机 的化简,山1)文法预测分析表构造,归约,分析法,属性文法的计算,包含 数组元素的赋值语句翻译,布尔表达式的翻译,控制语句的翻译,符号表的组织 与作用,名字的作用范围,局部优化。 3.课堂教学(48学时) 表3各知识单元教学内容、考核要求和学时分配 第一知识单元编译原理引论 课堂讲授,ppt电子课件,板书。如遇突发 学时分配 2学时 事件,采用企业微信/腾讯会议/中困大学 教学方式 MO0C远程教学平台等线上形式授课,或 者采用线下线上融合教学。 教学内容 重点难点 编译系统目标和作用:掌握编译程序的概念,理解编译程序 的目标、作用。 计算机程序设计语言的发展历程:了解机器语言、汇编语言、 高级语言的特性。能从程序设计语言的发展过程体会如何从 问题出发思考解决方法的思路,理解推动编译系统发展的主 要动力。 翻译程序的基本特性:理解汇编程序、编译程序、解释程序 的区别。 编译过程及编译程序总框图:理解编译过程的五个阶段,编 译系统结构,使学生掌握基本的概念和系统的总体结构,以 激发学生的兴趣。 编译程序结构设计,了解编译程序的生成,编译程序与程序 设计环境,以及如何构造编译程序。 汇编程序、编译程序、解释程序等基本概念和基础知识的理解: 考核要点 编译过程及编译程序总框图。 第二知识单元高级程序语言及其语法描述 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 学时分配 2学时 教学方式 MOOC远程教学平台等线上形式授课,或 者采用线下线上融合教学。 教学内容 重点难点
3 正规文法、正规集、非确定有限自动机(Nondeterministic Finite Automata,NFA) 转化为确定有限自动机(Deterministic Finite Automata,DFA),确定有限自动机 的化简,LL(1)文法预测分析表构造,归约,LR 分析法,属性文法的计算,包含 数组元素的赋值语句翻译,布尔表达式的翻译,控制语句的翻译,符号表的组织 与作用,名字的作用范围,局部优化。 3.课堂教学(48 学时) 表 3 各知识单元教学内容、考核要求和学时分配 第一知识单元 编译原理引论 学时分配 2 学时 教学方式 课堂讲授,ppt 电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC 远程教学平台等线上形式授课,或 者采用线下线上融合教学。 教学内容 重点 难点 1 编译系统目标和作用:掌握编译程序的概念,理解编译程序 的目标、作用。 √ 2 计算机程序设计语言的发展历程:了解机器语言、汇编语言、 高级语言的特性。能从程序设计语言的发展过程体会如何从 问题出发思考解决方法的思路,理解推动编译系统发展的主 要动力。 3 翻译程序的基本特性:理解汇编程序、编译程序、解释程序 的区别。 √ 4 编译过程及编译程序总框图:理解编译过程的五个阶段,编 译系统结构,使学生掌握基本的概念和系统的总体结构,以 激发学生的兴趣。 √ √ 5 编译程序结构设计,了解编译程序的生成,编译程序与程序 设计环境,以及如何构造编译程序。 考核要点 汇编程序、编译程序、解释程序等基本概念和基础知识的理解; 编译过程及编译程序总框图。 第二知识单元 高级程序语言及其语法描述 学时分配 2 学时 教学方式 课堂讲授,ppt 电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC 远程教学平台等线上形式授课,或 者采用线下线上融合教学。 教学内容 重点 难点
程序语言定义的基本概念:理解语言定义是语言实现的基 础,理解程序语言由语法、语义、语用三方面定义,掌握语 法、语义、语用的具体内容,能够从问题出发思考解决问题 的方法,理解程序语言产生的原因。 文法、语言的基本概念:理解并掌握正规文法、正规语言、 2 上下文无关文法、上下文无关语言。 文法的二义性、语法分析树:理解直接推导、推导、句型 句子、语言、等价文法、语法树、文法二义性、0型文法、1 3 型文法、2型文法、3型文法的特性和区别,四种文法之间的 关系,掌握句型、句子的推导方法,语法分析树的构造方法 以及文法二义性的判断方法。 考核要点 句型、句子、推导、语言、等价文法的概念:能够分析并解决文 法二义性问题。 第三知识单元词法分析 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 学时分配 10学时 教学方式 MO0C远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点 对于词法分析器的要求:理解词法分析器的功能和输出形 式、词法分析器作为一个独立子程序的组织方式。 词法分析器的设计:掌握词法分析器的输入、预处理、超前 搜索、状态转换图,熟练掌握状态转换图的实现。理解词法 分析是编译程序的第一个处理阶段,可以通过两种途径来构 2 造词法分析程序。了解利用手工的方式、自动生成方式构造 词法分析程序方法的特点,并能应用具体的程序设计语言和 工具设计词法分析程序,并能运用于解决实际问题。 正规(表达)式与有限自动机:理解并掌握正规式与正规集 DFA、NFA的基本概念,熟练学握正规文法与有限自动机等 价性的概念、以及构造方法,正规式与有限自动机等价性的 3 概念、以及构造方法,确定有限自动机化简的概念、以及化 简方法。重点讲授如何利用正规文法、正规式、有限自动机 描述单词,能应用具体的程序设计语言和工具对这些“描述 模型”进行系统实现、验证,并能运用于解决实际问题
4 1 程序语言定义的基本概念:理解语言定义是语言实现的基 础,理解程序语言由语法、语义、语用三方面定义,掌握语 法、语义、语用的具体内容,能够从问题出发思考解决问题 的方法,理解程序语言产生的原因。 2 文法、语言的基本概念:理解并掌握正规文法、正规语言、 上下文无关文法、上下文无关语言。 √ √ 3 文法的二义性、语法分析树:理解直接推导、推导、句型、 句子、语言、等价文法、语法树、文法二义性、0型文法、1 型文法、2型文法、3型文法的特性和区别,四种文法之间的 关系,掌握句型、句子的推导方法,语法分析树的构造方法, 以及文法二义性的判断方法。 √ √ 考核要点 句型、句子、推导、语言、等价文法的概念;能够分析并解决文 法二义性问题。 第三知识单元 词法分析 学时分配 10学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点 1 对于词法分析器的要求:理解词法分析器的功能和输出形 式、词法分析器作为一个独立子程序的组织方式。 2 词法分析器的设计:掌握词法分析器的输入、预处理、超前 搜索、状态转换图,熟练掌握状态转换图的实现。理解词法 分析是编译程序的第一个处理阶段,可以通过两种途径来构 造词法分析程序。了解利用手工的方式、自动生成方式构造 词法分析程序方法的特点,并能应用具体的程序设计语言和 工具设计词法分析程序,并能运用于解决实际问题。 √ √ 3 正规(表达)式与有限自动机:理解并掌握正规式与正规集、 DFA、NFA的基本概念,熟练掌握正规文法与有限自动机等 价性的概念、以及构造方法,正规式与有限自动机等价性的 概念、以及构造方法,确定有限自动机化简的概念、以及化 简方法。重点讲授如何利用正规文法、正规式、有限自动机 描述单词,能应用具体的程序设计语言和工具对这些“描述 模型”进行系统实现、验证,并能运用于解决实际问题。 √ √
词法分析器的自动产生:理解词法分析器自动产生的概念及 4 产生的原因,了解高级语言词法分析器的自动生成器一一如 LEX的一般描述、LEX的工作过程。 能够理解构造词法分析程序的两种方法,对手工方式构造词法分 析程序方法进行分析,理解词法分析程序的设计原理,熟练掌握 考核要点 正规文法与有限自动机等价性的构造方法、正规式与有限自动机 等价性的构造方法、NFA的确定化方法、确定有限自动机的化简方 法。 第四知识单元语法分析-一自上而下分析 课堂讲授,pt电子课件,板书。如遇突发 学时分配 8学时 教学方式 事件,采用企业微信/腾讯会议/仲国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点 语法分析器的功能:了解语法分析器的任务和功能,理解语 法分析的两种构造方法。 自上而下分析面临的问题:理解自上而下分析方法的步骤、 左递归问题、回溯问题。 (1)分析法:构造不带回潮的自上而下分析算法,需要消除 3 文法的左递归、克服回溯,消除文法左递归、回溯的方法, 1)分析条件。 递归下降分析程序:理解并掌握递归下降分析程序基本概 4 念、构造方法。 预测分析程序:理解并掌握预测分析程序工作过程,熟练掌 5 握FIRST集合、FOLLOW:集合、预测分析表的概念以及构造方 法。 掌握消除文法左递归性、回溯的方法,熟练掌握FIST集合、FOLLOW 考核要点 集合、预测分析表的概念以及构造方法。 第五知识单元语法分析一自下而上分析 课堂讲授,pt电子课件,板书。如遇突发 学时分配 8学时 教学方式 事件,采用企业微信/腾讯会议中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点
5 4 词法分析器的自动产生:理解词法分析器自动产生的概念及 产生的原因,了解高级语言词法分析器的自动生成器——如 LEX的一般描述、LEX的工作过程。 考核要点 能够理解构造词法分析程序的两种方法,对手工方式构造词法分 析程序方法进行分析,理解词法分析程序的设计原理,熟练掌握 正规文法与有限自动机等价性的构造方法、正规式与有限自动机 等价性的构造方法、NFA的确定化方法、确定有限自动机的化简方 法。 第四知识单元 语法分析----自上而下分析 学时分配 8学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点 1 语法分析器的功能:了解语法分析器的任务和功能,理解语 法分析的两种构造方法。 2 自上而下分析面临的问题:理解自上而下分析方法的步骤、 左递归问题、回溯问题。 √ 3 LL(1)分析法:构造不带回溯的自上而下分析算法,需要消除 文法的左递归、克服回溯,消除文法左递归、回溯的方法, LL(1)分析条件。 √ √ 4 递归下降分析程序:理解并掌握递归下降分析程序基本概 念、构造方法。 √ √ 5 预测分析程序:理解并掌握预测分析程序工作过程,熟练掌 握FIRST集合、FOLLOW集合、预测分析表的概念以及构造方 法。 √ √ 考核要点 掌握消除文法左递归性、回溯的方法,熟练掌握FIRST集合、FOLLOW 集合、预测分析表的概念以及构造方法。 第五知识单元 语法分析----自下而上分析 学时分配 8学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点