编译原理--教学大纲

上传人:今*** 文档编号:105803523 上传时间:2019-10-13 格式:DOC 页数:9 大小:95.50KB
返回 下载 相关 举报
编译原理--教学大纲_第1页
第1页 / 共9页
编译原理--教学大纲_第2页
第2页 / 共9页
编译原理--教学大纲_第3页
第3页 / 共9页
编译原理--教学大纲_第4页
第4页 / 共9页
编译原理--教学大纲_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《编译原理--教学大纲》由会员分享,可在线阅读,更多相关《编译原理--教学大纲(9页珍藏版)》请在金锄头文库上搜索。

1、计算机编译原理计算机编译原理课程大纲一、适用对象 本课程适用于计算机科学与技术以及相关专业的网络教育、成人教育学生。二、课程性质 本课程是计算机科学与技术专业学生的专业基础课。 编译原理课程是计算机专业的一门主干课程。课程介绍程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具。首先从剖析一个简单的编译程序PL/0入手,对编译程序设计的基本理论,如有穷自动机、上下文无关文法等给予介绍;对于广泛使用的语法分析和语义分析技术,如递归子程序法、算符优先分析、LR分析及语法制导翻译等进行了详细的讲解;对编译程序的结构及其各部分功能、实现方法以及整体的设计考虑给予了描述;对编

2、译程序的构造工具进行介绍;同时对面向对象语言的编译程序和构造进行介绍。 前序课程:高级程序语言、离散数学、数据结构、计算机组成原理。三、教学目的 通过本课程的学习,使学生掌握设计和实现程序设计语言的最基本的理论和技术,掌握编译程序工作原理和构造方法。同时,能够达到去鉴赏、评价和实现某种程序设计语言。 主要有如下教学目的: (1)对编译过程从整体上有一个较清晰的了解,掌握高级语言程序的编译过程。 (2)掌握文法、自动机、正规式等编译基本理论知识。 (3)掌握确定的自顶向下的语法分析方法和自底向上的算符优先分析及LR分析方法。 (4)掌握语法制导翻译的语义分析方法,掌握中间代码的优化和目标代码的生

3、成。 (5)理解符号表和目标程序运行时的存储组织。 (6)了解面向对象语言编译程序的原理和构造。四、教材及学时安排 教材:张素琴、吕映芝、蒋维杜、戴桂兰,编译原理(第2版),清华大学出版社,2005年2月,ISBN:9787302089797 学时安排:序号课 程 内 容学 时1第1章 引论22第2章 PL/0编译程序的实现13第3章 文法和语言64第4章 词法分析105第5章 自顶向下语法分析方法106第6章 自底向上优先分析67第7章 LR分析88第8章 语法制导翻译和中间代码生成79第9章 符号表210第10章 目标程序运行时的存储组织211第11章 代码优化812第12章 代码生成41

4、3第13章 编译程序的构造214第14章 面向对象语言的编译215第15章 编译程序的面向对象构造2合 计72五、教学要求 第1章 引论教学要求: 编译程序是现代计算机系统的基本组成部分之一。通过本章的学习,理解编译程序的概念和任务,掌握高级程序设计语言编译过程的各阶段及编译程序的结构,了解编译技术、编译软件工具和程序设计语言范型。内容要点:(2学时) 1.1:什么是编译程序 编译程序的概念及其在计算机系统中的作用 1.2:编译过程和编译程序的结构 编译过程的阶段划分、每阶段的基本任务及阶段的组合 1.3:解释程序和一些软件工具 解释程序、处理源程序的软件工具 1.4:程序设计语言范型 程序设

5、计语言的范型 第2章 PL/0编译程序的实现教学要求: 为使学生在系统学习之前对编译程序的构造有一个感性的认识和初步的了解,本章分析说明著名的“PL/0语言的编译程序”。通过本章的学习,熟悉一个高级程序设计语言编译程序实现的基本技术和步骤,了解高级语言语法的描述、词法分析、语法分析以及代码生成的基本内容。内容要点:(1学时) 2.1:PL/0语言描述 用语法图和扩展的BNF描述PL/0语言 2.2:PL/0编译程序的结构 PL/0编译程序的基本结构 2.3:PL/0编译程序的词法分析 PL/0编译程序的词法分析的过程 2.4:PL/0编译程序的语法语义分析 PL/0编译程序的语法、语义分析过程

6、 2.5:PL/0编译程序的目标代码结构和代码生成 PL/0编译程序的目标代码结构和代码生成过程 2.6:PL/0编译程序的语法错误处理 PL/0编译程序的出错处理过程 2.7:PL/0编译程序的目标代码解释执行时的存储分配 PL/0编译程序目标代码解释执行时的存储分配机制 第3章 文法和语言教学要求: 任何高级程序设计语言均有自己定义的语法规则。通过本章的学习,理解符号和符号串,掌握文法和语言的形式定义、文法的类型、语法树,理解句型的分析方法,了解文法在实用中的一些限制。内容要点:(6学时) 3.1:文法的直观概念 以自然语言为例说明语言文法的直观概念 3.2:符号和符号串 语言形式文法中使

7、用的符号和符号串 3.3:文法和语言的形式定义 文法、产生式、推导、语言的形式定义 3.4:文法的类型 0型文法、1型文法、2型文法、3型文法 3.5:上下文无关文法及其语法树 语法树、最左(右)推导 3.6:句型的分析 自上而下、自下而上的句型分析方法及有关问题 3.7:有关文法实用中的一些说明 文法实用中多余规则、规则的限制 第4章 词法分析教学要求: 编译程序首先是对源程序进行词法分析,识别出单词流。通过本章的学习,理解词法分析程序的输出及其与语法分析程序的关系,掌握单词的描述工具正规文法,掌握有穷自动机DFA、NFA,掌握正规文法、正规式、DFA、NFA之间的等价性,了解词法分析程序的

