课程名称:编译原理 课程编码: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远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点
自下而上分析基本问题:了解归约、规范归约的概念以及基 本原理,掌握符号栈的使用方法。 算符优先分析法:理解算符优先文法的概念、基本原理及优 先表构造方法,可归约串的判断方法,算符优先分析算法的 基本原理,优先函数的概念及构造方法,了解算符优先分析 2 中的出错处理方法,结合算符优先分析算法,体会从问题出 发解决问题的方法,培养学生分析问题、解决问题的能力 并应用到解决复杂工程问题。 归约、规范归约的概念以及基本原理、可归约串的判断方法、算 考核要点符优先文法的概念、基本原理及优先表构造方法,算符优先分析 算法,优先函数的概念及构造方法。 第六知识单元属性文法和语法制导翻译 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 学时分配 4学时 教学方式 MO0C远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点 属性文法:了解语法制导翻译、属性文法的概念和技术,掌 握综合属性、继承属性、语义规则的概念以及基本原理。 基于属性文法的处理方法:了解依赖性、树遍历的属性计算 方法,熟练掌握一遍扫描的语法制导翻译方法。 属性文法的计算:熟悉语法制导翻译的基本思想,掌握基于 属性文法的计算、S-属性文法的自下而上计算、L-属性文法 和自上而下翻译。结合属性文法和语法制导翻译的处理方 法,体会从问题出发解决问题的方法,培养学生分析问题 解决问题的能力,并应用到解决复杂工程问题。 综合属性、继承属性、语义规则的概念、基本原理以及计算过程 考核要点 熟悉语法制导翻译的基本思想,学握基于属性文法的计算。 第七知识单元语义分析及中间代码产生 课堂讲授,ppt电子课件,板书。如遇突发 学时分配10学时 教学方式 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点
6 1 自下而上分析基本问题:了解归约、规范归约的概念以及基 本原理,掌握符号栈的使用方法。 2 算符优先分析法:理解算符优先文法的概念、基本原理及优 先表构造方法,可归约串的判断方法,算符优先分析算法的 基本原理,优先函数的概念及构造方法,了解算符优先分析 中的出错处理方法,结合算符优先分析算法,体会从问题出 发解决问题的方法,培养学生分析问题、解决问题的能力, 并应用到解决复杂工程问题。 √ √ 考核要点 归约、规范归约的概念以及基本原理、可归约串的判断方法、算 符优先文法的概念、基本原理及优先表构造方法,算符优先分析 算法,优先函数的概念及构造方法。 第六知识单元 属性文法和语法制导翻译 学时分配 4学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点 1 属性文法:了解语法制导翻译、属性文法的概念和技术,掌 握综合属性、继承属性、语义规则的概念以及基本原理。 2 基于属性文法的处理方法:了解依赖性、树遍历的属性计算 方法,熟练掌握一遍扫描的语法制导翻译方法。 √ 3 属性文法的计算:熟悉语法制导翻译的基本思想,掌握基于 属性文法的计算、S-属性文法的自下而上计算、L-属性文法 和自上而下翻译。结合属性文法和语法制导翻译的处理方 法,体会从问题出发解决问题的方法,培养学生分析问题、 解决问题的能力,并应用到解决复杂工程问题。。 √ √ 考核要点 综合属性、继承属性、语义规则的概念、基本原理以及计算过程, 熟悉语法制导翻译的基本思想,掌握基于属性文法的计算。 第七知识单元 语义分析及中间代码产生 学时分配 10学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点
中间语言:了解DAG图、三地址代码的存储形式,重点掌 握三种中间语言:后缀式、四元式、三地址代码。 说明语句的处理:与语法分析相对应,语义分析也包括自上 而下分析、自下而上分析的分析方法。强调语义分析如何与 语法分析结合,具体讲授语法制导翻译的基本思想,说明语 句的翻译和处理。 赋值语句的翻译:熟练掌握数组元素的地址计算公式、重点 掌握简单算术表达式及赋值语句、包含数组元素的赋值语句 3 翻译,结合赋值语句属性文法和语法制导翻译的处理方法, 体会从问题出发解决问题的方法,培养学生分析问题、解决 问题的能力,并应用到解决复杂工程问题。 布尔表达式的翻译:了解数值表示法的布尔表达式翻译方 4 法,理解拉链回填技术,重点掌握作为条件控制的布尔式翻 译方法。 控制语句的翻译:掌握控制语句的翻译与布尔表达式翻译相 结合的方式,了解条件语句、while循环语句的代码结构, 5 利用拉链回填技术通过一遍扫描翻译控制流语句,重点掌握 条件语句、while循环语句的翻译方法。 过程调用的处理:掌握过程调用的主要工作,重点掌握过程 调用文法以及过程调用的翻译方法。 常见的中间语言、说明语句的处理、赋值语句的翻译方法、布尔 考核要点 表达式的翻译方法、控制语句的翻译方法,过程调用的处理方法。 第八知识单元符号表 课堂讲授,pt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中因大学 学时分配 1学时教学方式 MO0C远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点 符号表的组织与作用:了解符号表管理的基本方法,掌握符 1 号表的组织与作用。 整理与查找:复习数据结构课程查找的相关知识,强调线性 表、二叉树、哈希表实现查找的原理,以及相应的实现方法 名字的作用范围:复习最近嵌套作用域原则,掌握名字的作 用范围
7 1 中间语言:了解 DAG图、三地址代码的存储形式,重点掌 握三种中间语言:后缀式、四元式、三地址代码。 2 说明语句的处理:与语法分析相对应,语义分析也包括自上 而下分析、自下而上分析的分析方法。强调语义分析如何与 语法分析结合,具体讲授语法制导翻译的基本思想,说明语 句的翻译和处理。 √ 3 赋值语句的翻译:熟练掌握数组元素的地址计算公式、重点 掌握简单算术表达式及赋值语句、包含数组元素的赋值语句 翻译,结合赋值语句属性文法和语法制导翻译的处理方法, 体会从问题出发解决问题的方法,培养学生分析问题、解决 问题的能力,并应用到解决复杂工程问题。 √ √ 4 布尔表达式的翻译:了解数值表示法的布尔表达式翻译方 法,理解拉链回填技术,重点掌握作为条件控制的布尔式翻 译方法。 √ √ 5 控制语句的翻译:掌握控制语句的翻译与布尔表达式翻译相 结合的方式,了解条件语句、while循环语句的代码结构, 利用拉链回填技术通过一遍扫描翻译控制流语句,重点掌握 条件语句、while循环语句的翻译方法。 √ √ 6 过程调用的处理:掌握过程调用的主要工作,重点掌握过程 调用文法以及过程调用的翻译方法。 √ 考核要点 常见的中间语言、说明语句的处理、赋值语句的翻译方法、布尔 表达式的翻译方法、控制语句的翻译方法,过程调用的处理方法。 第八知识单元 符号表 学时分配 1学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点 1 符号表的组织与作用:了解符号表管理的基本方法,掌握符 号表的组织与作用。 √ √ 2 整理与查找:复习数据结构课程查找的相关知识,强调线性 表、二叉树、哈希表实现查找的原理,以及相应的实现方法。 3 名字的作用范围:复习最近嵌套作用域原则,掌握名字的作 用范围。 √ √
4符号表的内容:理解符号表的内容。 符号表的组织与作用、整理与查找、名字的作用范围、符号表的 考核要点 内容。 第九知识单元代码优化与代码生成 课堂讲授,pt电子课件,板书。如遇突发 教学方式 事件,采用企业微信/腾讯会议/中国大学 学时分配 3学时 MO0C远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点难点 局部优化:了解代码优化的基本概念,熟悉基本块及其DAG 表示,掌握局部优化的原理及方法。 目标代码生成:了解代码生成的基本概念,熟悉寄存器的分 配方法,掌握目标代码生成的基本原理及方法。 考核要点 局部优化的基本概念、原理及方法,目标代码生成的基本概念、 原理及方法。 三、课程采用的教学方法 本课程所涉及计算机软硬件相关知识较多,具有知识面宽广、内容跨度大、 课程难度大的特点。因此在抓好课堂教学效果的同时,应做好课前预习、课后复 习,以及书面作业完成环节,并通过增强师生间、同学间的多种形式的讨论(如 课后答疑、课下讨论、网上讨论等)来提高课程的教学效果和教学质量。 课程教学方法及具体要求如下: 1.课堂讲授 1)以能力培养为导向,注重理解(非记忆)各种计算机编译程序设计原理 和算法的思想。为保证教学质量,课堂讲授中应重点突出、点面结合,既要保证 学生接受完整的编译原理课程知识体系结构的教学目标,又要针对关键问题、重 点内容进行较为详尽、多引入实例的透彻讲解,使学生真正领会和掌握本课程的 知识要领及技术要点。 2)多媒体课件与板书结合的教学手段与多种教学方法兼施并用。教学方法 则采取在教师讲授基本教学内容的过程中适当穿插引入个体针对性提问、集体提 问、答疑、讨论等教学形式。如遇突发事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,通过微信问答的方式进行课堂互动,也可 以利用中国大学MOOC的课程讨论进行互动,或者采用线下线上融合教学进行 互动。 2.讨论与自学
8 4 符号表的内容:理解符号表的内容。 考核要点 符号表的组织与作用、整理与查找、名字的作用范围、符号表的 内容。 第九知识单元 代码优化与代码生成 学时分配 3学时 教学方式 课堂讲授,ppt电子课件,板书。如遇突发 事件,采用企业微信/腾讯会议/中国大学 MOOC远程教学平台等线上形式授课,或者 采用线下线上融合教学。 教学内容 重点 难点 1 局部优化:了解代码优化的基本概念,熟悉基本块及其DAG 表示,掌握局部优化的原理及方法。 √ √ 2 目标代码生成:了解代码生成的基本概念,熟悉寄存器的分 配方法,掌握目标代码生成的基本原理及方法。 √ 考核要点 局部优化的基本概念、原理及方法,目标代码生成的基本概念、 原理及方法。 三、课程采用的教学方法 本课程所涉及计算机软硬件相关知识较多,具有知识面宽广、内容跨度大、 课程难度大的特点。因此在抓好课堂教学效果的同时,应做好课前预习、课后复 习,以及书面作业完成环节,并通过增强师生间、同学间的多种形式的讨论(如 课后答疑、课下讨论、网上讨论等)来提高课程的教学效果和教学质量。 课程教学方法及具体要求如下: 1.课堂讲授 1)以能力培养为导向,注重理解(非记忆)各种计算机编译程序设计原理 和算法的思想。为保证教学质量,课堂讲授中应重点突出、点面结合,既要保证 学生接受完整的编译原理课程知识体系结构的教学目标,又要针对关键问题、重 点内容进行较为详尽、多引入实例的透彻讲解,使学生真正领会和掌握本课程的 知识要领及技术要点。 2)多媒体课件与板书结合的教学手段与多种教学方法兼施并用。教学方法 则采取在教师讲授基本教学内容的过程中适当穿插引入个体针对性提问、集体提 问、答疑、讨论等教学形式。如遇突发事件,采用企业微信/腾讯会议/中国大学 MOOC 远程教学平台等线上形式授课,通过微信问答的方式进行课堂互动,也可 以利用中国大学 MOOC 的课程讨论进行互动,或者采用线下线上融合教学进行 互动。 2.讨论与自学
鼓励同学之间或同学与教师之间针对编译原理的重点和难点内容展开讨论, 以使学生掌握知识要点、扩大知识面和培养独立思考能力及创新能力。自学内容 应以学生掌握相关知识结构基础上能比较方便地看懂和理解为原则:对于有能力 的同学,鼓励其广泛阅读相关书籍,扩大知识结构。 3.课前顶习和课后复习 每次课前预习时间应不少于相应教学内容的课堂讲授计划时间,课后复习以 课堂讲授内容为主线、完成相应作业为突破口。 四、教材及教学参考书 1.教材 [1]陈火旺,刘春林,谭庆平,赵克佳,刘超,程序设计语言编译原理(第 3版),国防工业出版社,2006. 2.参考书 [1)蒋宗礼,姜守旭,形式语言与自动机理论(第二版),清华大学出版社, 2007. [2)]王生原,董渊,张素琴,吕映芝,蒋维杜,编译原理(第3版),清华 大学出版社,2015. [3 Alfred V.Aho,Monica.SLam,RaviSethi等著,赵建华,郑滔等译,计算 机科学丛书:编译原理(第2版),机械工业出版社,2009. [4刘春林,王挺,周会平,钟求真,编译原理:学习指导与典型题解析, 国防工业出版社,2004. [5)陈意云,张昱,编译原理(第3版),高等教育出版社,2014. [6]陈意云,张昱,编译原理(第3版)习题精选与解析,高等教育出版社, 2014. 五、知识单元对课程目标的达成度设计 1.知识单元支撑课程目标情况表 围绕每一个具体的课程目标,从相关支撑知识单元的角度设计不同的考核方 式,如下表: 课程目标 知识单元 考核方式设计 第一知识单元:编译原理引论 第二知识单元:高级程序语言及其语法描述 以单选、填空、判 目标1 第三知识单元:词法分析 断等客观题方式 第四知识单元:语法分析一自上而下分析 考核。 第五知识单元:语法分析一自下而上分析 9
9 鼓励同学之间或同学与教师之间针对编译原理的重点和难点内容展开讨论, 以使学生掌握知识要点、扩大知识面和培养独立思考能力及创新能力。自学内容 应以学生掌握相关知识结构基础上能比较方便地看懂和理解为原则;对于有能力 的同学,鼓励其广泛阅读相关书籍,扩大知识结构。 3.课前预习和课后复习 每次课前预习时间应不少于相应教学内容的课堂讲授计划时间,课后复习以 课堂讲授内容为主线、完成相应作业为突破口。 四、教材及教学参考书 1.教材 [1] 陈火旺,刘春林,谭庆平,赵克佳,刘超,程序设计语言编译原理(第 3 版),国防工业出版社,2006. 2.参考书 [1] 蒋宗礼,姜守旭,形式语言与自动机理论(第二版),清华大学出版社, 2007.[2] 王生原,董渊,张素琴,吕映芝,蒋维杜,编译原理(第 3 版),清华 大学出版社,2015. [3] Alfred V.Aho,Monica S.Lam,Ravi Sethi 等著,赵建华,郑滔等译,计算 机科学丛书:编译原理(第 2 版),机械工业出版社,2009. [4] 刘春林,王挺,周会平,钟求真,编译原理:学习指导与典型题解析, 国防工业出版社,2004. [5] 陈意云,张昱,编译原理(第 3 版),高等教育出版社,2014. [6] 陈意云,张昱,编译原理(第 3 版)习题精选与解析,高等教育出版社, 2014. 五、知识单元对课程目标的达成度设计 1.知识单元支撑课程目标情况表 围绕每一个具体的课程目标,从相关支撑知识单元的角度设计不同的考核方 式,如下表: 课程目标 知识单元 考核方式设计 目标 1 第一知识单元:编译原理引论 第二知识单元:高级程序语言及其语法描述 第三知识单元:词法分析 第四知识单元:语法分析----自上而下分析 第五知识单元:语法分析----自下而上分析 以单选、填空、判 断等客观题方式 考核
第六知识单元:属性文法和语法制导翻译 第七知识单元:语义分析及中间代码产生 第八知识单元:符号表 第九知识单元:代码优化与代码生成 第三知识单元:词法分析 第四知识单元:语法分析自上而下分析 以单选、填空、判 第五知识单元:语法分析一自下而上分析 断等客观题和综 目标2 第六知识单元:属性文法和语法制导翻译 合题型等方式考 第七知识单元:语义分析及中间代码产生 核。 第八知识单元:符号表 第九知识单元:代码优化与代码生成 第三知识单元:词法分析 以单选、填空、判 第四知识单元:语法分析一自上而下分析 新等客观题和综 目标3 第五知识单元:语法分析一自下而上分析 合题型等方式考 第六知识单元:属性文法和语法制导翻译 核。 第七知识单元:语义分析及中间代码产生 以单选、填空、判 第六知识单元:属性文法和语法制导翻译 断等客观题和统 目标4 第七知识单元:语义分析及中间代码产生 合题型等方式考 第九知识单元:代码优化与代码生成 核。 2.课程的总体考核方法及量化评定标准 依照每部分知识单元对课程目标的支撑情况设计考核方法与成绩评定,本课 程成绩由平时成绩和期末考试成绩两部分组成,以百分制计算。平时成绩占30% 期末考试成绩占70%。平时成绩由上课考勤、课后作业成绩、期中考试成绩确定。 六、其它类别问题的说明 无。 大纲撰写人:张永梅、束劫 大纲审阅人:方英兰 系负责人:段建勇 学院负责人:马礼 制(修)订日期:2021年8月
10 第六知识单元:属性文法和语法制导翻译 第七知识单元:语义分析及中间代码产生 第八知识单元:符号表 第九知识单元:代码优化与代码生成 目标 2 第三知识单元:词法分析 第四知识单元:语法分析----自上而下分析 第五知识单元:语法分析----自下而上分析 第六知识单元:属性文法和语法制导翻译 第七知识单元:语义分析及中间代码产生 第八知识单元:符号表 第九知识单元:代码优化与代码生成 以单选、填空、判 断等客观题和综 合题型等方式考 核。 目标 3 第三知识单元:词法分析 第四知识单元:语法分析----自上而下分析 第五知识单元:语法分析----自下而上分析 第六知识单元:属性文法和语法制导翻译 第七知识单元:语义分析及中间代码产生 以单选、填空、判 断等客观题和综 合题型等方式考 核。 目标 4 第六知识单元:属性文法和语法制导翻译 第七知识单元:语义分析及中间代码产生 第九知识单元:代码优化与代码生成 以单选、填空、判 断等客观题和综 合题型等方式考 核。 2.课程的总体考核方法及量化评定标准 依照每部分知识单元对课程目标的支撑情况设计考核方法与成绩评定,本课 程成绩由平时成绩和期末考试成绩两部分组成,以百分制计算。平时成绩占 30%, 期末考试成绩占 70%。平时成绩由上课考勤、课后作业成绩、期中考试成绩确定。 六、其它类别问题的说明 无。 大纲撰写人:张永梅、束劼 大纲审阅人:方英兰 系负责人:段建勇 学院负责人:马礼 制(修)订日期:2021年8月