编译原理课程doc_第1页
编译原理课程doc_第2页
编译原理课程doc_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理课程教学大纲课程代码:课程名称:编译原理 Compile Principle课程类型: 专业课学时学分: 48 学时/3 学分适用专业:计算机科学与技术 开课部门:灾害信息工程系一、课程的地位、目的和任务 编译原理是计算机专业的一门重要的专业基础课程 , 它的主要任务是系统地 介绍编译程序的基本原理、基本实现方法 , 编译方面的最新技术及其研究发展方向。 通过本课程的学习 , 应使学生掌握高级程序设计语言的编译原理及其基本实现技术 , 了解编译方面的最新技术发展和研究方向 , 具有设计、实现编译程序的基本能力。二、课程与相关课程的联系与分工 编译原理与操作系统原理、数据库系统原理、计算

2、机系统结构关系密切同时它的 研究对象是计算机语言的编译过程,所以本门课程的先修课是高级语言程序设计、数 据结构、操作系统原理、数据库系统原理、计算机系统结构。通过教学使学生了解、 掌握高级语言编译程序构造的一般原理和基本实现方法。即:词法分析 - 语法分析 - 中间代码生成 - 优化 - 目标代码生成。而且,编译技术所涉及的建模技术同样适合其 他软件的建模,也帮助学生提高运用所学知识进行独立分析问题和解决问题的能力。 本课程的后续课程是计算理论。三、教学内容与基本要求课程内容要按章、节、目的顺序列出,并按“了解” 、“理解”和“掌握”等层次, 对主要“知识点”、“能力点”提出基本要求。同时指明

3、教学的重点和难点所在。大学 计算机基础、体育等课程也可以根据内容分块。第一章 概述1. 教学内容1.1 程序设计语言与翻译程序1.2编译过程和编译程序的结构1.3编译程序的构造1.4编译程序的发展与应用1.5小结1.6习题2. 重点难点 重点:通用程序设计语言的主要特征;编译器在计算机系统中的地位和作用;编 译器的基本工作原理;编译器各个阶段的工作与任务;编译器的编写工具。难点:编译器的基本工作原理。3. 基本要求 理解什么是编译程序,了解编译程序工作的基本过程及其各阶段的基本任务,熟 悉编译程序总体框架,了解编译程序的生成过程和构造工具。第 2 章 形式语言基础知识1. 教学内容2.1符号和

4、符号串2.2上下文无关文法及其语言2.3语法树和文法的二义性2.4文法的分类2.5类 Pascal 语言 Sample 的简单介绍2.6小结2.7习题2. 重点难点 重点:形式语言中几个重要概念:文法、语法树、二义性、文法分类等。 难点:文法的二义性。3. 基本要求 理解程序语言词法、语法和语义等概念,熟悉高级程序语言一般结构和主要共同特征。正确理解上下文无关文法基本概念,包括:文法的定义、编写、句型、句子、 语言、语法树、二义性等。第 3 章 词法分析1. 教学内容3.1词法分析的任务和功能3.2词法分析器的设计3.3正规文法 .c 正规式与有穷自动机3.4词法分析器的自动产生3.5 小结3

5、.6 习题2. 重点难点 重点:词法分析器作用和基本工作方式;构词规则与词法分析的关系;利用状态 转换图构造词法分析器的基本方法;词法的形式化描述和词法分析器设计。难点:利用状态转换图构造词法分析器;正规表达式与有限状态自动机。3. 基本要求 理解词法分析器功能及形式,熟练掌握词法分析器设计的原理,掌握运用状态转 换图进行词法分析器设计。第 4 章 语法分析1. 教学内容4.1 语法分析概述4.2 自上而下分析面临的问题及其解决方法4.3 确定的自上而下的分析方法4.4 Sample 语言自上而下语法分析程序的设计4.5 自下而上语法分析的思想4.6 算符优先分析4.7 LR分析法4.8 语法

