1、毕节学院本科专业编译原理教学大纲(课程编号:09121305)大纲制定者:黄正鹏大纲审定者:xxx制定时间:2007 年 8 月 25 日1一 课程说明1.课程基本情况课程名称:编译原理英文名称:Compile Principle课程编号:09121305开课专业:计算机科学与技术开课学期:第三学年第六学期学分/周学时:2课程类型:专业课2课程性质(本课程在该专业的地位作用)本课程是计算机专业学生的一门重要专业基础课,本课程属于计算机科学与技术专业的一门重要的专业必修课。通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法。各种语法分析技术和中间代
2、码生成符号表的构造、代码优化、并行编译技术常识及运行时存储空间的组织等基本方法和主要实现技术。它有一定的理论性,又有一定的实践性, 尤其是本课程的知识与计算机应用中很多领域有紧密联系与广泛应用。了解与掌握本课程的基本内容将有利于学生提高专业素质和适应社会多方面需要的能力。3本课程的教学目的和任务培养学生掌握构造编译程序的基本原理与设计方法,为培养计算机语言与大型应用程序的开发人才打下良好的基础。本课程坚持理论与实践教学并重的原则,理论上主要叙述语言和文法的形式定义、自动机理论、词法分析、语法和语义分析、优化和代码生成等环节的基本理论和方法,与此同时,通过上机实习构造简单语言的编译程序等编辑器使
3、学生掌握开发应用程序的基本方法。4本课程与相关课程的关系、教材体系特点及具体要求前置课程:高等数学,数据结构,C 程序设计要 求: 通过本课程的学习, 学生应掌握形式语言理论与编译实现相关的基础概念, 了解与掌握编译程序构造的基本原理与技术, 从形式语言理论的角度, 进一步认识与理解程序设计语言及其与编译程序的联系。做习题是理解课程中基本概念、培养思考能力和解题能力的重要方面, 要求学生认真做好习题, 并注意解题规范化。学生也应重视配合教学, 做好上机实习。5教学时数及课时分配2章(专题) 主要内容 学时安排第 1 章 编译程序概述 2第 2 章 PL/0 编译程序的实现 (自学)第 3 章
4、文法和语言 4第 4 章 词法分析 4第 5 章 自顶向下语法分析方法 2第 6 章 自底向上优先分析法 2第 7 章 LR 分析法 4第 8 章 语法制导翻译和中间代码生成 4第 9 章 符号表 (自学)第 10 章 目标程序运行时的存储组织 2第 11 章 代码优化 2第 12 章 代码生成 (自学)第 13 章 编译程序实现的途径 (自学)实验一 简单词法分析 2实验二 词法分析 2实验三 语法分析 4实验四 语义分析 2合计学时 课堂教学(总学时:26) 实验教学(总学时:10) 36二 教材及主要参考书(1)推荐教材:编译原理吕映芝、张素琴、蒋维杜主编,清华大学出版社,1998年(2
5、)参 考 书:1 编译原理 胡伦骏、徐兰芳、刘建农编,电子工业出版社 2002 年2 编译原理 (第二版)蒋立源、康慕宁主编,西北工业大学出版社,2002 年3 编译原理习题精选 陈意云、张昱著,中国科技大学出版社,2002 年4 编译原理与实现 金成植编,高等教育出版社。5 编译原理习题与解析 伍春香著,清华大学出版社,2001 年3三 教学方法和教学手段说明1)课堂教学:多媒体教学进行教学,使学生能够很快掌握课程的主要知识和解决问题的方法。2)辅导和答疑:以习题课对课程中的重要概念和典型问题的解决方法进行总结和深入讨论,巩固和加深课堂内学到的知识。采用电子邮件方式直接与教师联系进行答疑。3
6、)自学与练习:除读懂教科书中所讲内容外,还需大量做题。其目的是要通过做题弄懂、加深对概念的理解,提高解决问题的能力。为此,安排一定的实验上机学时。四 成绩考核办法考试类型:考查(闭卷)成绩为:平时成绩+实验成绩+卷面成绩,其中平时成绩占20%,实验成绩占 20%,卷面成绩占 60%。五 教学内容(一) 、课堂讲授内容第一章 编译程序概述 教学目标:了解编译程序概念,编译程序的结构,以及每一阶段任务教学内容:1、什么是编译程序2、编译过程概述3、编译程序的结构4、编译阶段的组合5、编译技术和软件工具教学重点: 编译程序的结构教学难点:编译程序的结构,以及每一阶段任务教学方法与手段:利用多媒体教学
7、课外训练指导方案: 仔细阅读课本,掌握基本概念自学指导方案:仔细阅读课本参考书及内容位置:编译原理习题与解析第三章 文法与语言4教学要求:熟练掌握形式语言中基本概念及知识。教学内容:1、 文法的直观概念2、 符号和符号串3、文法与语言的形式定义4、文法的分类5、上下文无关文法及其语法树6、句型的分析7、有关文法实用中的一些说明教学重点:与编译技术密切相关的一些术语和概念。教学难点:句型的分析教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容自学指导方案:通过作业掌握各种题目的做法参考书及内容位置:编译原理习题与解析第四章 词法分析教学要求:熟练掌
8、握正规式与有穷自动机和正规文法与有穷自动机关系。掌握词法分析程序的设计原理与构造方法。教学内容:1、 词法分析程序的设计2、 单词的描述工具3、 有穷自动机4、 正规式和有穷自动机的等价性5、 正规文法和有穷自动机间的转换6、 词法分析程序的自动构造工具教学重点:正规式与有穷自动机和正规文法与有穷自动机转换教学难点:不确定的有穷自动机转换为确定的有穷自动机及最小化教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容自学指导方案:通过作业掌握各种题目的做法,特别使 NFA 的确定化和 DFA 的最小5化,以及 FA、正规文法、正规式的转化。参考书及内
9、容位置:编译原理习题与解析第五章 自顶向下语法分析方法教学要求:要求熟练掌握确定的自顶向下分析方法、熟练掌握把某些非 LL(1)文法等价变换成 LL(1)文法。教学内容:1、 确定的自顶向下分析思想2、 LL(1)文法的判定3、 某些非 LL(1)文法到 LL(1)文法的等价变换4、 不确定的自顶向下分析思想5、 确定的自顶向下分析方法教学重点:确定的自顶向下分析方法教学难点:预测分析方法的分析表的构造、消除某些文法中的左递归教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容自学指导方案:通过作业掌握各种题目的做法,特别是 LL(1)文法参考书及
10、内容位置:编译原理习题与解析第六章 自底向上优先分析法教学要求:掌握简单优先分析法和熟练掌握算符优先分析法教学内容:1、 自底向上优先分析法概述2、 简单优先分析法3、 算符优先分析法教学重点:算符优先分析法的关系表的构造以及分析过程教学难点:算符优先分析法的关系表的构造以及优先函数教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容自学指导方案:通过作业掌握各种题目的做法。参考书及内容位置:编译原理习题与解析第七章 LR 分析法6教学要求:熟练掌握 LR(0)与 LR(1)的分析方法以及掌握 SLR(1)与 LALR(1)教学内容:1、 LR 分
11、析法的概述2、 LR(0)分析3、 SLR(1)分析4、 LR(1)分析5、 LALR(1) 分析6、 二义性文法在 LR 分析中的应用教学重点:LR(0) 分析与 LR(1)分析方法教学难点:构造 LR 分析法的分析表教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容自学指导方案:通过作业掌握各种题目的做法参考书及内容位置:编译原理习题与解析第八章 语法制导翻译和中间代码生成教学要求:了解属性文法、语法制导翻译法的基本思想。熟练掌握中间代码的四种形式以及各种语句翻译成四元式的语义过程教学内容:1、 属性文法2、 语法制导翻译的概述3、 中间代码
12、的形式4、 简单赋值语句的翻译5、 布尔表达式的翻译6、 控制结构的翻译7、 说明部分的翻译8、 数组与结构的翻译教学重点:中间代码的形式、布尔表达式的翻译与控制结构的翻译教学难点:布尔表达式与控制结构的语义过程教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容7自学指导方案:通过作业掌握各种题目的做法参考书及内容位置:编译原理习题与解析第九章 符号表教学要求:掌握符号表的作用、内容和组织方法。符号表是编译程序中的主要数据结构,在学习时要结合数据结构掌握查找方法的基本思想。教学内容:1、符号表的作用和地位2、符号的主要属性及作用3、符号表的组织4
13、、符号表的管理教学重点:符号表的作用、内容和组织方法教学难点:符号表中分程序结构层次的管理教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念自学指导方案:仔细阅读课本参考书及内容位置:编译原理习题与解析第十章 目标程序运行时的存储组织教学要求:了解静态存储分配以及动态存储分配的概念、熟练掌握栈式存储分配方法、掌握堆式存储分配、临时变量的存储分配方法。教学内容:1、 数据空间的三种不同使用方法和管理方法2、 栈式存储分配的实现3、 参数传递4、 过程调用、过程进入和过程返回教学重点:栈式存储分配的实现教学难点:嵌套过程语言的栈式实现和分程序结构的存储管理教学方法与手段:
14、利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念自学指导方案:仔细阅读课本,自己掌握这一章的内容参考书及内容位置:编译原理习题与解析第十一章 代码优化教学要求:必须了解和掌握实施优化的过程,掌握提高代码质量的关键技术。8教学过程:1、 优化技术的简介2、 局部优化3、 控制流分析和循环优化4、 数据流的分析与全局优化教学重点:重点介绍几种优化技术、局部优化以及循环优化教学难点:循环优化的过程教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念,通过典型例子掌握内容自学指导方案:通过作业掌握各种题目的做法参考书及内容位置:编译原理习题与解析第十二章 代码生成教学要求:了解简单代码生成器,包括代码生成运算和寄存器的分配;了解代码生成器的自动生成技术。教学内容:1、 代码的生成概述2、 一个计算机模型3、 一个简单的代码生成器4、 代码生成研究现状教学重点:一个简单的代码生成器教学难点:待用信息链表法及代码生成算法教学方法与手段:利用多媒体教学课外训练指导方案: 仔细阅读课本,掌握基本概念自学指导方案:仔细阅读课本,要求自学参考书及内容位置:编译原理习题与解析(二) 、实验教学内容(见教学实验大纲)