8、自动构造工具。内容要点:(10学时) 4.1:词法分析程序的设计 词法分析程序的输出及其与语法分析的关系 4.2:单词的描述工具 正规文法、正规式及其等价性 4.3:有穷自动机 有穷自动机DFA、NFA及其NFA到DFA的转换 4.4:正规式和有穷自动机的等价性 正规式和有穷自动机之间的相互转换 4.5:正规文法和有穷自动机的等价性 正规文法和有穷自动机间的转换 4.6:词法分析程序的自动构造工具 LEX工具 第5章 自顶向下语法分析方法教学要求: 语法分析是编译程序的核心部分,其作用是识别由词法分析给出的单词序列是否构成符合给定文法的程序。常用的分析方法有自顶向下和自底向上两类,本章介绍自顶

9、向下的语法分析方法。通过学习,理解确定和不确定的自顶向下的分析思想,掌握FIRST集、FOLLOW集、SELECT集的概念及其计算,掌握LL(1)文法的概念和判别,掌握某些非LL(1)文法到LL(1)文法的等价变换,掌握递归子程序法和预测分析方法两种确定的自顶向下分析方法。内容要点:(10学时) 5.1:确定的自顶向下分析思想 以实例引入FIRST集、FOLLOW集、SELECT集和LL(1)文法的概念 5.2:LL(1)文法的判别 LL(1)文法判别的步骤、FIRST集、FOLLOW集、SELECT集的计算 5.3:某些非LL(1)文法到LL(1)文法的等价变换 提取左公共因子、消除左递归

10、5.4:不确定自顶向下分析思想 回溯分析 5.5:确定的自顶向下分析方法 递归子程序、预测分析方法 第6章 自底向上优先分析方法教学要求: 自底向上的语法分析通常又包括算符优先分析方法和LR分析法,本章介绍优先分析方法,通过本章的学习,理解自底向上优先分析的基本思想,理解优先关系的概念、简单优先文法的概念和简单优先分析方法,掌握算符优先文法的概念,掌握FIRSTVT集、LASTVT集的概念、计算及算符优先关系表的构造,掌握算符优先分析算法和优先函数,了解算符优先分析法的局限性。内容要点:(6学时) 6.1:自底向上优先分析概述 基本思想 6.2:简单优先分析方法 优先关系、简单优先文法的定义、

11、分析步骤 6.3:算符优先分析法 包括算符优先文法的定义、算符优先关系表的构造、算符优先分析算法及优先函数和局限性 第7章 LR分析教学要求: 自底向上分析的关键是在分析过程中如何确定句柄,LR分析正是给出一种能根据当前分析栈中符号和向右查看输入串来确定分析器中的动作。通过本章的学习,了解LR(k)分析方法及LR分析器,掌握可归前缀、活前缀和识别活前缀的有穷自动机,掌握LR(0)项目集规范族和LR(0)分析表的构造,掌握LR(1)项目集族和LR(1)分析表的构造,掌握LR(0)规范族中避免项目集移进-归约、归约-归约冲突的条件,掌握LR(1)项目集族合并同心集的方法,了解二义性文法在LR分析中

12、的应用,了解语法分析程序的自动构造工具。内容要点:(8学时) 7.1:LR分析法概述 LR分析器的组成、分析过程 7.2:LR(0)分析 可归前缀、子前缀、活前缀,识别活前缀的有穷自动机,LR(0)项目、LR(0)项目集规范族及其构造,LR(0)分析表的构造 7.3:SLR(1)分析 SLR(1)文法的引入、SLR(1)分析表的构造 7.4:LR(1)分析 LR(1)项目集族和LR(1)分析表的构造 7.5:LALR(1)分析 同心集、LALR(1)分析表的构造 7.6:二义性文法在LR分析中的应用 二义文法增加优先性和结合性可构造LR分析器 7.7:语法分析程序的自动构造工具YACC YAC

13、C工具介绍 第8章 语法制导翻译和中间代码生成教学要求: 经过语法分析合乎给定文法的程序,应进行语义分析和中间代码的生成。通过本章的学习,了解属性文法,掌握语法制导的翻译方法和中间代码的基本形式,掌握简单赋值语句、布尔表达式、控制结构、说明语句、数组和结构的翻译。内容要点:(7学时) 8.1:属性文法 属性文法的概念 8.2:语法制导翻译概论 计算语义规则、S-属性文法和L-属性文法的实现 8.3:中间代码的形式 逆波兰表示、三元式和树形表示、四元式 8.4:简单赋值语句的翻译 简单赋值语句翻译方案 8.5:布尔表达式的翻译 布尔表达式翻译方法、控制语句中布尔表达式的翻译 8.6:控制结构的翻译 条件转移、开关语句、for循环语句、出口语句的翻译 8.7:说明语句的翻译 简单说明语句、过程中的说明语句的翻译 8.8:数组和结构的翻译 数组说明和数组元素的引用、结构说明和引用的翻译 第9章 符号表教学要求: 编译程序中符号表是用来存放语言程序中出现的有关标识符的属性信息,在编译过程的各阶段中,符号表不断地积累和更新信息并提供不同的属性信息。通过本章的学习,理解符号表的作用和地位,掌握符号表的主要属性和作用,掌握符号表的组织和管理。内容要点:(2学时) 9.1:符号表的作用和地位 符号表的功能 9.2:符号的主要属

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号