




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理 课程教学大纲(2005版)课程编码: 07153008课程性质:学科基础必修课学时: 64学分: 4开课单位: 计算机科学与技术学院授课对象: 计算机科学与技术专业本科生先修课程: 高级程序设计语言、数据结构、离散数学、汇编语言教材: 刘磊 编译原理及实现技术 机械工业出版社 2005参考书:1)陈火旺等 程序设计语言编译原理 国防工业出版社 20012)吕映芝,张素琴,蒋维杜 编译原理 清华大学出版社 19983) Alfred V.Aho,Ravi,Sethi,Jeffrey D.Ullman. Compilers: Principles, Techniques, and Tool. Addison Wesley, 1985.4)Charles N.Fischer, Richard J.LeBlanc. Crafting a Compiler with C. Pearson Education, 1991.一、教学目的 编译原理课程是计算机科学与技术专业学生的专业骨干课之一。通过学习这门课程,使学生掌握编译程序的基本原理、方法和实现技术,使学生更好的理解程序语言的内部机制,培养学生初步掌握设计大型系统软件的方法、技术以及设计大型软件的能力。二、教学基本要求1)正确理解什么是编译程序;了解编译程序工作的基本过程及其各阶段的基本任务;熟悉编译程序总框;了解编译程序的生成过程和构造工具。2)正确理解上下文无关文法基本概念,包括:文法的定义、编写、句型、句子、语言、语法树、二义性等;能进行各种文法等价变换;熟练掌握NFA、DFA、正则表达式和正则文法之间的等价关系,能够进行相互转换,掌握DFA的最小化算法。3)理解词法分析器功能及形式;熟练掌握词法分析器设计的原理,掌握运用状态转换图进行词法分析器设计。4)正确理解自上而下分析的基本思想;熟练掌握递归下降分析基本方法:消除左递归和公共前缀,消除回溯,构造递归下降子程序;掌握LL(1)分析程序的基本原理和LL(1)分析表构造;理解LL(1)方法的定义。5)正确理解自下而上语法分析的基本思想,以及归约、短语、句柄、分析树等概念;掌握简单优先分析基本方法:简单优先关系矩阵;LR类语法分析的基本思想及其分析表的构造,掌握LR类语法分析的基本过程。6)理解符号表的作用及符号表组织和使用方法,了解名字的作用范围,了解符号表中一般应包含的内容。7)正确理解语法制导翻译基本原理;熟悉常见的几种中间语言:四元式、三元式、逆波兰表示;掌握各种语句到四元式的翻译方法,包括:简单算术表达式,布尔表达式,控制语句,数组引用,过程调用等。了解自上而下分析制导翻译基本思想和实现方法。8)正确理解代码优化的定义和各种可能的优化概念;掌握基于基本块的局部优化方法。9)正确理解目标程序运行进存储空间的使用和组织管理方式;理解静态分配和动态存储分配基本思想;掌握栈式存储分配的处理方式;掌握栈式动态分配中活动记录和DISPLAY表作用、组织、内容及使用;了解嵌套过程语言程序运行时整个运行栈的内容的组织。10)正确理解代码生成过程的基本问题,理解临时变量、寄存器描述和地址模式等概念;掌握简单代码生成算法。三、教学内容及学时分配第一章 编译引论(2学时)主要内容:编译程序,编译过程概述,编译程序的结构,编译程序生成,学习构造编译程序。重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序框架。1.1 程序设计语言和编译程序1.2.1 编译程序构成1.2.2 遍1.2.3 编译程序的前端和后端1.3 编译程序和程序设计环境1.4 编译程序的实现第二章 形式语言与有限自动机(10学时)主要内容:上下文无关文法,文法等价变换,语法树与文法二义性,正规表达式与有限自动机。重点:上下文无关文法,正则表达式与有限自动机。2.1 语言和文法2.1.1 基本概念2.1.2 文法分类2.1.3 推导和归约2.1.4 语法树与文法二义性2.1.5 文法等价变换2.2 有限自动机(FA)2.2.1 确定有限自动机(DFA)2.2.2 非确定有限自动机(NFA)2.2.3 DFA与NFA的等价2.2.4 DFA的化简2.3 正则表达式第三章 词法分析(4学时)主要内容:词法分析器任务,词法分析器设计,词法分析器自动生成。重点:词法分析器的任务与设计,状态转换图。3.1 词法分析介绍3.1.1 词法分析程序的功能3.1.2 词法分析程序的接口3.2 词法分析程序的设计3.2.1 单词分类3.2.2 单词的内部表示3.2.3 单词的形式描述3.2.4 自动机的实现3.3 词法分析程序的实现3.3.1 实现词法分析程序应注意的问题3.3.2 标识符表和常量表3.3.3 单词结构3.3.4 实现算法3.4 词法分析程序自动生成3.4.1 LEX简介3.4.2 LEX工作原理3.4.3 LEX源文件结构3.4.4 LEX系统中的正则式3.4.5 LEX的使用方式3.4.6应用实例第四章 语法分析自顶向下分析方法(8学时)主要内容:上下文无关文法,自上而下语法分析(递归下降分析法,LL(1)方法)。重点:上下文无关文法,递归下降子程序,LL(1)分析表构造,LL(1)文法。4.1 语法分析程序介绍4.1.1 语法分析程序的功能4.1.2 语法错误类别及错误处理4.1.3 自顶向下语法分析基本思想4.1.4 三个重要的集合4.1.5 自顶向下语法分析条件4.2 递归下降法4.2.1 递归下降法语法分析原理4.2.2 递归下降法语法分析程序的构造4.3 LL(1)分析方法4.3.1 LL(1)分析法原理4.3.2 LL(1)分析表的构造4.3.3 LL(1)驱动程序构造4.4 自顶向下分析程序的自动生成第五章 语法分析自底向上分析方法(14学时)主要内容:自下而上语法分析(LR(0),LR(1),SLR(1),LALR(1)等语法分析方法、简单优先分析方法)。重点:简单优先关系矩阵的构造;LR类分析表的构造及其分析过程。5.1 自底向上语法分析方法介绍5.2 简单优先分析5.2.1 简单优先文法及其优先关系矩阵的构造5.2.2 简单优先分析算法5.3 LR分析法5.3.1 LR类分析法的工作过程5.3.2 LR(0)分析方法5.3.3 SLR(1)分析方法5.3.4 LR(1)分析方法5.3.5 LALR(1)分析方法5.3.6 LR方法小结5.4 自底向上分析程序的自动生成第六章 语义分析和符号表(8学时)主要内容:语义分析内容、标识符的内部表示、类型的内部表示、值的内部表示。符号表的组织和使用,整理与查找,名字的作用范围,表的内容。程序的语义分析方法。重点:符号表的作用与内容、语义分析原理及过程。6.1 语义分析概述6.2 标识符的内部表示6.3 类型的内部表示6.4 值的内部表示6.5 符号表的组织和管理6.5.1符号表的总体组织6.5.2符号表项的排列6.5.3符号表的建立与查找6.6嵌套式符号表和分程序结构的管理6.6.1简单C语言的符号表6.6.2 Pascal语言的符号表6.6.3带有分程序结构的符号表6.7 标号的语义分析第七章 中间代码生成(8学时)主要内容:语法制导翻译概述,各种常见中间语言形式,各种语句到四元式的翻译,自下而上分析制导翻译概述。重点:语法制导翻译基本思想;三种中间语言:四元式、三元式、逆波兰表示;算术表达式的翻译,布尔表达式的翻译,控制语句的翻译。7.1 常用的中间代码结构7.1.1 后缀式7.1.2 抽象语法树和DAG7.1.3三地址中间代码7.2 语法制导方法概论7.3 类型检查和类型转换7.4 中间代码生成中的几个问题7.4.1语义信息的获取和保存7.4.2语义栈Sem及其操作7.4.3常用的语义子程序7.5 表达式的中间代码生成7.6 下标变量的中间代码生成7.6.1 下标变量的地址7.6.2 下标变量的四元式结构7.6.3 下标变量的中间代码生成7.6.4 下标变量中间代码生成例7.7 赋值语句的中间代码7.8 过程调用和函数调用的中间代码7.9 控制语句的中间代码生成7.9.1 GOTO语句和标号定位的中间代码7.9.2 条件语句的中间代码7.9.3 While语句的中间代码7.10 过程 函数声明的中间代码生成第八章 中间代码优化(6学时)主要内容:优化概述,局部优化,基本块、程序流程图,常量表达式优化,基于常量定值分析的常表达式全局优化,公共表达式的优化,基于值编码的公共表达式局部优化,循环不变式外提等 。重点:常量表达式优化,公共表达式的优化,基于值编码的公共表达式局部优化,循环不变式外提。8.1 优化方法概述8.2 基本块划分8.3 常量表达式局部优化8.4 公共表达式局部优化8.5 循环不变式外提8.5.1 循环不变式外提概述8.5.2 循环不变式外提原理8.6 其它各类优化介绍第九章 运行时存储空间的组织与管理(8学时)主要内容:运行时存储空间结构,运行时存储空间的分配策略,简单的栈式存储分配的实现,过程活动记录,运行时变量的访问以及变量访问环境的三种实现方法。重点:静态分配策略和动态分配策略基本思想,嵌套过程语言栈式分配,活动记录、DISPLAY表、运行时栈的组织。变量访问环境的实现(掌握一种)9.1 目标程序运行时的活动9.1.1 过程的活动9.1.2 名字的作用域和绑定9.1.3 过程活动记录9.1.4 抽象地址分配9.1.5 参数传递9.2 运行时存储器的划分9.3 静态存储分配9.4 简单的栈式存储分配9.5 嵌套式语言的栈式存储分配9.5.1局部Display表方法9.5.2静态链方法9.5.3全局Display表方法9.6 堆式动态存储分配9.6.1 堆区的分配策略9.6.2 堆区的回收策略9.7 过程调用中几种特殊情况的处理9.9.1 非正常出口语句9.9.2 形式过程语句9.9.3 过程的奇特型调用第十章 目标代码生成(4学时)主要内容:目标代码的种类,临时变量的空间分配方法,基于多元式的单寄存器的目标代码生成重点:基于多元式的单寄存器的目标代码生成。10.1 目标代码生成介绍10.1.1 代码生成器的输入和输出10.1.2 指令选择10.2 虚拟机10.3 寄存器的分配10.3. 1 单寄存器机器的寄存器分配10.3. 2 多寄存器机器的寄存器分配10.4 四元式到目标代码的翻译10.4.1 表达式四元式的翻译10.4.2 赋值语句四元式的翻译10.4.3 输入输出语句四元式的翻译10.4.4 条件语句四元式的翻译10.4.5 循环语句四元式的翻译10.4.6 标号语句四元式和goto语句四元式的翻译10.4.7 过程、函数说明语句四元式的翻译10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司一季度奖励活动方案
- 2025至2030年中国保温救生衣行业投资前景及策略咨询报告
- 2025至2030年中国人体感应灯行业投资前景及策略咨询报告
- 2025至2030年中国主动提前预放电式避雷针行业投资前景及策略咨询报告
- 2025至2030年中国不锈钢手焊条行业投资前景及策略咨询报告
- 公司公众号宣传策划方案
- 公司创客活动方案
- 公司司庆书画活动方案
- 公司喜迎周年庆活动方案
- 公司团委红五月活动方案
- 2024年江苏法院书记员招聘笔试参考题库附带答案详解
- 光伏运维技能大赛考试题库及答案
- 工程伦理-工程案例分析
- 2023-2024部编版语文五年级上册第二单元统整教学设计
- 2025年4月自考27007应用文写作押题及答案
- 香水广告案例分析
- The-Art-of-War-孙子兵法-大学英语-学生讲课实践的课件
- 电线电缆产品生产许可证实施细则样本
- 2024年北京中考记叙文阅读专题02写 人记事散文(含答案解析)
- 2024年西部机场集团青海机场有限公司招聘笔试参考题库含答案解析
- 智慧树知到《医学统计学》章节测试答案
评论
0/150
提交评论