《编译原理》课程教学大纲一、课程信息课程名称:编译原理Compiler Principles课程代码:06E4127B课程类别:专业核心课适用专业:计算机科学与技术专业课程学时:48学时课程学分:2.5学分修读学期:第6学期先修课程:计算机导论,高级语言,离散数学,数据结构,操作系统二、课程目标《编译原理》是计算机科学与技术专业本科生的一门专业核心课程。本课程主要介绍编译程序的工作原理及构造方法,使学生掌握编译原理中语言的形式化表示方法及相关的基础知识,了解编译程序各阶段的实现方法和技巧,理解各种实现技术中的算法,能根据教学内容中的理论设计相关算法,并上机实现。同时,本课程涉及到许多复杂的数据结构和算法,可提高学生的程序设计的能力;而且通过对编译程序的系统学习,可以培养学生的抽象思维、分析问题和解决问题的能力,从而为今后从事应用软件和系统软件的开发打下一定的理论和实践基础。(一)具体目标通过本课程的学习,使学生达到以下目标:1.掌握形式语言和自动机的基本概念,理解高级语言编译的基本原理,并能够将这些原理应用于高级语言的分析设计之中。【支撑毕业要求指标点1.3】2.能够理解现有某高级语言的编译系统中各模块的功能和实现方法,对不同方法的优劣进行对比和分析,并通过查阅文献,调研和分析其编译器实现的解决方案。【支撑毕业要求指标点4.1】3.理解编译程序的结构及各种模块的功能,利用软件工程方法分析和设计
《编译原理》课程教学大纲 一、课程信息 课程名称:编译原理 Compiler Principles 课程代码:06E4127B 课程类别:专业核心课 适用专业:计算机科学与技术专业 课程学时:48学时 课程学分:2.5学分 修读学期:第6学期 先修课程:计算机导论,高级语言,离散数学,数据结构,操作系统 二、课程目标 《编译原理》是计算机科学与技术专业本科生的一门专业核心课程。本课程 主要介绍编译程序的工作原理及构造方法,使学生掌握编译原理中语言的形式化 表示方法及相关的基础知识,了解编译程序各阶段的实现方法和技巧,理解各种 实现技术中的算法,能根据教学内容中的理论设计相关算法,并上机实现。同时, 本课程涉及到许多复杂的数据结构和算法,可提高学生的程序设计的能力;而且 通过对编译程序的系统学习,可以培养学生的抽象思维、分析问题和解决问题的 能力,从而为今后从事应用软件和系统软件的开发打下一定的理论和实践基础。 (一)具体目标 通过本课程的学习,使学生达到以下目标: 1. 掌握形式语言和自动机的基本概念,理解高级语言编译的基本原理,并 能够将这些原理应用于高级语言的分析设计之中。【支撑毕业要求指标点 1.3】 2. 能够理解现有某高级语言的编译系统中各模块的功能和实现方法,对不 同方法的优劣进行对比和分析,并通过查阅文献,调研和分析其编译器实现的解 决方案。【支撑毕业要求指标点 4.1】 3. 理解编译程序的结构及各种模块的功能,利用软件工程方法分析和设计
某语言的编译程序的各个模块,并能够选择合适的方法实现。【支撑毕业要求指标点2.1】4.能够针对计算机科学与技术的快速发展,培养自主学习和终身学习的习惯,并具备批判性思维和创新意识。【支撑毕业要求指标点12.1、12.2】(二)课程目标与毕业要求的对应关系表1课程目标与毕业要求指标点的对应关系课程目标支撑的毕业要求支撑的毕业要求指标点1.3掌握计算机知识和数学建模的方法,应用于计算机工程问题的课程目标11.工程知识推演和分析。4.1能够基于计算机科学技术及相关学科的科学原理,通过文献研课程目标24.科学研究究或相关方法,调研和分析复杂计算机工程问题的解决方案。2.2利用计算机科学知识,在分析和识别计算机复杂工程问题的基课程目标32.间题分析础上,使用数学建模的方法进行描述和解决。12.1理解计算机技术环境的多样化以及计算机应用发展和技术进步对于知识和能力的影响和要求,具有识别和洞察计算机领域知识发展和新研究方向的能力,认识到自主学习和终身学习的必要性。课程目标412.终身学习12.2具有自主学习的能力,具有批判性思维意识并能够运用适当的逻辑和智力标准分析、判断和决策,能进行批判性自我评价与绩效评估,并以此作为追踪个人发展需要和成就的主要手段。三、课程内容(一)课程内容与课程目标的关系表2课程内容与课程目标的关系教学方法学时安排课程内容支撑的课程目标第一章引论讲投、讨论课程目标1、246第二章文法与语言讲授、讨论课程目标1、210第三章词法分析课程目标1、2、3、4讲授、讨论、图解、实验第四章语法分析一自10讲授、讨论、示例、实验课程目标1、2、3、4上而下分析第五章语法分析一自10讲投、讨论、示例、实验课程目标1、2、3、4下而上分析
某语言的编译程序的各个模块,并能够选择合适的方法实现。【支撑毕业要求指 标点 2.1】 4. 能够针对计算机科学与技术的快速发展,培养自主学习和终身学习的习 惯,并具备批判性思维和创新意识。【支撑毕业要求指标点 12.1、12.2】 (二)课程目标与毕业要求的对应关系 表 1 课程目标与毕业要求指标点的对应关系 课程目标 支撑的毕业要求 支撑的毕业要求指标点 课程目标 1 1.工程知识 1.3 掌握计算机知识和数学建模的方法,应用于计算机工程问题的 推演和分析。 课程目标 2 4.科学研究 4.1 能够基于计算机科学技术及相关学科的科学原理,通过文献研 究或相关方法,调研和分析复杂计算机工程问题的解决方案。 课程目标 3 2.问题分析 2.2 利用计算机科学知识,在分析和识别计算机复杂工程问题的基 础上,使用数学建模的方法进行描述和解决。 课程目标 4 12.终身学习 12.1 理解计算机技术环境的多样化以及计算机应用发展和技术进 步对于知识和能力的影响和要求,具有识别和洞察计算机领域知识 发展和新研究方向的能力,认识到自主学习和终身学习的必要性。 12.2 具有自主学习的能力,具有批判性思维意识并能够运用适当的 逻辑和智力标准分析、判断和决策,能进行批判性自我评价与绩效 评估,并以此作为追踪个人发展需要和成就的主要手段。 三、课程内容 (一)课程内容与课程目标的关系 表2 课程内容与课程目标的关系 课程内容 教学方法 支撑的课程目标 学时安排 第一章 引论 讲授、讨论 课程目标 1、2 4 第二章 文法与语言 讲授、讨论 课程目标 1、2 6 第三章 词法分析 讲授、讨论、图解、实验 课程目标 1、2、3、4 10 第四章 语法分析—自 上而下分析 讲授、讨论、示例、实验 课程目标 1、2、3、4 10 第五章 语法分析—自 下而上分析 讲授、讨论、示例、实验 课程目标 1、2、3、4 10
第六章语法制导翻译讲投、讨论、示例、实验课程目标1、2、3、46和中间代码生成2第七章代码优化讲授、讨论、比较分析课程目标1、2、3、4合计48学时(二)具体内容第一章引论(4学时)【教学目标与要求】1、教学目标:对编译程序整体结构有个直观的认识和了解。2、教学要求:理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。【教学重点与难点】1、教学重点:编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。2、教学难点:遍。【学习内容】1.1什么是编译程序1.2编译过程和编译程序的结构1.3解释程序和一些软件工具【思政元素融入点】结合历史事实,通过类比的方式,讲授程序的两种执行方式:编译执行和解释执行,以及两种方式在计算机行业长期并存的内在原因,使学生不仅仅从科学技术的角度,更深入从社会学的层面理解高泽东思想的“两条腿走路”方针的普遍意义,增强中国特色社会主义的道路自信。第二章文法与语言(6学时)【教学目标与要求】1、教学目标:简单语言的文法构造。2、教学要求:了解句型的两种分析方法。掌握通过文法能分析该文法所描述的语言、语法分析树、能通过画语法树来分析一个文法描述的语言是否具有二
第六章 语法制导翻译 和中间代码生成 讲授、讨论、示例、实验 课程目标 1、2、3、4 6 第七章 代码优化 讲授、讨论、比较分析 课程目标 1、2、3、4 2 合计 48 学时 (二)具体内容 第一章 引论(4 学时) 【教学目标与要求】 1、教学目标:对编译程序整体结构有个直观的认识和了解。 2、教学要求:理解编译程序、解释程序和遍的基本概念;掌握编译过程各 阶段的任务和编译程序逻辑结构及其各部分的基本功能。 【教学重点与难点】 1、教学重点:编译过程各阶段的任务和编译程序逻辑结构及其各部分的基 本功能。 2、教学难点:遍。 【学习内容】 1.1 什么是编译程序 1.2 编译过程和编译程序的结构 1.3 解释程序和一些软件工具 【思政元素融入点】 结合历史事实,通过类比的方式,讲授程序的两种执行方式:编译执行和解 释执行,以及两种方式在计算机行业长期并存的内在原因,使学生不仅仅从科学 技术的角度,更深入从社会学的层面理解高泽东思想的“两条腿走路”方针的普 遍意义,增强中国特色社会主义的道路自信。 第二章 文法与语言(6 学时) 【教学目标与要求】 1、教学目标:简单语言的文法构造。 2、教学要求:了解句型的两种分析方法。掌握通过文法能分析该文法所描 述的语言、语法分析树、能通过画语法树来分析一个文法描述的语言是否具有二
义性;了解文法的Chomsky分类:掌握上下文无关文法及语法树并能够识别上下文无关文法的定义和正规文法。【教学重点与难点】1、教学重点:上下文无关文法,推导,句子和句型,文法生成语言,语法分析树和二义性文法。2、教学难点:上下文无关文法,语法分析树,两种句型的分析方法。【学习内容】2.1文法的直观概念2.2符号和符号串2.3文法与语言的形式定义2.4文法的类型2.5上下文无关文法及其语法树2.6句型的分析2.7有关文法实际应用的一些说明【思政元素融入点】通过文法形式化定义及其对句子合法性判定的应用,引导学生了解规则、认同规则、遵守规则、敬畏规则,养成良好的规则意识,养成用规则约束和规范自身行为的良好习惯,社会才能有序、和谐的发展。第三章词法分析(10学时)【教学目标与要求】1、教学目标:简单词法分析器的设计。2、教学要求:理解编译程序的第一个阶段词法分析的设计原理和设计方法,掌握正则文法、状态转换图、DFA、NFA、正规式和正规集的基本概念和词法分析设计与编写。【教学重点与难点】1、教学重点:词法分析器的任务与设计,状态转换图。2、教学难点:正规文法、正规集、DFA、NFA的相互转化。【学习内容】3.1词法分析程序的设计
义性;了解文法的 Chomsky 分类;掌握上下文无关文法及语法树并能够识别上 下文无关文法的定义和正规文法 。 【教学重点与难点】 1、教学重点:上下文无关文法,推导,句子和句型,文法生成语言,语法 分析树和二义性文法。 2、教学难点:上下文无关文法,语法分析树,两种句型的分析方法。 【学习内容】 2.1 文法的直观概念 2.2 符号和符号串 2.3 文法与语言的形式定义 2.4 文法的类型 2.5 上下文无关文法及其语法树 2.6 句型的分析 2.7 有关文法实际应用的一些说明 【思政元素融入点】 通过文法形式化定义及其对句子合法性判定的应用,引导学生了解规则、认 同规则、遵守规则、敬畏规则,养成良好的规则意识,养成用规则约束和规范自 身行为的良好习惯,社会才能有序、和谐的发展。 第三章 词法分析(10 学时) 【教学目标与要求】 1、教学目标:简单词法分析器的设计。 2、教学要求:理解编译程序的第一个阶段词法分析的设计原理和设计方法, 掌握正则文法、状态转换图、DFA、NFA、正规式和正规集的基本概念和词法分 析设计与编写。 【教学重点与难点】 1、教学重点:词法分析器的任务与设计,状态转换图。 2、教学难点:正规文法、正规集、DFA、NFA 的相互转化。 【学习内容】 3.1 词法分析程序的设计
3.2单词的形式化描述工具3.3有穷自动机3.4正规式和有穷自动机的等价性3.5正规文法和有穷自动机等价性【思政元素融入点】词法分析的主要任务是识别出一个个独立而又意义的单词,并结合自然语言分词技术的研究发展,了解汉语自动分词算法对中文搜索引擎发展的重要性,激发学生们对信息检索和自然语言研究的热情和积极性,培养勇于探究的精神。第四章语法分析一自上而下分析(10学时)【教学目标与要求】1、教学目标:基于确定的自顶向下语法分析法设计简单的语法分析器。2、教学要求:理解递归下降分析、LL(1)文法的基本概念;掌握无回朔的递归下降分析的设计和实现、LL(1)分析表的构造与分析方法。【教学重点与难点】1、教学重点:预测分析表构造,LL(1)文法。2、教学难点:LL(1)文法预测分析表构造。【学习内容】4.1确定的自顶向下分析思想4.2 LL(1)文法的判别4.3某些非LL(1)到LL(1)文法的等价变换4.4不确定的自顶向下分析思想4.5LL(1)分析的实现【思政元素融入点】基于LL(1)文法,通过分析推导判定句子语法的合法性,培养学生的逻辑思维能力,提升分析和解决问题的能力;同时,在分析过程中,培养学生全局观和严谨的科学精神。第五章语法分析一自下而上分析(10学时)【教学目标与要求】1、教学目标:基于算符优先语法分析法设计简单的语法分析器
3.2 单词的形式化描述工具 3.3 有穷自动机 3.4 正规式和有穷自动机的等价性 3.5 正规文法和有穷自动机等价性 【思政元素融入点】 词法分析的主要任务是识别出一个个独立而又意义的单词,并结合自然语言 分词技术的研究发展,了解汉语自动分词算法对中文搜索引擎发展的重要性,激 发学生们对信息检索和自然语言研究的热情和积极性,培养勇于探究的精神。 第四章 语法分析—自上而下分析(10 学时) 【教学目标与要求】 1、教学目标:基于确定的自顶向下语法分析法设计简单的语法分析器。 2、教学要求:理解递归下降分析、LL(1)文法的基本概念;掌握无回朔的递 归下降分析的设计和实现、LL(1)分析表的构造与分析方法。 【教学重点与难点】 1、教学重点:预测分析表构造,LL(1)文法。 2、教学难点:LL(1)文法预测分析表构造。 【学习内容】 4.1 确定的自顶向下分析思想 4.2 LL(1)文法的判别 4.3 某些非 LL(1)到 LL(1)文法的等价变换 4.4 不确定的自顶向下分析思想 4.5 LL(1)分析的实现 【思政元素融入点】 基于 LL(1)文法,通过分析推导判定句子语法的合法性,培养学生的逻辑思 维能力,提升分析和解决问题的能力;同时,在分析过程中,培养学生全局观和 严谨的科学精神。 第五章 语法分析—自下而上分析(10 学时) 【教学目标与要求】 1、教学目标:基于算符优先语法分析法设计简单的语法分析器