《编译原理》练习题库参考答案

发布时间:   来源:文档文库   
字号:
《编译原理》练习测试题库

一、填空
1.若源程序是用高级语言编写的,目标程序是______,则其翻译程序称为编译程序。2.词法分析和语法分析本质上都是对源程序的______进行分析。3.如果源语言(编写源程序的语言是高级语言,而目标语言是某计算机的汇编语言或机器语言,则这种翻译程序称为_____
4.对编译程序而言,输入数据是_______,输出结果是________5.______,是构成语言文法的单词,是语法成分的最小单位。
6.PL0EBNF可知,PL0语言可看成是PASCAL语言的子集,它的编译程序是一个__________
7.由于PL0编译程序采用_________,所以语法分析过程BLOCK是整个编译过程的核心。8.用语法图描述语法规则的优点是______________
9.每个非终结符是一个语法成分,在书写语言程序时并不出现,它是由__________________、或终结符串定义的。
10.PL0的目标程序为假想栈式计算机的汇编语言,与具体计算机______
11.PL0的编译程序和目标程序的解释执行程序都是用_______书写的,因此PL0语言可在配备_________的任何机器上实现。
12.PL0编译程序是用PASCAL语言书写的,整个编译程序(包括主程序是由______个嵌套及并列的过程或函数组成
13.当源程序编译正确时,PL0编译程序自动调用__________,对目标代码进行解释执行,并按用户程序要求输入数据和输出运行结果。
14.由于对某些非终结符可以递归定义,这就使得_________可用有穷的文法描述。
15.______的任务是识别由词法分析给出的单词符号序列在结构上是否符合给定的文法规则。
16.PL0编译程序的语法分析采用了____________
17.语法分析程序除总控外主要有两大部分的功能,即___________________.18.PL0的词法分析程序GETSYM是一个独立的过程,其功能是为_________提供单词用的,______的基础,它把输入的字符串形式的源程序分割成一个个单词符号。19.每个过程应有过程首部以定义局部于它自己过程的常量、变量和过程标识符,也称_____20.词法分析程序GETSYM将完成的任务有:______,识别保留字;_______,拼数,拼复合词,输出源程序.
21.如果一个PL0语言的单词序列在整个语法分析中,都能逐个得到匹配,直到_________这时就说所输入的程序是正确的。
22.若要构造程序设计语言的编译程序,则首先要对程序设计语言本身有较为精确的描述。而关于程序设计语言的描述,将涉及_____、语义和______三个方面。23.凡是具有某种特殊性质的客体的聚合,都可称为______24.如果集合中元素个数为零,即集合中不含有任何元素,这样的集合称为_______记为φ25.设有集合AB,如果AB有相同的元素,则称这两个集合是_______.
26.AB为任意两个集合,由所有属于集合A或属于集合B的元素组成的集合,叫做集合AB_______
27.AB为任意两个集合,由所有用于集合A且属于集合B的元素组成的集合,称为集AB_______.

28.如果一个集合,它能包含我们所要考虑目标之内的所有元素,则称此集合为_____,记E
29.A为一集合,由A的所有子集(包括空集及A本身所组成的集合,称为A______.30.由两个按一定次序排列的客体组成的序列,称为_____.31.AB为任意两个集合,若序偶的第一个成员是集合A的一个元素,第二个成员是集B的一个元素,则所有这样的序偶组成的集合称为集合AB__________.32.在集合X上的关系R,如对任意xX,均有(xxR,则称关系R______
33.在集合X上的关系R,如果合(xyR,便必有(yxR,则称关系R________34.在集合X上的关系R,如果合(xyR(yzR,必有(xzR,则称关系R______
35.P={123422}Q={472931}P·Q=____________________________
36.符号串与符号组成顺序______,如符号串ab______ba,符号申001______01037.假设G是一个文法,S是文法的开始符号,如果S=>*x,则称x________38.文法G产生的_______的全体是该文法描述的语言。39.一个文法G[Z]若存在推导序列Z=>+···Z···,
则称G(z______文法,这类文法所产生的句子有______个。40.乔姆斯基把文法分成____类型.
41.四个文法类的定义是逐渐增加限制的,因此每一种正规文法都是_______.42.最右推导常被称为________
43.由规范推导所得的句型称为______
44.文法的二义性和语言的二义性是两个_________的概念。45.对于上下文无关文法,_______是句型推导过程的几何表示。46.直接短语也称_______.
47.每棵语法树的叶子组成一个______.48.每棵子树的叶子组成一个______.
49.每棵简单子树的叶子组成一个_______.50.最左边简单子树的叶子组成_______.
51.一个句型的最左直接短语称为该句型的_______52.关于句型或句子的直接推导"=>"和推导"=>+"实际上均可视为符号串之间关系,而且推"=>+"为直接推导"=>"_________
53.________是语言文法的等价表示,可用它来代替BNF规则集合。
54.某条规则Uu中的左部符号U(U不是识别符号,不在所属文法的任何其他规则右部出现,那么这条规则在推导中不起作用,即所有句子的推导始终不会用到此规则,显然这种规则是多余的。也称这种非终结符为_________.
55.从文法的某个非终结符号U推不出终结符号串,显然,所有含有U的规则是多余的。也称这种非终结符为________
56.L是上下文有关语言、上下文无关语言或正规语言,则L{ε}L-{ε}分别是上下文有关语言、_____和正规语言。
57.设有文法G,对于其中某一非终结符号U可能作出一些不同推导U=>+Sx,其中S叫头符号,由于推导不同,由U产生的头符号S也可能不同,这些头符号S构成的集合,称为U的推导的__________.
58.一个上下文无关文法G包括四个组成部分依次是:_____,______,_______,_______.1159.文法所描述的语言是_______的集合。

60.词法分析器工作的第一步是输入源程序文本。输入串一般是放在一个缓冲区中,这个缓冲区称________
二、选择
1.编译程序是一种常用的_________软件。A.应用B.系统C.工具D.测试2.在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分______错误。
A.语法B.语义C.语用D.运行
3.编译程序生成的目标程序_____是机器语言的程序。
A.一定B.不一定C.某种情况下一定D.某种情况下不一定4.编译程序生成的目标程序_______是可执行的程序。
A.一定B.不一定C.某种情况下一定D.某种情况下不一定5.一个语言的文法是_____.
A.惟一的B.不惟一的C.个数有限的D.无限的6.巴科斯-诺尔范式(BNF是一种广泛采用的_____的工具。A.描述规则B.描述语言C.描述文法D.描述句子7.r=(a|b|c(x|y|zLr)中元素为个(A9B6C18D27
8、正则集合L={an|n0}相应的正则表达式是(Aa*Ba+Caa*Daa+
9.编译过程中扫描器的任务包括______①组织源程序的输入
②按词法规则分割出单词,识别出其属性,并转换成属性字的形式输出⑧删除注解
④删除空格及无用字符⑤行计数、列计数⑥发现并定位词法错误⑦建立符号表
A.②③④⑦B.②③④⑥⑦C.①②③④⑥⑦D.①②③④⑤⑥⑦10、编译过程中,语法分析器的任务是______a.分析单词是怎样构成的
b.分析单词串是如何构成语句和说明的c.分析语句和说明是如何构成程序的d.分析程序的结构
A.bcBdCbcdDabcd11、语法分析的常用方法是________
a.自顶向下b.自底向上c.自左向右d.自右向左AabcdBabCcdDabc
12编译程序中的语法分析器接受以________为单位的输入,并产生有关信息供以后各阶段使用。
A.表达式B.产生式C.单词D.语句13LL(1文法的条件是_______
A.对形如U->Xl|X2||Xn的规则,要求FIRST(XiFIRST(Xj=Φ(ij

B.对形如U->Xl|X2||Xn的规则,若Xi=>*ε,则要求FIRST(XjFOLLOW(U=ΦCABD.都不是
14、一个右线性文法G一定是
ALL1)文法CSLR1)文法BLR1)文法D.上述三者都不是15、算符文法是指______的文法。26
①没有形如U->VW„的规则(UVWVN
②终结符号集VT中任意两个符号对之间至多有一种优先关系成立⑧没有相同的规则右部④没有形如U->ε的规则
A.B.①②C.①②③D.①②③④16、算符优先文法是指______的文法。
①没有形如U->VW„的规则(UVWVN
②终结符号集VT中任意两个符号对之间至多有一种优先关系成立⑧没有相同的规则右部④没有形如U->ε的规则
A.①②B.①②③C.①②③④D.①②④17、下列文法G[S]的句型aRaSbaTb,b的最左素短语______S->aTb|T->R
R->RS|S
A.aTbB.aSbC.SD.R18算符优先分析法每次都是对______进行归约,简单优先分析法每次都是对句柄进行归约。A.最左短语B.简单短语C.最左素短浯D.素短语19xab+cde-*f/:=是赋值语句(相应的后缀式Ax:=a+b+c*d-e/fBx:=a+(b+c*d-e/fCx:+a+b+c*(d-e/fDx:=a+b+c+(c*d-e/f20LR(K方法是______
A.从左到右分析,每次走K步的一种编译方法B.从左到右分析,共经过K步的一种编译方法
C.从左到右分析,每次向前预测K步的一种编译方法
D.从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法21、下面三个文法中,为SLR(1文法的是______10G1P->PaP|b
G2P->bPb|cPc|b|cG3P->bPb|bPc|d
A.GlB.仅G2C.仅G3DG2G322、有下列文法:11S->Pa|Pb|cP->Pd|Se|f
该文法是______
A.LL(1文法B.SLR(1文法

C.abD.都不是
23.代码优化的主要目标是(12如何提高目标程序的运行速度如何减少目标程序运行所需的空间如何协调①和②
如何使生成的目标代码尽可能短
A①②B①②③C①②④D①②③④24、设文法GS为其开始符号)产生式如下:
S→aSb|ab|εG是一个(
ALR1)文法BSLR1)文法C.三型文法D.二型文法
25在编译程序采用的优化方法中,_____是在循环语句范围内进行的。12①合并已知常量②删除多余运算,③删除归纳变量④强度削弱⑤代码外提
A①④B①⑤C①④⑤D③④⑤26合并表达式中常量运算的目的是_____12①合并常量,使表达式中的常量尽可能少②合并常量,使表达式尽可能简短
③将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,使得生成的代码指令尽可能少ABCD①②③
27下面的程序段可以进行哪些优化_____12i=1j=l0readkLx=x*iy=j*iz=x*ywriteji=i+1
ifi<100gotoLhalt
①合并已知常量②删除多余运算③删除归纳变量④强度削弱⑤代码外提可选项有:
A.①④B①⑤C,①④⑤D.③④⑤28.属于低级语言的是(
AFortranB.PascalC.LispDMasm
29.oct是字母表{017}中的任何一个元素,表示C语言的八进制无符号整规表达式是(
A.(oct8B.(oct*C.(oct+D.(oct#
30.采用()实现三地址代码时,不利于对中间代码进行优化。

A.四元式B.间接三元式C.三元式D.有向无循环图31.一个正规语言只能对应(A一个正规文法;
B一个最小有限状态自动机;C.一个下推自动机
D.一个确定的有限自动机
32.文法G[A]A→εA→aBB→AbB→a(A正规文法B二型文法C.上下无关文法D.不确定33.下面说法正确的是(
A一个SLR1)文法一定也是LALR1)文法B一个LR1)文法一定也是LALR1)文法
34一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL1文法的(A.必要条件B.充分必要条件C.充分条件D.无法确定
35PL/0语言的目标程序解释执行时用到的数据对象有(A目标代码CODEB符号表TABLEC关键字表WORDD数据栈S
36.PL/0语言编译时产生或使用的数据对象不包括(A目标代码CODEB符号表TABLEC数据栈S
D关键字表WORD
37、编译程序是一种常用的_________软件。A.应用B.系统C支撑D.自动化38在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分语义错误。
A.语法B语义C.语用D.运行
39.一个LR1)文法合并同心集后若不是LALR1)文法:A则可能存在移进/归约冲突B则可能存在归约/归约冲突
C则可能存在移进/归约冲突和归约/归约冲突D不存在冲突
40、运算符与运算对象类型不符"属于______
A.语法错误B.语义错误C.语用错误D.规则
三、简答题
1.“含有优化部分的编译程序的执行效率高”,这种说法正确吗?2.有人认为编译程序的五个组成部分却一不可,这种看法正确吗?3.解释程序定义哪些寄存器?

4.PL0编译程序对语法错误的处理采用哪两种办法?
5.解释说明指令LIT?LOD?STO?CAL?INT?JMP?JPC?OPR?56.已知文法G(SS→a|∧|(TT→T,S|S
写出句子((aaa的规范归约过程及每一步的句柄。7.何谓优化?按所涉及的程序范围可分为哪几级优化?
8.目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?9.写出表达式(ab*c/(abd的逆波兰表示及三元式序列。10.写一个文法,使其语言是奇数集,且每个奇数不以0开头。11.编译程序的结构是什么?12.关系有哪些基本性质?
13.解释字母表,符号,符号串,符号串的长度,符号串联结?14.自下而上分析算法的基本思想是什么?15.设有文法Gs::=Qc|cQ::=Rb|bR::=Sa|a
试求HARD(S,HARD(Q,HARD(R.
16.用扩充的BNF范式表示下述文法以消去ε规则:S::=aABb|abA::=Aab|εB::=Aa|a
17.考虑下面程序…………
VaraintegerProcedureS(XVarXintegerBegin
a:=a1X:=aXEndBegin
a:=5S(aPrint(aEnd
试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?18.设有文法G[I]:8I->I1/I0/Ia/Ic/a/b/c
判断下面符号串中哪些是该文法的句子.(1ab0(2a0c01(3aaa

(4bc10(5aabc(6bbca
19.为了正确地对源程序进行编译,不允许文法有二义性,那么怎样才能排除文法的二义性?9
20.什么是简单子树?21.什么是子树?
22.什么是句型的分析?
23.自下而上分析算法的基本思想是什么?24.设有文法Gs::=Qc|cQ::=Rb|bR::=Sa|a
试求HARD(S,HARD(Q,HARD(R.
四、综合题
1.Whilea>0∨b<0doBegin
X:=X1
ifa0thena:=a1elseb:=b1End
翻译成四元式序列。2.设布尔表达式的文法为
(1(2
E→E∨E
(1(2
E→E∧EE→i
假定它们将用于条件控制语句中,请
(1改写文法,使之适合进行语法制导翻译和实现回填;(2写出改写后的短个产生式的语义动作。3.设文法G(SS→(L|aS|aL→L,S|S
(1消除左递归和回溯;
(2计算每个非终结符的FIRSTFOLLOW4.对下列文法G:26S'->#S#S->D(RR->R;P|pP->S|iD->i
计算文法中每个非终结符的FIRSTVT集和LASTVT
5.将下列赋值语句译成三地址代码。A[i,j]:=B[i,j]+C[A[k,l]]+D[i+j]6、设布尔表达式的文法为


E→E(1∨E(2
E→E(1∧E(2
E→i
假定它们将用于条件控制语句中,请
(1改写文法,使之适合进行语法制导翻译和实现回填;
(2写出改写后的短个产生式的语义动作。78分)给定PASCAL程序语句
whilea>bdoifa>0thena:=a-1elsea:=a+1;1.将该语句翻译成逆波兰式;
2.给出编译程序扫描到then处及分号处时所得的四元式序列。8.如何计算FIRST集?
更多课程资料请到大学课程网www.0206.cc学习

《编译原理》练习测试题库参考答案

一、填空
1.机器语言程序或汇编程序2.结构3.编译程序
4.源程序,目标程序。5.终结符
6.编译解释执行系统7.一趟扫描方法8.直观、易读
9.终结符和非终结符串10.无关
11.PASCAL语言

12.18
13.解释执行程序14.无穷的句子集15.语法分析
16.自顶向下的递归子程序法
17.说明部分的处理,程序体部分的处理18.语法分析,语法分析19局部量
20滤空格,识别标识符,输出源程序21程序结束符22.语法,语用23.集合24.空集25.相等的26.并集27.交集28.全集29.幂集30.序偶
31.笛卡尔乘积32.自反的33.对称的34.传递的35.{193725}36.有关,不同于,不同于37.句型38.句子
39.(1递归(2无数40.四种
41.上下文无关的42.规范推导43.规范句型44.不同45.语法树46.简单短语47.句型48.短语49.简单短语50.句柄51.句柄52.传递闭包53.语法图54.不可达到的55.不可终止的

56.上下文无关语言57.头符号集合
58.终结符号,非终结符号,开始符号,产生式59.由文法的识别符推出的所有终结符号串60.输入缓冲区
二、选择
1.B2.A3.B4.B5.B6.B7.B8.A9.D10.C11.B12.C13.C14.A15.A16.D17.B18.D19.A20.D21.C22.B23.B24.D25.D26.D27.C28.D29.D30.C31.B32.B33.A34.A35.A36.C37.B38.A39.B40.A
三、简答题
1.答:含有优化功能的编译程序,其优化是指对生成的目标代码进行优化,而不是编译程序本身得到优化,它提高目标代码的效率,而不是编译程序的效率。所以,上述说法不对。2.答:不正确。编译程序的五个组成部分中,词法分析,语法分析,语义分析和代码生成是必须完成的,而代码优化是为了提高目标程序的质量,它不是必需的,没有优化部分的编译程序也能生成目标代码。
3.指令寄存器,程序地址寄存器,栈顶寄存器,基址寄存器
4.(1对于一些易于校正的错误,如丢了逗号、分号等,则指出出错位置,并加以校正。校正的方式就是补上逗号或分号。
(2对某些错误,编译程序难于确定校正的措施,为了使当前的错误不致影响整个程序的崩溃,把错误尽量局限在一个局部的语法单位中。这样就需跳过一些后面输入的单词符号,直到读入一个能使编译程序恢复正常语法分析工作的单词为止。
5.LIT:将常量值取到运行栈顶。LOD:将变量放到栈顶。STO:将栈顶的内容送入某变量单元中。CAL调用过程的指令。INT为被调用的过程(或主程序在运行栈中开辟数据区。JMP无条件转移指令。JPC:条件转移指令。OPR:关系运算和算术运算指令。将栈顶和次栈顶的内容进行运算,结果存放在次栈顶,此外还可以是读写等特殊功能的指令6.句型归约规则句柄

((aaaS→aa((SaaT→SS((TaaS→aa((TSaT→T,STS((SaT→SS((TaS→S(T(T(SaT→SS(TaS→aa(TST→T,STS(TS→(T(TS7.优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。
三种级别:局部优化、循环优化、全局优化。8.目标代码通常采用三种形式:机器语言,汇编语言,待装配机器语言模块。应着重考虑的问题:
(1如何使生成的目标代码较短;
(2如何充分利用寄存器,以减少访问内存次数;(3如何充分利用指仅系统的的特点。9.逆波兰表示:
abc*ab/d三元式序列:(*bc

②(+,a,①③(+,ab④(/,②,③⑤(-,④,d
10.文法G(NN→AB|BA→AC|DB→1|3|5|7|9D→B|2|4|6|8C→0|D
11编译过程的六个阶段的任务,再加上表格管理和出错处理的工作可分别由几个模块或程序完成,它们分别称作词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、表格管理程序和出错处理程序。
12自反的在集合X上的关系R,如对任意xX,均有(xxR,则称关系R是自反的。
非自反的在集合X上的关系R,如对任意xX,均有(xxR,则称关系R是非自反。
对称的在集合X上的关系R,如果合(xyR,便必有(yxR,则称关系R是对称的。
非对称的在集合X上的关系R,如果有(xyRxy,便必有(yxR,则称关系R是非对称的。
传递的在集合X上的关系R,如果合(xyR(yzR,必有(xzR,则称关系R是传递的。
13.元素的非空有穷集合。字母表中的元素。由字母表中的符号组成的任何有穷序列,惯用小写字母tuvxy…表示符号串。长度是符号串所含符号的个数。设有符号串xy,把y的符号写在x的符号之后所得的符号串,叫做xy的联结,记为xy14答:从所给符号串x开始,在其中寻找与文法的某条规则右部相匹配的子串,并用该规则的左部取代此子串(即归约,重复此过程,步步向上归约,最后试图将符号串x归约到文法的识别符号Z。如归约成功,则符号串x是文法的句子。15HARD(S={S,Q,R,a,b,c}
HARD(Q={S,Q,R,a,b,c}HARD(R={S,Q,R,a,b,c}16S::=aABb|abA::={ab}

B::=Aa|a
17传名:a12传值:a618.(1错误(2正确(3正确(4正确(5错误(6错误(7错误
19.(1在语义上加些限制,或者说加一些语法的非形式规定。这样做不必改变文法中原有的语法规则。
(2把排除二义性的规则合并到原有文法中,即构造一个等价的无二义性的文法G'样做,需要改造原有文法。
20.只有单层分支的子树称为简单子树。
21.由某一结点及其所有分支组成的部分,成为原语法树的一棵子树。
22.句型的分析就是识别一个符号串是否为某文法的句型,是某个推导的构造过程。
23.从所给符号串x开始,在其中寻找与文法的某条规则右部相匹配的子串,并用该规则的左部取代此子串(即归约,重复此过程,步步向上归约,最后试图将符号串x归约到文法的识别符号Z。如归约成功,则符号串x是文法的句子。24.HARD(S={S,Q,R,a,b,c}HARD(Q={S,Q,R,a,b,c}HARD(R={S,Q,R,a,b,c}
四、综合题
每题10分,3题共301.解:
(1(j>,a05(2(j,-,-,3(3(j<,b05(4(j,-,-,15(5(+,×1T1(6(:=,T1,-,×(7(j≥a09(8(j,-,-,12(9(-,a1T2(10(:=,T2,-,a(11(j,-,-,1(12(+,b1T3(13(:=,T3,-,b(14(j,-,-,1


2.解:(1E0→E(1
E→E0E(2EA→E(1E→EAE(2
E→i(2E→E(1
{BACKPATCH(E(1·FCNXQE0·TC:=E(1·TC}E→E0E(2{E·FC:=E(2·FCTC:=MERG(E0·TCE(2·TC}EA→E(1
{BACKPATCH(E(1·TCNXQE0·FC:=E(1·FC}E→EAE(2{E·TC:=E(2·TCFC:=MERG(EA·FCE(2·FCE→i{E·TC:=NXQFC:=NXQ1GEN(jn2entry(i,-0GEN(j,-,-,0
3解:(1

S(L|aSS’→S|εLSL
L’→SL|ε
(2
FIRSTS{(a}FIRST(S{a,ε}FIRST(L{(a}FIRST(L{,,ε}(3
FOLLOW(S{#,,,}FOLLOW(S{#,,,}FOLLOW(L{}FOLLOW(L’〕={}
a(

SS’LL’

S→aS’S→(L
S’→SS’→εS’→SS’→εS’→εL→SL’L→SL’
L’→εL’→ε
4.(1文法G中每个非终结符的FIRSTVT集和LASTVT集为:FIRSTVT(s'={#}FIRSTVT(P={i,(FIRSTVT(s={(,iFIRSTVT(D={i}FIRSTVT(R={;,(,i
(2文法G中每个非终结符的LASTVT集为:LASTVT(S'={#}LASTVT(P={i,}}LASTVT(S={}}LASTVT(D={i}LASTVT(R={;,},i}
5.t11:=i*20
t12:=t11+jt13:=A-84;t14:=4*t12
t15:=t13[t14]//A[i,j]t21:=i*20t22:=t21+jt23:=B-84;t24:=4*t22
t25:=t23[t24]//B[i,j]t31:=k*20t32:=t31+lt33:=A-84t34:=4*t32
t35:=t33[t34]//A[k,l]t36:=4*t35t37:=C-4
t38:=t37[t36]//C[A[k,l]]t41:=i+j

t42:=4*t41t43:=D-4
t44:=t43[t42]//D[i+j]t1:=t25+t38t2:=t1+t44t23[t24]:=t2
6.解:(1E0→E(1E→E0E(2EA→E(1E→EAE(2
E→i(2E→E(1
{BACKPATCH(E(1·FC,NXQE0·TC:=E(1·TC}E→E0E(2
{E·FC:=E(2·FC;
E·TC:=MERG(E0·TC,E(2·TC}EA→E(1
{BACKPATCH(E(1·TC,NXQE0·FC:=E(1·FC}E→EAE(2
{E·TC:=E(2·TC;
E·FC:=MERG(EA·FC,E(2·FC}E→i
{E·TC:=NXQ;E·FC:=NXQ1GEN(jn2entry(i,-0GEN(j,-,-,07.


8.根据定义计算
FIRST集定义FIRST(α={a|α=>aβaα=>ε,则规定εFIRST(α对每一文法符号XV,计算FIRST(X(aX(bX(cX(dX
,则FIRST(X={X},且有产生式Xa„,a
,则aFIRST(X
αβV}
,且有产生式Xε,则εFIRST(XY1Y2,„Yi
,而有产生式XY1Y2Yn。当Y1Y2Yi-1=>
ε时,(其中1in,则FIRST(Y1-{ε}FIRST(Y2-{ε},„FIRST
-{ε}FIRST(Yi都包含在FIRST(X中。
(e(d中所有Yi=>ε(i=12..n,

FIRST(X=FIRST(Y1FIRST(Y2∪„∪FIRST(Yn{ε}反复使用(a-(e步,直到每个符号的FIRST集合不再增大为止


更多课程资料请到大学课程网www.0206.cc学习


本文来源:https://www.2haoxitong.net/k/doc/81f4b7dcbe23482fb4da4cb7.html

《《编译原理》练习题库参考答案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式