编译原理07016湖北省教育考试院.docx
- 文档编号:25908282
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:15
- 大小:24.32KB
编译原理07016湖北省教育考试院.docx
《编译原理07016湖北省教育考试院.docx》由会员分享,可在线阅读,更多相关《编译原理07016湖北省教育考试院.docx(15页珍藏版)》请在冰豆网上搜索。
编译原理07016湖北省教育考试院
湖北省高等教育自学考试大纲
课程名称:
编译原理课程编号:
07016
第一部分课程的性质与目标
一、课程性质和特点
编译原理是计算机科学与技术专业的一门重要专业课程。
该课程的目的是让学生掌握程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具,从而让学生了解将高级程序设计语言源程序翻译成计算机能处理的目标代码语言的整个过程。
该课程是理论性很强的课程,对于计算机专业学生的进一步深造有较大的促进作用。
同时,该课程还可以提高学生计算机的专业素质,培养他们的软件开发能力和抽象思维能力,为进一步深造打好基础。
二、本课程的基本要求
编译原理课程具有很强的理论性和实践性,学生在学习时普遍感到内容抽象,不宜理解,掌握起来难度较大。
学生在学习的时候,应该通过习题解析与实验实践的方式来理解编译技术的原理和概念,掌握编译原理的相关方法,提高分析与解决问题的能力。
本书中语法分析部分是本课程的重点,应加强练习和实践。
通过本课程学习,要求学生:
(1)熟悉编译程序的功能及结构
(2)掌握词法分析程序的设计原理和构造方法
(3)熟练掌握各种语法分析程序的设计技术
(4)掌握常见语法成分翻译为中间代码的方法
(5)了解静态和动态存储分配技术及实现局部优化、循环优化的基本思想和方法
(6)具有设计和实现小型编译程序的能力
通过各个教学环节,逐步培养学生的抽象思维能力、程序设计能力和自学能力,培养学生运用所学知识、独立解决较复杂问题的能力。
三、本课程与相关课程的联系
本课程的先修课程包括高等数学,离散数学,高级语言程序设计,数据结构,汇编语言等。
编译原理课程中有许多算法实现,而在计算机上任何问题的解决都要涉及到数据的表示,存储和操作,这些是数据结构的基本内容,任何解决问题的算法都必须借助于某种程序设计语言来实现。
汇编语言的学习能帮助学生理解计算机的内部结构和存取机制。
本课程中的算法和理论、性质和定理需要离散数学的只是。
课程基础性、理论性强,与相关课程的学习联系密切,是计算机科学与技术专业学生进一步提高的基本课程。
第二部分课程内容与考核目标
第1章编译概述
一、学习的目的与要求
编译程序是计算机系统中重要的系统软件之一,是高级语言的支撑基础。
本章主要学习编译程序的基本知识。
具体内容为:
编译程序的作用,工作过程和结构、编译程序的生成方法,最后概括本课程所要学习的内容,为进入具体内容的学习打下了基础。
学习后续章节的时候可重新来理解本章的内容,这样会对本章的内容理解更为深刻。
本章总的要求是:
理解编译程序,汇编程序,汇编语言程序,解释程序,翻译程序,源程序,目标程序等概念及相互关系;掌握编译程序的工作过程和编译程序的总体框架,理解编译程序的几种生成方法。
二、考核的知识点与考核要求
(一)编译程序的基本概念,编译的工作过程和编译程序的总体框架(重点)
识记:
源程序,目标程序,翻译程序,编译程序,汇编程序,解释程序,编译,汇编。
理解:
编译程序的工作过程,词法分析程序的作用,语法分析程序的作用,语义分析程序的作用,使用中间代码的意义,目标代码的生成,编译程序的总体结构。
应用:
表格管理程序,错误处理程序的作用,编译的遍。
(二)编译程序的生成(次重点)
识记:
交叉编译,编译程序的移植,自编译,编译器的自动生成。
应用:
编译程序的发展和开发技术,并行编译程序。
(三)高级语言的概念和程序设计的环境(一般)
识记:
高级语言的分类,程序结构,数据类型与操作,语句和控制结构。
第2章形式语言概论
一、学习的目的与要求
形式语言理论是编译的重要理论基础,本章主要学习编译理论中用到的有关形式语言理论的最基本概念。
具体内容包括:
字母表和符号串,文法和语言的形式定义,语法树和文法的二义性,文法和语言的分类。
文法的形式定义,是本章的一个难点。
要求掌握文法、句型、句子和推导的概念。
通过理解四种文法的区别和联系,以及文法、句型、句子和推导的概念之间的关系来把握这四个概念,这是本章的一个重点。
掌握语法树和分析方法的基本思想,语法树的概念和使用是本章的另一个重点。
另外,这一章概念、定理和性质繁多,应掌握它们之间的联系和区别。
二、考核的知识点与考核要求
(一)文法和语言的定义(重点)
识记:
字母表和符号串的概念,文法的定义,语言的定义。
理解:
文法的四要素,句型,句子,语言及其相互关系。
应用:
符号及符号串的运算,推导和归约,最左推导,最右推导,规范推导与规范归约。
(二)语法树(次重点)
识记:
语法树,文法的二义性。
理解:
文法,语言和语法树的关系
应用:
由推导或归约构造语法树,文法二义性的判断。
(三)文法和语言的分类(一般)
识记:
四类文法的定义,四类语言的概念。
理解:
四类文法的相互关系,四类文法和四类语言的对应关系。
应用:
各类文法的例子,文法和语言的相互转换。
第3章有穷自动机
一、学习的目的与要求
自动机是一种能进行运算并能实现自我控制的装置。
一台计算机就是一部自动机。
自动机是描述符号串处理的强有力的工具,是研究词法分析程序的重要基础。
本章专门讨论有穷自动机,它与正规文法、正规表达式之间的对应关系以及它的确定化和最小化方面的知识。
分别用状态转换表、矩阵、状态转换图表示自动机。
掌握自动机的确定化和化简(最小化),这是本章的重点与难点之一。
掌握正规文法、正规式和自动机之间的转换,这是本章的另—个重点。
二、考核的知识点与考核要求
(一)有穷自动机、NFA和DFA(重点)
识记:
有穷自动机、NFA和DFA的定义。
理解:
自动机的等价性,状态转换表和状态转换图。
应用:
自动机的等价性,状态转换表和状态转换图以及有穷自动机相互之间的转换。
(二)正规文法和有穷自动机(次重点)
识记:
正规集,正规表达式的定义。
理解:
正规集,正规表达式,有穷自动机以及正规文法之间的相互等价关系。
应用:
NDFA到DFA的转换方法(子集法),正规文法和有穷自动机的相互转换,正规表达式与FA的相互转换。
(三)DFA在计算机中的表示方法(一般)
识记:
DFA在计算机中的两种表示方法:
一种是矩阵表示,另一种是表表示。
第4章词法分析
一、学习的目的与要求
词法分析的主要任务是对源程序进行扫描,从中识别出单词,词法分析是编译过程的第一个步骤,是编译过程中不可缺少的部分。
本章学习词法分析程序的手工构造和自动构造方法。
本章总的要求是:
了解扫描器的功能,了解扫描器与语法分析程序的接口,理解状态转换图与FA的关系,熟悉词法分析的过程和方法。
二、考核的知识点与考核要求
(一)词法分析程序(重点)
识记:
单词的分类,二元式(Token字),状态转换图。
理解:
词法分析程序的任务,词法分析程序的功能,状态转换图和扫描器的关系。
应用:
词法错误的识别,利用状态转换图设计词法分析程序。
(二)标识符的处理(次重点)
识记:
类型的机内表示,标示符的语义表示,标示符表。
理解:
标示符处理的基本思想
(三)设计扫描器的直接方法(一般)
应用:
由正规文法设计扫描器,由正规表达式设计扫描器。
第5章语法分析
一、学习的目的与要求
语法分析是编译程序的核心部分。
语法分析的任务是分析和识别由词法分析给出的单词符号序列是否为给定文法的正确句子。
语法分析分为两类:
自上而下的分析方法(从文法的识别符出发,试图推导出给定的输入符号串)和自下而上的分析方法(从给定的输入符号串出发试图归约到文法的识别符号)。
本章学习各种语法分析技术,语法分析程序的设计原理和实现技术。
具体包括四个方面的内容:
(1)语法分析程序的功能和语法分析方法
(2)递归下降分析法和预测分析法
(3)自上而下分析法的原理和算符优先分析法
(4)LR分析法
本章的总体要求是:
了解语法分析的总体方法,理解并掌握规范句型,短语,句柄,素短语,回溯,递归,移进-归约等概念,掌握各种语法分析的方法,了解并掌握各种语法分析方法对文法的要求。
二、考核的知识点与考核要求
(一)语法分析方法(重点)
识记:
左递归,回溯,LL(K)文法;短语,句柄,移进-归约方法,LR(K)文法,规范句型,活前缀,项目集,自上而下分析方法的一般过程和自下而上分析方法的一般过程。
理解:
左递归的副作用及消除方法,回溯的解决方法,LL
(1)文法的判断,集合FIRST、FOLLOW与SELECT集的构造;文法G的拓广文法,CLOSURE(I)函数,GOTO(I,X)函数,LR(0)项目集规范族,有效项目。
应用:
LL
(1)的预测分析表的构造,递归下降分析程序及其设计,LR(0)分析表的构造。
(二)算符优先分析法(次重点)
识记:
关系,关系的FIRST和LAST,优先关系,算符优先文法,优先函数,素短语和最左素短语。
理解:
优先关系表(矩阵),优先函数的Bell方法和Floyd方法。
应用:
算符优先分析算法
(三)SLR分析方法,LR
(1)分析方法和LALR分析方法(一般)
识记:
SLR分析,LR
(1)分析和LALR分析。
理解:
LR家族分析方法的递进关系和它们之间的差别。
应用:
SLR分析表的构造,LR
(1)分析表的构造,LALR分析表的构造。
第6章语法制导的翻译和中间代码产生
一、学习的目的与要求
本章学习语法制导翻译的基本原理(就是在语法分析过程中,依从分析的过程,结合给每个产生式添加的语义动作进行翻译的方法)及其在中间代码生成中的应用。
本章的总体要求是:
了解属性文法的概念和类别,掌握自下而上语法制导翻译。
在词法分析和语法分析的基础上,语义分析的主要任务是确定标识符的类型并完成类型检查,各种语句的含义分析并生成中间代码。
了解使用中间代码的意义及几种中间代码的形式,掌握说明语句的翻译,掌握赋值语句的翻译,掌握布尔表达式及控制语句的翻译,掌握标号和转移语句的翻译,了解分支语句和过程调用的翻译,了解编译过程中的类型检查。
二、考核的知识点与考核要求
(一)中间语言和语句的翻译(重点)
理解:
后缀式(逆波兰式),三元式,四元式;简单算术表达式,赋值语句,数组元素的引用;布尔表达式,作为条件控制的布尔表达式;控制语句,标号和转移语句,分支语句(开关)。
赋值语句的翻译,布尔表达式的翻译,控制语句的翻译。
应用:
中缀式转换为三元式、四元式、后缀式。
(二)语法制导翻译和属性文法(次重点)
识记:
属性文法,综合属性,继承属性。
理解:
语法制导翻译的基本思想,自下而上计算继承属性。
(三)说明语句的处理和过程调用(一般)
识记:
过程中的说明语句,作用域信息,记录中的域名。
理解:
形参和实参的数据传递方式,过程调用语句的处理。
第7章运行时的存储组织与分配
一、学习的目的与要求
编译程序需要进行目标程序运行环境的设计和数据空间的分配。
程序中数据的存取是通过与之对应的存储单元来进行的,而存储单元的地址是编译程序在编译时或由编译生成的目标程序在运行时进行分配的。
本章学习编译程序中运行时的存储组织与分配,它是一个重要而又复杂的问题。
总的要求是:
了解程序运行时过程的活动数据的作用域,掌握运行时存储器的划分和活动记录的作用,了解存储分配的策略,掌握静态存储分配策略,了解栈式存储分配方法,了解堆式存储分配方法。
二、考核的知识点与考核要求
(一)程序运行时存储器的划分(重点)
识记:
过程的活动,说明的作用域,参数传递,活动记录。
理解:
运行时存储器的划分
应用:
存储分配策略
(二)几种数据类型的分配方案和存储组织与分配方案(次重点)
识记:
静态存储分配,动态存储分配。
理解:
基本数据类型的存储分配,数组的存储分配,纪录结构的存储分配。
(三)栈式存储分配和堆式存储分配(一般)
识记:
栈式存储分配,堆式存储分配。
第8章符号表的组织和查找
一、学习的目的与要求
编译过程中,需要对语法符号进行处理,为了方便找到这些语法符号和相关属性,需要用一种数据结构来保存这些语法成分和相关属性,这就是符号表。
符号表用于存放源程序中的信息和编译过程中需要记录的信息。
总的要求是:
了解符号表的作用,掌握符号表的组织方式和标识符的构造与查找。
二、考核的知识点与考核要求
(一)符号表的构造与查找(重点)
识记:
符号表的构造,查找。
理解:
线性查找,折半查找,杂凑技术。
杂凑技术查找符号表。
(二)符号表的作用与组织(次重点)
识记:
符号表,符号表中的数据
理解:
符号表的作用,符号表的组织方式。
(三)分程序结构的符号表(一般)
识记:
分程序结构的符号表。
第9章代码优化
一、学习的目的与要求
如何保持目标代码正确性的前提下,提高目标代码的质量使其能最大限度地展示目标CPU的性能和特点,并充分使用目标CPU的资源是编译程序不可去少的环节。
这样的过程称为优化。
优化是衡量一个编译程序质量的重要标准。
总的要求是:
理解编译程序的优化过程,了解控制流图和中间代码常见冗余,了解循环优化的主要途径。
二、考核的知识点与考核要求
(一)局部优化和循环优化(重点)
识记:
控制流图,局部优化,循环优化。
理解:
代码外提,强度削弱,删除归纳变量。
(二)指令调度(一般)
理解:
指令调度的流水线执行方式。
第10章目标代码生成
一、学习的目的与要求
代码生成器的任务是把语义分析后或优化后的中间代码变换成目标代码。
代码生成是一个编译的最后一个环节。
理解各种中间代码生成目标代码的方法。
总的要求是:
目标代码的三种形式,了解设计代码生成器时需要处理的一般问题,代码生成的基本原理,掌握寄存器的分配方法。
二、考核的知识点与考核要求
(一)代码生成的任务(重点)
理解:
代码生成的任务
(二)目标代码的输入、输出形式(次重点)
识记:
目标代码的输入,目标代码的输出。
理解:
可立即执行的机器语言代码,汇编语言代码,待装配的机器语言代码模块。
(三)目标代码生成时需要考虑的基本问题(一般)
理解:
高效目标代码,寄存器的分配。
第三部分有关说明与实施要求
一、考核的能力层次表述
本大纲在考核目标中,按照“识记”、“理解”、“应用”三个能力层次规定其应达到的能力层次要求。
各能力层次为递进等级关系,后者必须建立在前者的基础上,其含义是:
识记:
能知道有关的名词、概念、知识的含义,并能正确认识和表述,是低层次的要求。
理解:
在识记的基础上,能全面把握基本概念、基本原理、基本方法,能掌握有关概念、原理、方法的区别与联系,是较高层次的要求。
应用:
在理解的基础上,能运用基本概念、基本原理、基本方法联系学过的多个知识点分析和解决有关的理论问题和实际问题,是最高层次的要求。
二、教材
(1)指定教材:
何炎祥等.编译原理(第3版).武汉:
华中科技大学出版社,2010
(2)参考教材:
陈火旺等.程序设计语言编译原理(第3版).北京:
国防工业出版社,2006
胡伦骏等.编译原理(第2版).北京:
电子工业出版社,2005
伍春香.编译原理学习与解题指南.武汉:
华中科技大学出版社,2002
三、自学方法指导
1、在开始阅读指定教材某一章之前,先翻阅大纲中有关这一章的考核知识点及对知识点的能力层次要求和考核目标,以便在阅读教材时做到心中有数,有的放矢。
2、阅读教材时,要逐段细读,逐句推敲,集中精力,吃透每一个知识点,对基本概念必须深刻理解,对基本理论必须彻底弄清,对基本方法必须牢固掌握。
3、在自学过程中,既要思考问题,也要做好阅读笔记,把教材中的基本概念、原理、方法等加以整理,这可从中加深对问题的认知、理解和记忆,以利于突出重点,并涵盖整个内容,可以不断提高自学能力。
4、完成书后作业和适当的辅导练习是理解、消化和巩固所学知识,培养分析问题、解决问题及提高能力的重要环节,在做练习之前,应认真阅读教材,按考核目标所要求的不同层次,掌握教材内容,在练习过程中对所学知识进行合理的回顾与发挥,注重理论联系实际和具体问题具体分析,解题时应注意培养逻辑性,针对问题围绕相关知识点进行层次(步骤)分明的论述或推导,明确各层次(步骤)间的逻辑关系。
四、对社会助学的要求
1、应熟知考试大纲对课程提出的总要求和各章的知识点。
2、应掌握各知识点要求达到的能力层次,并深刻理解对各知识点的考核目标。
3、辅导时,应以考试大纲为依据,指定的教材为基础,不要随意增删内容,以免与大纲脱节。
4、辅导时,应对学习方法进行指导,宜提倡"认真阅读教材,刻苦钻研教材,主动争取帮助,依靠自己学通"的方法。
5、辅导时,要注意突出重点,对考生提出的问题,不要有问即答,要积极启发引导。
6、注意对应考者能力的培养,特别是自学能力的培养,要引导考生逐步学会独立学习,在自学过程中善于提出问题,分析问题,做出判断,解决问题。
7、要使考生了解试题的难易与能力层次高低两者不完全是一回事,在各个能力层次中会存在着不同难度的试题。
8、助学学时:
本课程共5学分,建议总课时为90学时,其中助学学时分配如下表1所示。
表1助学学时分配表
章次
内容
学时
1
编译概述
4
2
文法和语言的基本知识
10
3
有穷自动机
10
4
词法分析
6
5
语法分析
16
6
语法制导的翻译和中间代码产生
10
7
运行时的存储组织与分配
6
8
符号表的组织和查找代码优化
4
9
代码优化
4
10
目标代码生成
4
11
上机
16
合计
90
五、关于命题考试的若干规定
1、本大纲各章所提到的内容和考核目标都是考试内容。
试题覆盖到章,适当突出重点。
2、试卷中对不同能力层次要求的试题所占比例大致是:
“识记”占25%,“理解”占35%,“应用”占40%。
3、试题难易程度应合理:
易、较易、较难、难比例为2:
3:
3:
2。
4、每份试卷中,各类考核点所占比例约为:
重点占65%,次重点占25%,一般占10%。
5、试题类型一般分为:
填空题、单项选择题、名词解释、简答题、应用题等题型。
6、考试采用闭卷笔试,考试时间150分钟,采用百分制评分,60分合格。
六、题型示例
(一)单项选择题
1、文法G所描述的语言是()的集合。
A.文法G的字汇表V中所有符号组成的符号串
B.文法G的字汇表V的闭包V*中的所有符号串
C.由文法的识别符号推出的所有符号串
D.由文法的识别符号推出的所有终结符号串
(二)填空题
1、自上而下的分析方法遇到的遇到的主要问题有()和()。
(三)名词解释
1、正规文法
(四)筒答题
1、简述LR(0)分析方法
(五)应用题
1、证明下述文法G[S]:
Sa|^|(T),TSR,R,SR|
是LL
(1)文法并求它的预测分析表。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 07016 湖北省 教育 试院