《编译原理课程(共7页).doc》由会员分享,可在线阅读,更多相关《编译原理课程(共7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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符号和符号串 2.2上下文无关文法及其语言 2.3语
4、法树和文法的二义性 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.6习题2.重点难点重点:词法分析器作用和基本工作方
5、式;构词规则与词法分析的关系;利用状态转换图构造词法分析器的基本方法;词法的形式化描述和词法分析器设计。难点:利用状态转换图构造词法分析器;正规表达式与有限状态自动机。3.基本要求理解词法分析器功能及形式,熟练掌握词法分析器设计的原理,掌握运用状态转换图进行词法分析器设计。第4章语法分析1.教学内容 4.1语法分析概述 4.2自上而下分析面临的问题及其解决方法 4.3确定的自上而下的分析方法 4.4Sample语言自上而下语法分析程序的设计 4.5自下而上语法分析的思想 4.6算符优先分析 4.7LR分析法 4.8语法分析器的自动生成工具Yacc 4.9语法分析程序中的错误处理 4.10小结
6、4.11习题2.重点难点重点:上下文无关文法、LL(1)文法和语法分析方法:自下而上分析法(算符优先分析法)和自上而下分析法(递归下降分析法和预测分析方法)。难点:SLR(1)分析表构造。3.基本要求理解自上而下分析的基本思想,熟练掌握递归下降分析基本方法:消除左递归、消除回溯,构造递归下降子程序,掌握预测分析程序的基本原理和预测分析表构造,理解LL(1)方法的定义。理解自下而上语法分析的基本思想以及归约、短语、句柄、分析树等概念,掌握算符优先分析基本方法,算符优先表和和算符优先函数构造技术。第5章语义分析和中间代码生成1.教学内容5.1静态语义检查5.2中间代码的形式5.3属性文法和语法制导
7、的翻译5.4常见语句的语法制导的翻译5.5 Sample语言语法制导的翻译程序的设计5.6小结5.7习题2.重点难点重点:语法制导翻译的原理及各种语句的翻译方式,中间代码的概念。 难点:常见语句的语法制导翻译。3.基本要求理解语法制导翻译基本原理,掌握基于属性文法的处理方法,了解自上而下分析制导翻译基本思想和实现方法。熟悉常见的几种中间语言:四元式、三元式、逆波兰表示,掌握各种语句到四元式的翻译方法,包括简单算术表达式,布尔表达式,控制语句,数组引用,过程调用等。第6章 运行时存储空间的组织1.教学内容 6.1源程序及其目标程序执行时的活动6.2程序执行时的存储器组织6.3静态存储分配6.4栈
8、式存储分配6.5堆式存储分配6.6小结6.7习题2.重点难点重点:程序执行时存储器组织及各种内存分配方式难点:各种内存分配方式 3.基本要求正确理解目标程序运行进存储空间的使用和组织管理方式,理解静态分配和动态存储分配基本思想,掌握动态存储分配的处理方式,掌握栈式动态分配中活动记录的作用、组织、内容及使用,了解嵌套过程语言程序运行时整个运行栈的内容的组织。第7章代码优化1.教学内容 7.1概述7.2局部优化7.3循环优化7.4小结7.5习题2.重点难点重点:各种优化方法:局部优化、循环优化。难点:各种优化方法:局部优化、循环优化。3.基本要求正确理解代码优化的定义和各种可能的优化概念,掌握用D
9、AG表示进行局部优化的方法。第8章 目标代码生成1.教学内容 8.1概述8.2目标机器8.3简单的代码生成算法8.4从DAG生成目标代码8.5 Sample语言代码优化及目标代码生成器的设计8.6小结8.7习题2.重点难点重点:代码生成过程中涉及到的方法难点:中间代码的简单翻译方法、引用信息和活跃信息、寄存器描述和地址描述、基本块的代码生成算法3.基本要求理解代码生成过程的基本问题,理解待用信息、寄存器描述和地址描述等概念,掌握简单代码生成算法、寄存器分配策略。四、 课程学时分配(以章节为单位)教学内容学时分配合计讲课实验上机讨论/习题第1章概述2学时2学时第2章形式语言基础知识2 学时2学时
10、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月。3Compiler Design in C,Allen I. Holub., Prentice Hall,1990年。4.Compiler Construction: Principles and Practice,Kerneth C. Louden。六、 教学方法与考核方式讲授为主,辅以课堂讨论和练习,上机实验。本课程注重理论和实际的结合,只有学生完成好实验后才能对软件编译的基本原理有深刻的认识,编程语言可选用PASCAL语言。考核方式: 1期末闭卷考试 占总成绩的50%2考勤 占总成绩的10%3. 平时成绩 占总成绩的20%4期中考试 占总成绩的20%修订人:李鑫 修订日期:2011年4月1日审核人:高方平 审核日期: 专心-专注-专业