《编译原理》课程教学大纲_第1页
《编译原理》课程教学大纲_第2页
《编译原理》课程教学大纲_第3页
《编译原理》课程教学大纲_第4页
《编译原理》课程教学大纲_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译原理课程教学大纲一、课程基本信息课程名称(中文)编译原理课程名称(英文)Compiler Principles课程类别1:专业主干课课程性质2必修授课语言3中文授课学期5学分3课程学时及分配总学时讲课实验课外484080适用专业计算机科学与技术教材编译原理(本科教学版)(第2版),机械工业出版社,美阿霍等著,赵建华等译,2017年1月第1版 授课学院计算机与软件学院先修课程程序设计基础、离散数学、数据结构、计算机组成原理后续课程无课程简介课程基本定位:编译原理是计算机科学与技术专业的一门理论性与实践性很强的专业课,以离散数学、高级语言程序设计、数据结构、计算机组成原理等作为先修课程。编译原

2、理课程蕴涵着复杂问题的抽象能力、解决问题的分析思路和方法等分析问题能力的培养。课程从计算机科学中形式语言与自动机的基本理论出发,全面系统地介绍编译系统程序的主要功能、设计原理和构造方法,重点解决高级程序设计语言翻译器时遇到的普遍问题,而不偏向于某种源语言或目标机器。本课程讨论的概念和技术也可应用于一般的软件设计之中。核心学习结果:通过本课程的学习,学生应该掌握程序设计语言翻译过程的基本原理、方法、技术,为学生毕业后从事复杂软件设计及计算机科学研究等相关工作培养理论学习基础以及实践技能的训练。学习课程有利于对程序设计语言的理解,可以便于掌握新的语言工具。同时,能够利用形式化描述工具,表示复杂问题

3、及求解过程。主要教学方法: 课堂讲授+课程实验大纲更新时间2020年8月13日注:1.课程类别:选填“通识核心课/通识拓展课/通修课/学科基础课/专业主干课/专业选修课/专业实践/素质拓展”2.课程性质:选填“选修/必修”3.授课语言:选填“中文/双语/全英文或其他语种”二、课程目标序号课程目标(参考培养目标、毕业要求、课程定位)支撑毕业要求指标点1达成途径1.1了解机器是如何理解不同语言的代码,了解编译过程和工作原理,了解编译过程中用到的正则表达式、有穷自动机、语法分析树、词法语法分析方法等基本概念和技术,了解基于DAG 的局部优化和循环优化等编译器的优化策略等。培养学生解决问题时的逻辑思维

4、和推理能力;毕业指标点1.1:掌握数学与自然科学的基本概念、基本理论和基本技能,领会数学、物理思想方法,培养逻辑思维和逻辑推理能力;课后作业、考试1.2让作为计算机专业的学生在今后编程时,更加清楚编译的底层逻辑,了解机器是如何巧妙地一步步理解你所写的代码,并最终将其转换成二进制码,通过机器进行执行,其中针对编译器设计提出的一些经典算法可以在将来应用到现代软件的设计当中,针对工程问题提出创新的解决方案。毕业要求指标点3.4 在充分理解计算机软硬件及系统的基础上,能够设计针对计算机领域复杂工程问题的解决方案,设计或开发满足特定需求和约束条件的软硬件系统、模块或算法流程,能够进行模块和系统级优化;毕

5、业要求指标点 5.2在计算机领域复杂工程问题的建模、模拟或解决过程中,能够使用恰当的技术、软硬件及系统资源和研发工具,提高解决复杂工程问题的能力和效率。课后作业、实验课、考试注:1.支撑毕业要求指标点:选填项。需要进行专业认证,有毕业要求指标点可参照的课程必填,无明确毕业要求指标点可参照的可不填。三、理论教学内容章标题教学内容学时思政融入点1学生学习预期成果2教学方式3课程目标第一章绪论1.编译的定义2.编译器的结构3.编译过程简介2与同学交流:这门课的学习不是一件容易的事情,但这门课却是计算机专业学生的特色,鼓励学生迎难而上,直面挑战。1. 了解编译程序的起源2. 程序设计语言的发展3. 理