6、分析器的自动生成工具 Yacc4.9 语法分析程序中的错误处理4.10 小结4.11 习题2. 重点难点 重点:上下文无关文法、 LL(1) 文法和语法分析方法:自下而上分析法(算符优 先分析法)和自上而下分析法(递归下降分析法和预测分析方法) 。难点:SLR( 1)分析表构造。3. 基本要求 理解自上而下分析的基本思想,熟练掌握递归下降分析基本方法:消除左递归、 消除回溯,构造递归下降子程序,掌握预测分析程序的基本原理和预测分析表构造, 理解 LL(1) 方法的定义。理解自下而上语法分析的基本思想以及归约、短语、句柄、 分析树等概念, 掌握算符优先分析基本方法, 算符优先表和和算符优先函数构

7、造技术。第 5 章 语义分析和中间代码生成1. 教学内容5.1 静态语义检查5.2 中间代码的形式5.3 属性文法和语法制导的翻译5.4 常见语句的语法制导的翻译5.5 Sample 语言语法制导的翻译程序的设计5.6 小结5.7 习题2. 重点难点 重点:语法制导翻译的原理及各种语句的翻译方式,中间代码的概念。 难点:常见语句的语法制导翻译。3. 基本要求 理解语法制导翻译基本原理,掌握基于属性文法的处理方法,了解自上而下分析 制导翻译基本思想和实现方法。熟悉常见的几种中间语言:四元式、三元式、逆波兰 表示,掌握各种语句到四元式的翻译方法,包括简单算术表达式,布尔表达式,控制 语句,数组引用

8、,过程调用等。第 6 章 运行时存储空间的组织1. 教学内容6.1 源程序及其目标程序执行时的活动6.2 程序执行时的存储器组织6.3 静态存储分配6.4 栈式存储分配6.5 堆式存储分配6.6 小结6.7 习题2. 重点难点重点:程序执行时存储器组织及各种内存分配方式 难点:各种内存分配方式3. 基本要求 正确理解目标程序运行进存储空间的使用和组织管理方式, 理解静态分配和动态 存储分配基本思想,掌握动态存储分配的处理方式,掌握栈式动态分配中活动记录的 作用、组织、内容及使用,了解嵌套过程语言程序运行时整个运行栈的内容的组织。第 7 章 代码优化1. 教学内容7.1 概述7.2局部优化7.3

9、循环优化7.4小结7.5习题2. 重点难点重点:各种优化方法:局部优化、循环优化。难点:各种优化方法:局部优化、循环优化。3. 基本要求正确理解代码优化的定义和各种可能的优化概念,掌握用DAG表示进行局部优化的方法。第8章目标代码生成1. 教学内容8.1 概述8.2目标机器8.3简单的代码生成算法8.4从DAG生成目标代码8.5 Sample语言代码优化及目标代码生成器的设计8.6小结8.7习题2. 重点难点重点:代码生成过程中涉及到的方法难点:中间代码的简单翻译方法、引用信息和活跃信息、寄存器描述和地址描述、 基本块的代码生成算法3. 基本要求理解代码生成过程的基本问题,理解待用信息、寄存器

10、描述和地址描述等概念, 掌握简单代码生成算法、寄存器分配策略。四、课程学时分配(以章节为单位)教学内容学时分配合计讲课实验上机讨论/习题第1章概述2学时2学时第2章形式语言基础知识2学时2学时4学时第3章词法5学时2学时4学时分析第4章语法分析8学时4学时1学时12学时第5章语义分析和中间代码生成5学时2学时1学时8学时第6章动行 时存储空间的 组织2学时2学时6学时第7章代码优化4学时2学时6学时第8章目标代码生成4学时2学时6学时合计30学时16学时2学时48学时五、推荐教材和教学参考书1. 推荐教材:编译原理及实践教程,作者:黄贤英,王柯柯,出版社:清华大学出版社,出版年月:2008年2月,第一版。2. 程序设计语言编译,陈火旺,国防工业出版社,2000年8月。3. Compiler Design in C,Allen I. Holub., Prentice Hall,1990 年。4. Compiler Construction: Principles and Practice ,Kerneth C. Louden。六、教学方法与考核方式讲授为主,辅以课堂讨论和

温馨提示

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

评论

0/150

提交评论