编译原理填空集锦
编译原理复习题

编译原理复习题一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码优化,代码优化等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是汇编程序或机器语言程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码.5.对编译程序而言,输入数据是源程序,输出结果是目标程序 .7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格管理和出错处理。
其中,词法分析器用于识别单词。
10.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12.产生式是用于定义语法成分的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x|Sx,x∈VT*}。
14.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V*),则称x是文法的一个句型。
15.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V T*),则称x是文法的一个句子。
16.扫描器的任务是从源程序中识别出一个个单词符号。
17.语法分析最常用的两类方法是自顶向下和自底向上分析法。
18.语法分析的任务是识别给定的终结符串是否为给定文法的句子。
19.递归下降法不允许任一非终结符是直接左递归的。
20.自顶向下的语法分析方法的关键是如何选择候选式的问题。
21.递归下降分析法是自顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
(完整word版)编译原理填空题

编译原理填空题1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。
2.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
3.自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。
4.一个LR分析器包括两部分:一个总控程序和___一张分析表__。
5.后缀式abc-/所代表的表达式是___a/(b-c)__。
6.局部优化是在__基本块___范围内进行的一种优化。
7、语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检查。
2.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(二义性的)。
4.从功能上说,程序语言的语句大体可分为(执行性)语句和(说明性)语句两大类。
5.语法分析器的输入是(单词符号),其输出是(语法单位)。
6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。
7.符号表中的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。
8.一个过程相应的DISPLAY表的内容为(现行活动记录地址和所有外层最新活动记录的地址)10.常用的两种动态存贮分配办法是(栈式)动态分配和(堆式)动态分配。
11.一个名字的属性包括( 类型)和(作用域 )。
12.常用的参数传递方式有(传地址),(传值),(传名)13.根据优化所涉及的程序范围,可将优化分成为(局部优化),(循环优化),(全局优化)三个级别。
14.语法分析的方法大致可分为两类,一类是(自上而下)分析法,另一类是(自下而上)分析法。
15.预测分析程序是使用一张(分析表)和一个(符号栈)进行联合控制的。
17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。
编译原理小题答案

《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.递归下降分析法是自顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
24.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行直接归约,力求归约到文法的开始符号。
26.在LR(0)分析法的名称中,L的含义是自左向右的扫描输入串,R的含义是最左归约,0 的含义是向貌似句柄的符号串后查看0个输入符号。
31.终结符只有综合属性,它们由词法分析器提供。
32.在使用高级语言编程时,首先可通过编译程序发现源程序的全部A(语法)错误和B (语义)部分错误.34.一个句型中的最左简单短语称为该句型的__句柄___。
36.从功能上说,程序语言的语句大体可分为_执行性____语句和说明性____语句两大类。
37.语法分析是依据语言的__语法_规则进行的,中间代码产生是依据语言的_语义___规进行的。
38.语法分析器的输入是_单词符号____,其输出是_语法单位____。
40.逆波兰式ab+c+ d*e- 所表达的表达式为__(a+b+c)*d-c__ 。
41.计算机执行用高级语言编写的程序主要有两种途径:_解释__和_编译__。
42.自上而下分析法采用___移进_、归约、错误处理、接受__等四种操作。
43.一个LR分析器包括两部分:一个总控程序和_一张分析表___。
___二、单选题1.一个编译程序中,不仅包含词法分析,( A),中间代码生成,代码优化,目标代码生成等五个部分。
编译原理填空集