6、解编译程序和解释程序的区别4. 了解编译程序的基本工作过程5. 理解编译程序的基本结构6. 掌握编译程序各逻辑结构的主要功能讲授课程目标1素养:科学素质、社会责任第二章程序设计语言及其文法1. 语言及其文法基本概念2. 高级语言的一般特性3. 文法的分类和CFG分析树41. 理解形式语言中语法的概念2. 了解语义的概念3. 了解高级语言的分类4. 了解高级语言的结构5. 理解上下文无关文法6. 理解语法分析树与二义性7. 理解形式语言的分类讲授、讨论课程目标1,2素养:科学素质第三章词法分析1. 词法分析器的功能和设计2. 正则表达式和正则定义3. 有穷自动机及其分类、NFA到DFA的转换、识

7、别DFA4. Lex工具的使用61. 了解词法分析器的功能和输出形式2. 理解词法分析器作为一个独立子程序3. 掌握状态转换图及实现4. 理解单词符号的识别:超前搜索5. 掌握正则表达式与正则定义6. 掌握确定有限自动机(DFA)7. 掌握非确定有限自动机(NFA)8. 掌握正则文法与有限自动机的等价性9. 掌握正则式与有限自动机的等价性10. 掌握确定有限自动机的化简11. 了解Lex 工具的使用方法讲授、习题、实验课程目标1,2素养:科学素质第四章语法分析-自上而下分析1. 语法分析器的功能2. 自顶向下分析和LL(1)文法3. 递归预测分析法4. 非递归的预测分析法6和学生讨论运用辩证的

8、思维解决问题,抓住问题的主要方面,忽略次要方面,学会抓重点来解决问题。1. 了解语法分析程序的功能2. 掌握自上而下分析面临的问题3. 掌握左递归的消除方法4. 掌握避免回溯、提左因子的方法5. 理解LL(1)文法的定义6. 理解递归下降分析程序的构造方法7. 理解预测分析程序工作过程8. 掌握First和Follow集的计算、预测分析表的构造9. 了解LL(1)分析中的错误处理10. 理解词法分析器作为一个独立子程序讲授、习题、实验课程目标1,2素养:科学素质第五章语法分析-自下而上分析1. 自下而上分析基本问题2. 算符优先分析3. LR分析法4. 语法分析器的自动产生工具Yacc8与学生

9、交流探讨理论与实践的关系,理论可以指导实践,通过实践可以巩固理论知识。在遇到较难的问题面前,应该迎难而上,多思考想办法克服困难,做到不畏难。1. 掌握归约的方法2. 理解符号栈的使用与语法树的表示3. 掌握算符优先分析算法4. 了解优先函数5. 了解算符优先分析中的出错处理6. 理解LR 分析器的工作方法7. 掌握LR(0)项目集族和LR(0)分析表的构造8. 掌握SLR 分析表的构造9. 了解Yacc 工具的使用讲授、习题、实验课程目标1,2素养:科学素质第六章语义分析、语法制导翻译及中间代码生成1. 属性文法2. 翻译模式3. 语义处理4. 语法制导翻译5. 中间代码6. 简单赋值语句的翻

10、译7. 数组的翻译8. 布尔表达式和控制结构的翻译61. 了解基于属性文法的处理方法2. 理解属性的依赖图和属性计算方法3. 了解S-属性文法的自下而上计算4. 了解L-属性文法和自顶向下翻译5. 理解自顶向下翻译及常见语言的翻译及中间代码表示6. 了解递归下降翻译器的设计理解符号栈的使用与语法树的表示7. 理解后缀式、图表示法、三地址代码的中间代码表示方法8. 掌握四元式的表示方法9. 理解说明语句的翻译方法10. 理解赋值语句的翻译11. 理解简单算术表达式及赋值语句12. 理解数组元素的引用13. 掌握控制结构中的布尔式翻译14. 理解简单控制语句的翻译讲授、讨论、案例、习题课程目标1,

11、2素养:科学素质第七章符号表的组织与管理1. 理解符号表的构成0掌握符号表的构造与组织自学课程目标1,2素养:科学素质第八章运行时存储空间组织1. 目标程序运行时的活动2. 存储分配策略41. 了解过程(函数)的活动2. 理解参数传递基本过程3. 了解运行时存储器的划分4. 理解活动记录5. 了解静态存储分配6. 理解简单的栈式存储分配7. 理解C 的活动记录及函数调用、函数进入、数组空间分配和过程返回8. 了解嵌套过程语言的栈式实现9. 了解堆式动态存储分配讲授、演示、习题课程目标1,2素养:科学素质第九章 优化1. 什么是优化2. 局部优化3. 循环优化41. 理解局部优化的基本方案2.

12、掌握基本块的DAG 表示及其应用3. 了解循环优化、代码外提、强度削弱、删除归纳变量等常用局部优化方法讲授、演示、习题课程目标1,2素养:科学素质注:1.思政融入点:至少写3条,简述该课程教学中将思政教育内容与专业教育内容有机融合的知识点(下同)。 2.学生学习预期成果:描述学生在学完本节内容后应获得的知识、能力或素养水平(下同) 3.教学方式:包括讲授、讨论、案例、演示等,但不限于所列,根据课程实际需要列举四、实践(实验或实习)教学1编号实验或实习项目名称教学内容学时实验或实习类型2思政融入点学生学习预期成果课程目标1词法分析程序的实现编程实现词法分析过程:1) 按规则拼单词,并转换成二元式

13、形式2) 删除注释行3) 删除多余的空格、回车符、制表符4) 列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式,填写并生成符号表5) 发现并定位错误4设计型1) 理解应用DFA 表示高级语言源程序的单词构成;2) 深刻领会状态转换图的含义,逐步理解有限自动机;3) 掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。课程目标1,2素养:科学素质、团队合作2语法分析程序的实现1)设计合适的文法的规则存储结构;2)利用语法分析程序模拟文法的推导句子的基本过程。4设计型1) 理解高级语言语法的表示工具上下文无关文法;2) 深刻领会规则的含义,并能够

14、利用递归程序或者其他相关算法模拟推导/规约的过程;3) 掌握手工生成语法分析器的方法,了解语法分析器的内部工作原理。课程目标1,2素养:科学素质、团队合作注:1.此表可用于课内实践教学环节或某门综合实践课程2.实验类型:选填”验证性/综合性/设计性”;实习类型:选填“认识实习/生产实习/毕业实习”五、课程评价(一)考核内容、考核方式与课程目标对应关系课程目标考核内容课程目标在各考核方式中占比1平时作业实验期中考试期末考试1.1编译过程和编译程序的结构,文法的构造,非确定有限自动机的确定化和最小化,正规表达式与有限自动机的等价性,消除文法的左递归和回溯,算符优先分析表和优先函数的构造,属性的计算

15、,翻译模式的构造,说明语句、赋值语句、布尔表达式和控制语句等的翻译,名字的作用范围和运行时存储空间的分配,基于DAG 的局部优化和循环优化等。50%40%60%60%1.2编译过程中用到的经典算法,如子集构造法、递归和非递归的预测分析法、LR语法分析算法等。熟练应用这些方法进行语法分析和推导。50%60%40%40%合计100%100%100%100%各考核方式占总成绩权重(自行赋值)10%10%20%60%注:1. 课程目标在考核方式及占比:主要根据课程目标自行设计和制定多元化考核方式,表中所列仅为参考(红色数据可删除)。但所列考核方式必须覆盖全体学生,可根据当学期具体教学情况酌情调整。2.

16、 各考核方式占总成绩权重:根据课程实际情况对各考核方式占总成绩的权重予以赋值。(二)考核方式评分标准1课程作业评分标准课程目标评分标准占比90-100(优)80-89(良)70-79(中)60-69(及格)0-59(不及格)1.1 正确完成基本上所有习题和实验。较好地完成大部分习题和实验。完成了大部分习题和实验、有一些明显的错漏完成了大部分习题和实验、有较多明显的错漏仅完成小部分习题和实验、并有很多明显的错漏50%1.2正确运用所学算法进行文法分析能正确运用所学的大部分算法进行文法分析能运用所学大部分的算法进行文法分析,有一些错误能运用所学算法进行少部分的文法分析,有较多明显的错误无法或很少量

17、可以运用所学算法进行文法分析50%2期中/期末考试评分标准(笔试类评分标准可在大纲中按以下格式予以说明,也可在通过“试卷分析表”予以说明)课程目标评分标准占比90-100(优)80-89(良)70-79(中)60-69(及格)0-59(不及格)1.1掌握所有基本概念和知识点、理解其含义较好地掌握基本概念和知识点、基本理解其含义、略有出错部分掌握基本概念和知识点、大致理解其含义、有一些明显的错漏对重要知识点未完全理解、基本概念不清仅掌握了很少量的基本概念和知识点、解题思路混乱60%1.2能够针对不同文法,熟练运用编译器的不同算法对其进行分析能够针对大部分文法,正确运用编译器的不同算法对其进行分析能够针对基本的一些文法,正确运用编译器的不同算法对其进行分析能够针对较少量文法,运用编译器的少数算法对其进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论