注:题目前带*号为很有疑问的。
其余的也不是很对,总之答案仅供参考1.扫描器的任务是从源程序中识别出一个个__单词符号____。
2.语法分析最常用的两类方法是自顶向下和___ 自底向上______分析法。
3.所谓语法制导翻译方法是____为每个产生式配上一个语义子程序,并在语法分析的同时执行这些程序 ___________。
4.源程序执行的途径有翻译和解释途径两类。
5.符号表的作用是语义检查的依据和辅助目标代码的生成。
6.词法分析的任务是从左至右逐个字符地对源程序进行扫描,产生一个个单词序列,用以语法分析。
7.素短语是指至少含有一终结符除自身外不含其它素短语的短语。
8.LL(1)分析法的文法须满足的条件是无回溯和无左递归。
9.DFA和NFA间的区别是后继状态是否唯一和匹配速度快慢。
10.二义性的解决办法是修改编译算法和修改文法。
11.常用的两种动态存贮分配办法是栈式动态分配和__堆式___动态分配。
12.从功能上说,程序语言的语句大体可分为执行性语句和__说明性____语句两大类。
13.一个上下文无关文法包含四个组成部分是一组终结符号、一组非终结符号、一个开始符号和一组产生式。
14.产生式是用于定义__ 语法成分___的一种书写规则。
15.动态存储分配实现的方式有栈式分配和堆式分配两种。
16.表达式a*(b+c)/d- (f+e)的逆波兰式表示是abc+*d/fe+- 。
28.常见的中间语言的形式有三元式、四元式、逆波兰式和树表示。
17.可用属性文法来说明源语言语义。
属性文法由一个上下文无关文法和一系列附加在文法上的语义规则构成。
18.词法分析器的另一个名称为扫描程序。
19.代码优化可以分局部优化、全局优化和循环优化三类。
20.文法G[S]:S→aSb∣ε描述的语言L(G[S])是L(G[S])={(a^nb^n|n>=0} 。
21.素短语是指至少含有一终结符和除自身外不包含其它素短语的短语。
编译原理试题库

一填空题1.编译程序首先要识别出源程序中每个,然后再分析每个并翻译其意义。
单词,句子2.编译器常用的语法分析方法有和两种。
自底向上,自顶向下2.通常把编译过程分为分析与综合两大阶段。
词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。
前端,后端4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即方案和分配方案。
静态存储分配,动态存储5.对编译程序而言,输入数据是,输出结果是。
源程序,目标程序6.文法G包括四个组成部分:一组终结符号,一组非终结符号,一组,以及一个开始符号。
产生式7.文法按产生式的形式分为四种类型,它们是:0型文法,又称短语文法;1型文法,又称上下文有关文法;2型文法,又称;3型文法,又称。
上下文无关文法,正规文法8.最右推导称为,由规范推导产生的句型称为规范句型。
规范推导9.设G是一个文法,S是它的开始符号,如果S=>*α,则称α是一个。
仅由终结符号组成的句型是一个。
句型,句子10 对于一个文法G而言,如果L(G)中存在某个句子对应两棵不同,那么该文法就称为是二义的。
语法树11.通常程序设计语言的单词符号分为五种:基本字、、常数、算符、界限符。
标识符12.在自底向上分析法中,LR分析法把“可归约串”定义为。
句柄13.编译中常用的中间代码形式有逆波兰式、三元式、和四元式等。
树代码14.对中间代码优化按涉及的范围分为,和全局优化。
局部优化,循环优化15.局部优化主要包括、利用公共子表达式和删除无用赋值等内容。
合并已知量16.为了构造不带回溯的递归下降分析程序,我们通常要消除和提取左递归,左公共因子17.计算机执行用高级语言编写的程序主要有两种途径:和。
解释执行,编译执行18.扫描器是词法分析,它接收输入的,对源程序进行词法分析并识别出一个个,供语法分析器使用。
源程序,单词符号19.自下而上分析法采用,,和等四种操作。
编译原理选择填空

一.填空题1..已知文法G[E]:E →E+T|TT →T*F|FF →(E)|a该文法终结符集合V T = {+,*,(,),a} ,文法非终结符集合V N = {E,T,F} ,该 文法在乔姆斯基文法分类中属于 2型 文法。
2.给出下列文法的适合自上而下翻译的语义动作,使得当输入是aabb 时其输出串是12020。
(1)A →aB {printf('0');}(2)A →c {printf('1');}(3)B →Ab {printf('2');}二.选择题1..为了使编译程序能对程序设计语言进行正确的翻译,必须采用 C 方法定义程序设计语言。
A.非形式化B.自然语言猫鼠问题C.形式化D.自然语言和符号体系相结合2.设X 是符号串,符号串的幂运算x0= CA.1B.xC.εD.∅3.若有源程序是高级语言编写的程序,目标程序是 C ,则称它为编译程序。
A.汇编语言程序或高级语B. 高级语言程序或机器语言程序C.汇编语言程序或机器语言程序D.连接程序或运行程序4.编译程序对 A 程序进行翻译。
A.高级语言B.机器语言C.自然语言D.汇编语言5.编译过程中,语法分析阶段的任务是 B .A.语言识别B.识别语言单词C.识别语句D.识别程序6.字母表示的元素可以是 DA.字母B. 字母和数字C. 数字D.字母 数字和其他符号7.在规则(产生式)中,符号“→”(“::=”)表示 DA.恒等式B.等于C.取决于D.自定义8.在规则(产生式)中,符号“|”表示 BA.与B. 或C. 非D.引导开关参数9.设有文法G [S]=({S,B},{b},{S →bB|b,B →bS},S),改文法所描述的语言是 CA. L(G[S]) ={b n |n >=n 2|n >= C. L(G[S]) ={b 12+n |n >=12+n |n >=10.一个句型最左边的 C 称为该句型的句柄。
编译原理填空

1.编译程序的工作过程一般可以划分为词法分析_、_语法分析_、_语义分析、_中间代码生成、_代码优化_等几个基本阶段,同时还会伴有表格处理和出错处理(6分)。
2. 在目标代码生成阶段,符号表是地址分配的依据。
(2分)。
3. 符号表的数据结构可以是无序符号表、有序符号表、栈式符号表。
4. 词法分析阶段的错误主要是单词拼写错误,可通过最小距离匹配的办法纠正错误。
5. 在大部分现有编译中采用的方案主要有两种:动态分配方案和静态分配方案。
1.编译程序与具体的机器无关,与具体的语言有关。
2.SLR(1)分析法中,L的含义是自左向右进行分析,R含义是采用最右推导的逆过程,S含义是简单的,“1”的含义是向貌似句柄的符号串的查看一个输入符号。
4.确定的有穷自动机是一个五元组,通常表示为M(Q,∑,t,q0,F)。
5.在大部分现有编译中采用的方案主要有两种:动态分配方案和___静态____分配方案。
6.假定G是一个文法,S是它的开始符号,如果S * α,则称_α__是一个句型,仅含终结符号的句型是一个句子。
文法G所产生的句子的全体是一个语言,将它记为L(G)。
1.程序的翻译方式有两种,分别是_编译方式_和_解释方式_。
2.字的前缀是指该字的任意首部。
(2分)3.LR(1)分析法中,L的含义是自左向右进行分析,R含义是采用最右推导的逆过程-最左归约,“1”的含义是向貌似句柄的符号串后查看一个输入符号。
4.编译过程中,常见的中间语言形式有三元式、逆波兰式和四元式。
5.程序的可再入性指的是:当程序在执行时,可以_随时中断__它的执行,也可随时_执行进程__恢复其原来的_执行进程_;而且可以在_中断时间里_,又从该程序的_头上开始一个新的执行过程。
1. 编译程序工作过程中,第一段输入是源程序,最后阶段的输出为目标程序。
2.若二个正规式所表示的正规集相同,则认为二者是等价的(2分)。
3. 符号表中名字的有关信息在词法分析和语法语义分析过程中陆续填入。
编译原理小题答案

《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码 .5.对编译程序而言,输入数据是源程序,输出结果是目标程序 .7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
10.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12.产生式是用于定义语法成分的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S=>*x,x∈VT*} 。
14.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V*),则称x是文法的一个句型。
15.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V T*),则称x是文法的一个句子。
16.扫描器的任务是从源程序中识别出一个个单词符号。
17.语法分析最常用的两类方法是自上而下和自下而上分析法。
18.语法分析的任务是识别给定的终结符串是否为给定文法的句子。
19.递归下降法不允许任一非终结符是直接左递归的。
20.自顶向下的语法分析方法的关键是如何选择候选式的问题。
21.递归下降分析法是自顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-01.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,之间代码生成,代码优化等几个基本阶段,同时还会伴有表格处理和出错处理 .1-02.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.1-03.编译方式与解释方式的根本区别在于是否生成目标代码 .1-04.翻译程序是这样一种程序,它能够将用甲语言书写的程序转换成与其等价的用乙语言书写的程序 .1-05.对编译程序而言,输入数据是源程序,输出结果是目标程序.1-06.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段: 编译阶段和运行阶段 .如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为三个阶段:编译阶段, 汇编阶段和运行阶段 .1-07.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
1-08.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
1-09.编译方式与解释方式的根本区别为是否生成目标代码。
2-01.所谓最右推导是指:任何一步α?β都是对α中最右非终结符进行替换的。
2-02.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
2-03.产生式是用于定义语法成分的一种书写规则。
2-04.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S x,x∈VT*} 。
2-05.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法的一个句型。
2-06.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。
3-01.扫描器的任务是从源程序中识别出一个个单词符号。
4-01.语法分析最常用的两类方法是自上而下和自下而上分析法。
4-02.语法分析的任务是识别给定的终极符串是否为给定文法的句子。
4-03.递归下降法不允许任一非终极符是直接左递归的。
4-04.自顶向下的语法分析方法的关键是如何选择候选式的问题。
4-05.递归下降分析法是自顶向上分析方法。
4-06.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
5-01.自底向上的语法分析方法的基本思想是:从给定的终极符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
5-02.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行直接归约,力求归约到文法的开始符号。
5-03.简单优先方法每次归约当前句型的句柄,算符优先方法每次归约当前句型的最左素短语,二者都是不断移进输入符号,直到符号栈顶出现可归约串的尾,再向前找到可归约串的头,然后归约。
5-04.在LR(0)分析法的名称中,L的含义是自左向右的扫描输入串,R 的含义是最左归约,0 的含义是向貌似句柄的符号串后查看0个输入符号。
5-05.在SLR(1)分析法的名称中,S的含义是简单的。
6-01.所谓属性文法是一个属性文法是一个三元组:A=(G,V,F),一个上下文无关文法G;一个属性的有穷集V和关于属性的断言或谓词的有穷集F。
每个断言与文法的某产生式相联。
6-02.综合属性是用于“自下而上”传递信息。
6-03.继承属性是用于“自上而下”传递信息。
6-04.终结符只有综合属性,它们由词法分析器提供。
7-01.在使用高级语言编程时,首先可通过编译程序发现源程序的全部 A 错误和 B 部分错误.a.语法b.语义c.语用d.运行8-01.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
8-02.一个过程相应的DISPLAY表的内容为现行活动记录地址和所有外层最新活动记录的地址。
9-01.一个过程相应的DISPLAY表的内容为现行活动记录地址和所有外层最新活动记录的地址。
9-02.常用的两种动态存贮分配办法是栈式动态分配和堆式动态分配。
9-03.常用的参数传递方式有传地址,传值和传名。
10-01.局部优化是局限于一个基本块范围内的一种优化。
10-02.代码优化的主要目标是如何提高目标程序的运行速度和如何减少目标程序运行时所需的空间。
概述部分:1.编译程序的开发常常采用自编译、交叉编译、自展和移植等技术实现。
2.解释程序和编译程序的区别在于是否生成目标程序。
3.如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为3个阶段:编译阶段、汇编阶段和运行阶段。
4.编译程序工作过程中,第一阶段输入是源程序,最后阶段的输出为目标程序。
5.编译过程通常可分为5个阶段词法分析阶段、语法分析阶段、语义分析和中间代码生成阶段、优化阶段和目标代码生成阶段。
6.如果编译阶段生成的目标程序是某特定计算机系统的机器代码程序,则源程序的执行分为两大阶段:编译阶段和运行阶段。
7.对编译程序而言,输入数据是源程序,输出结果是目标程序。
8.贯穿于编译程始终的工作有符号表处理和出错处理。
词法分析部分:1.词法分析的工作是将源程序中的字符串变换成单词符号流的过程,所遵循的是语言的构词规则。
2.若两个正规式所表示的正规集相同,则认为二者是等价的。
3.若两个正规式所表示的正规集相同,则认为二者是等价的。
4.正规式R1和R2等价是指_______表示相同的正规集。
5.词法分析器的输入是源程序字符串,输出结构是二元式(单词种别,单词自身的值)。
词法分析所遵循的是语言的构词规则。
6.确定的有限自动机是一个五元组,包含的五个元分别是:状态集合、字母表、初态、终态集、状态转换函数集合。
7.有限自动机是更一般化的状态转换图,它分为确定的有限自动机DFA 和非确定的有限自动机NFA 两种。
8.NFA和DFA的区别主要有两点:其一是NFA可以有若干个初始状态,而DFA仅有一个初始状态;其二是NFA的状态转换函数f不是单值函数,而是一个多值函数。
语法分析部分:(基本概念、LL(1)、LR(0)、SLR(1)、递归下降子程序)1.语法分析的方法通常分为两类:自上而下分析方法和自下而上分析方法。
2.文法中的终结符集和非终结符集的交集是空集。
3.一个句型的最左直接短语称为该句型的___句柄________________。
4.规范归约是最右推导的逆过程。
5.自下而上语法分析中分析器的动作有_移进、____归约、__接受_ 、__报错__。
6.自上而下语法分析中分析器的动作有___匹配终结符____、__展开非终结符_、__分析成功、报错__。
7.常用的自上而下语法分析方法有递归下降子程序方法和预测分析表方法(LL (1)方法)。
8.常用的自下而上语法分析方法有算符优先分析法和LR分析法。
9.一个LL(1)分析器由一张LL(1)分析表(预测分析表)、一个先进后出分析栈和一个控制程序(表驱动程序)组成。
10.一个LR分析器由分析栈、分析表和总控程序三个部分组成。
11.LR(0)分析法的名字中,“L”表示自左至右分析输入串,“R”表示采用最右推导的逆过程即最左归约。
“0”表示向右查看0个字符。
12.LL(1)分析法中,第一个L的含义是从左到右扫描输入串;第二个L的含义是分析过程中采用最左推导;“1”的含义是只需向右查看一个符号就可以决定如何推导。
13.LR(1)文法的含义是:L表明_____自左至右扫描输入串__,R表明___采用最右推导的逆过程(最左归约)方法进行分析__。
14.一个上下文无关文法是LL(1)文法的充分必要条件是:对每一个非终结符A 的任何两个不同产生式A→α|β,有下面的条件成立:(1)β⇒,则有FIRST(α) ∩ FIRST(α)∩FIRST(β) = Ø;(2)假若εFOLLOW(A) = Ø。
15.对于LL(1)文法中的任何产生式A→α|β,则需要满足__First(_α)∩First(β)= Φ、_若_β=>*ε,则_ First(_α) ∩__Follow(A)=_ Φ_。
16.LR分析器的核心部分是一张分析表,该表包括动作(ACTION)表和状态转换(GOTO)表等两个子表。
17.关于非终结符A的直接左递归产生式:A→Aα|β,其中α、β是任意的符号串且β不以A开头,则可以将A的产生式改写为右递归的形式为:A→βA’, A’→αA’|ε。
18.在消除回溯,提取公共左因子时,关于A 的产生式A → δβ1 | δβ2 | … | δβi | βi+1 | …| βj ,可以改写为: A → δA ’ | βi+1 | …| βj , A ’ →β1 | … |βi 。
19.设G[S] 是一文法,如果符号串x 是从识别符号推导出来的,即有*⇒S x ,则称x 是文法G[S]的____句型__,若x 仅由终结符号组成,即**,T V x x S ∈⇒,则称x 为文法G[S]的__句子 。
20.已知文法G[S]:S →eT|RT T →DR|ε R →dR|ε D →a|bd求FIRST(S)={e ,d ,a ,b ,ε}______;FOLLOW(D)=_{d ,#} 。
语义处理部分:1.文法符号的属性有两种,一种称为 继承属性 ,另一种称为 综合属性 。
2.编译过程中,常见的中间语言形式有 逆波兰表示法 、 抽象语法树 、 三元式 、 四元式 。
3.语法制导翻译的方法就是为每个产生式配上一个 翻译子程序(语义动作或语义子程序) ,并在语法分析的同时执行它们。
5.词法分析器的输入是 源程序字符串 ,输出结构是 二元式(单词种别, 单词自身的值) 。
7.四元式之间的联系是通过 临时变量 实现的。
____综合 属性。
__属性文法______,并使用__语法制(1)词法分析器,又称扫描器,它接受输入的源程序,对源程序进行词法分析,识别出一个个单词符号,其输出结果是二元式(单词种别,单词自身的值)流。
(2)语法分析器,对单词符号串进行语法分析(根据语法规则进行推导或归约),识别出程序中的各类语法单位,最终判断输入串是否构成语法上正确的句子。
(3)语义分析及中间代码生成器,按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。
编译程序可以根据不同的需要选择不同的中间代码形式,有的编译程序甚至没有中间代码形式,而直接生成目标代码。
(4)优化器对中间代码进行优化处理。
一般最初生成的中间代码执行效率都比较低,因此要做中间代码的优化,其过程实际上是对中间代码进行等价替换,使程序在执行时能更快,并占用更小的空间。