编译原理复习题0001.docx
- 文档编号:26186840
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:25
- 大小:347.79KB
编译原理复习题0001.docx
《编译原理复习题0001.docx》由会员分享,可在线阅读,更多相关《编译原理复习题0001.docx(25页珍藏版)》请在冰豆网上搜索。
编译原理复习题0001
编译原理复习题
一、是非题
1•计算机高级语言翻译成低级语言只有解释一种方式。
(X)
3•每个文法都能改写为LL
(1)文法。
(X)
4•算符优先关系表不一定存在对应的优先函数。
(V)
5•LR分析方法是自顶向下语法分析方法。
(X)
6•“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。
(X)
7.一个句型的句柄一定是文法某产生式的右部。
(V)
8.仅考虑一个基本块,不能确定一个赋值是否真是无用的。
(V)
9.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。
(X)
10.对于数据空间的存贮分配,FORTRA采用动态贮存分配策略。
(X)
11.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(X)
12.递归下降分析法是自顶向下分析方法。
(V)
13.产生式是用于定义词法成分的一种书写规则。
(X)
14.在SLR⑴分析法的名称中,S的含义是简单的。
(V)15.综合属性是用于“自上而下”传递信息。
(X)
16.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。
(X)17.程序语言的语言处理程序是一种应用软件。
(X)
18.解释程序适用于COBOL和FORTRAN语言。
(X)19.一个LL(l)文法一定是无二义的。
(V)20.正规文法产生的语言都可以用上下文无关文法来描述。
(V)
21.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
(X)
22.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
(V)
22.逆波兰法表示的表达式亦称后缀式。
(V)
23.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。
(V)
24.数组元素的地址计算与数组的存储方式有关。
(V)
25.算符优先关系表不一定存在对应的优先函数。
(X)
26.编译程序是对高级语言程序的解释执行。
(X)
27.一个有限状态自动机中,有且仅有一个唯一的终态。
(X)
28.一个算符优先文法可能不存在算符优先函数与之对应。
(V)
29.语法分析时必须先消除文法中的左递归。
(X)
30.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(V)
31.逆波兰表示法表示表达式时无须使用括号。
(V)
32.静态数组的存储空间可以在编译时确定。
(V)
33.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(V)
34.两个正规集相等的必要条件是他们对应的正规式等价。
(V)
35.一个语义子程序描述了一个文法所对应的翻译工作。
(X)
36.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。
(X)
37.确定的自动机以及不确定的自动机都能正确地识别正规集。
(V)
38.词法分析作为单独的一遍来处理较好。
(X)
39.构造LR分析器的任务就是产生LR分析表。
(V)40.规范归约和规范推导是互逆的两个过程。
(V)
41.同心集的合并有可能产生新的“移进”/“归约”冲突。
(X)
42.LR分析技术无法适用二义文法。
(X)
43.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。
(X)
44.程序中的表达式语句在语义翻译时不需要回填技术。
(V)
45.对中间代码的优化依赖于具体的计算机。
(X)
46.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。
(X)
47.在程序中标识符的出现仅为使用性的。
(X)
48.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。
(X)
49.编译程序与具体的机器有关,与具体的语言无关。
(X)
二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)
1.一个编译程序中,不仅包含词法分析,(A),中间代码生成,代码优化,目标代码生成等五个部分。
A.语法分析B.文法分析C.语言分析D.解释分析
2.语法分析器则可以发现源程序中的(D)。
A.语义错误B•语法和语义错误C.错误并校正D.语法错误
3.解释程序处理语言时,大多数采用的是(B)方法。
A.源程序命令被逐个直接解释执行
B.先将源程序转化为中间代码,再解释执行
C.先将源程序解释转化为目标程序,再执行
D.以上方法都可以
4.编译程序是一种(B)。
A.汇编程序B.翻译程序C.解释程序D•目标程序
18.一个上下文无关文法G包括四个组成部分,它们是:
一组非终结符号,一组终结符号,一个开始符号,以及一组(D)。
A.句子B.句型C.单词D.产生式
19.文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是(D)。
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法
28编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过(B)这几步:
(1)编辑
(2)编译(3)连接(4)运行
A
(1)
(2)(3)(4)
B
(1)
(2)(3)C
(1)(3)D
(1)(4)
29把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
D预
D单词自身值
A编译器B汇编器C解释器
处理器
31词法分析器的输出结果是(C)。
A单词的种别编码B单词在符号表中的位置C单词的种别编码和自身值
32正规式M1和M2等价是指(C)。
A.M1和M2的状态数相等B.M1和M2的有向边条数相等
C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等
33.文法G:
S—xSx|y所识别的语言是(C)。
AxyxB(xyx)*Cxnyxn(n0)Dx*yx*
34.如果文法G是无二义的,则它的任何句子a(A)。
A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同
35.构造编译程序应掌握(D)。
A.源程序B.目标语言C.编译方法D.以上三项都是
36.四元式之间的联系是通过(B)实现的。
A.指示器B.临时变量C.符号表D.程序变量
37.表达式(「AVB)A(CVD)的逆波兰表示为(B)。
A.nABVACDVB.AnBVCDVAC.ABVnCD/AD.AnBVACD
V
38.优化可生成(D)的目标代码。
A.运行时间较短B.占用存储空间较小
C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小
39.下列(C)优化方法不是针对循环优化进行的。
A.强度削弱B.删除归纳变量C.删除多余运算D.代码外提
40.编译程序使用(B)区别标识符的作用域。
A.说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次D.标识符的行号
41.编译程序绝大多数时间花在(D)上。
A.出错处理B.词法分析C.目标代码生成D.表格管理
42.编译程序是对(D)。
A.汇编程序的翻译B•高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译
同寸还会伴有__表格处理___和___出错处理__。
2.编译方式与解释方式的根本区别在于__是否生成目标代码___。
3.产生式是用于定义___语法成分__的一种书写规则。
4.设G是一个给定的文法,S是文法的开始符号,如果S->x(其中x€VT*),则称x是文法的一个—句子
5.自顶向下的语法分析方法的基本思想是:
从文法的__开始符号开始,根据给定的输入串并按照文法的产
生式一步一步的向下进行__直接推导,试图推导出文法的__句子,使之与给定的输入串___匹配__
6.常用的参数传递方式有___传地址__,传值和传名。
7.
语义规则
一个句型中的最左简单短语称为该句型的___句柄__。
8.对于文法的每个产生式都配备了一组属性的计算规则,称为
9.一个典型的编译程序中,不仅包括__词法分析___、__语法分析___、__中间代码生成___、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
10.从功能上说,程序语言的语句大体可分为__执行性___语句和__说明性___语句两大类。
11.扫描器的任务是从__源程序___中识别出一个个___单词符号__。
12.产生式是用于定义__语法范畴___的一种书写规则。
13.语法分析是依据语言的__语法___规则进行的,中间代码产生是依据语言的__语义___规进行的。
14.语法分析器的输入是__单词符号串___,其输出是__语法单位___。
15.一个名字的属性包括__类型___和__作用域___。
16.逆波兰式ab+c+d*e-所表达的表达式为__(a+b+c)*d-e___。
17.语法分析最常用的两类方法是__自上而下___和__自下而上___分析法。
18.计算机执行用高级语言编写的程序主要有两种途径:
___解释__和__编译___。
19.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
20.自上而下分析法采用―移进_、归约、错误处理、—接受__等四种操作。
21.—个LR分析器包括两部分:
一个总控程序和一张分析表__。
22.后缀式abc-/所代表的表达式是a/(b-c)__。
23.局部优化是在__基本块—范围内进行的一种优化。
24.词法分析基于—正则―■文法进行,即识别的单词是该类文法的句子。
25•语法分析基于—上下文无关—文法进行,即识别的是该类文法的句子。
语法分析的有效工具是—语法树—
26.分析句型时,应用算符优先分析技术时,每步被直接归约的是__最左素短语,而应用LR分析技术时,每
步被直接归约的是—句柄__。
27.语义分析阶段所生成的与源程序等价的中间表示形式可以有—逆波兰—、—四无式表示—与—三元式表示—等。
28.按Chomsky分类法,文法按照—规则定义的形式—进行分类。
29.—个文法能用有穷多个规则描述无穷的符号串集合(语言)是因为文法中存在有―递归—定义的规则。
四、简答题
1.写一文法,使其语言是偶正整数的集合,要求:
(1)允许0打头;
(2)不允许0打头。
解:
(1)G[S]=({S,P,D,N},{0,1,2,…,9},P,S)
P:
S->PD|D
P->NP|N
D->0|2|4|6|8
N->0|1|2|3|4|5|6|7|8|9
(2)G[S]=({S,P,R,D,N,Q},{0,1,2,…,9},P,S)
P:
S->PD|P0|D
P->NR|N
R->QR|Q
D->2|4|6|8
N->1|2|3|4|5|6|7|8|9
Q->0|1|2|3|4|5|6|7|8|9
2.构造正规式相应的NFA:
101)*101
解1(0|1)*101对应的NFA为
3.写出表达式(a+b*c)/(a+b)—d的逆波兰表示和三元式序列。
逆波兰表示:
abc*+ab+/d—
三元式序列:
1(*,b,c)
2(+,a,①)
3(+,a,b)
4(/,②,③)
5(―,④,d)
4.已知文法G[S]为:
StdAB
A^aA|a
BtBb|£
G[S]产生的语言是什么?
答:
G[S]产生的语言是L(G[S])={danbm|n1,m0}。
5.构造正规式相应的DFA:
1(1010*|1(010)*1)*0。
解:
1(1010*|1(010)*1)*0对应的NFA为:
6.已知文法G(S)
句型
归约规则
句柄
((a,a),a)
Sta
a
((S,a),a)
TtS
S
((T,a),a)
Sta
a
((T,S),a)
TtT,S
T,S
((S),a)
TtS
S
((T),a)
StS(T)
(T)
(S,a)
TtS
S
(T,a)
Sta
a
(T,S)
TtT,S
T,S
(T)
St(T)
(T)
Sta|A|(T)
T,S|S
写出句子((a,a),a)的规范归约过程及每一步的句柄。
解:
S
7.写一个文法,使其语言是奇数集,且每个奇数不以0开头。
解:
文法G(N):
NtAB|B
AtAC|D
Bt1|3|5|7|9
DtB|2|4|6|8
Ct0|D
8.设文法
G(S):
St(L)|aS|a
LtL,S|S
消除左递归和回溯;计算每个非终结符的
(1)
(2)
解:
(1)
St(L)|aS'
S'tS|
LtSL'
L'tSL'|£
(2)
FIRST)S)={(,
FIRST(S')={,
FIRST(L)={(,
FIRST(L')
已知文法G(E)
EtT|E+T
TtF|T*F
Ft(E)|i
(1)给出句型
(2)给出句型
(1)最右推导:
短语:
(T*F+i),T*F+i,T*F,i
FIRST和FOLLOW。
a}
a,e}
a}
={,,e}
FOLLOW(S={#,,,)}FOLLOW(S')={#,,,)}
FOLLOW(L)={)}FOLLOW(L'〕={)}
9.
的最右推导;的短语、素短语。
解:
(2)
素短语:
T*F,i
(T*F+i)
(T*F+i)
E=>T->F=>(E)->(E+T)=>(E+F)->(E+i)=>(T+i)=>(T*F+i)
10.Whilea>0Vbv0do
Begin
X:
=X+1;
ifa>0thena:
=a—1
elseb:
=b+1
End;翻译成四元式序列。
解:
(1)(j>,a,0,5)
(2)(j,—,—,3)
(3)(jv,b,0,5)
(4)(j,—,—,15)
(5)(+,X,1,T1)
(6)(:
=,T1,—,X)
(7)(j>,a,0,9)
(8)(j,—,—,12)
(9)(—,a,1,T2)
(10)(:
=,T2,—,a)
(11)(j,—,—,1)
(12)(+,b,1,T3)
(13)(:
=,T3,—,b)
(14)(j,—,—,1)
(15)
11.写出下列表达式的三地址形式的中间表示。
(1)5+6*(a+b);
(2)forj:
=1to10doa[j+j]:
=0答:
(1)100:
t1:
=a+b
101:
t2:
=6*t1102:
t3:
=5+t2
(2)100:
j:
=1101:
ifj>10gotoNEXT102:
i:
=j+j103:
a[i]:
=0
12.设基本块p由如下语句构成:
T0:
=;
T1:
=2*T0;
T2:
=R+r;
A:
=Tl*T2;
B:
=A;
T3:
=2*T0;
T4:
=R+r;
T5:
=T3*T4;
T6:
=R-r;
B:
=T5*T6;
试给出基本块p的DAG。
To
解:
基本
块p的
DAG图:
13.
写出表达式
(a+b)/(a-b-(a+b*c)
解:
(1)
三兀式:
①
(+,
a,b)
②
(―,
a,b)
③
(/,'
①,②)
④
(*,
b,c)
⑤
(+,
a,④)
的三元序列及四元序列。
6(―,③,⑤)
(2)四元式:
1(+,a,b,T1)
2(一,a,b,T2)
3(/,T1,T2,T3)
*,b,c,T4)
5(+,a,T4,T5)
6(―,T3,T5,T6)
14.
0开头。
写一个文法使其语言为偶数集,且每个偶数不以解:
文法G(S):
StAB|B|A0
A^AD|C
Bt2|4|6|8
Ct1|3|5|7|9|B
DT0|C
15.设文法G(S):
Sts+aF|aF|+aF
Ft*aF|*a
(1)消除左递归和回溯;
(2)构造相应的FIRST和Follow集合。
解:
(1)
S->aFS'|+aFS'S'->+aFS'|&F->*aF'
F'->F|£
(2)
FOLLOW(S)={#}
}FOLLOW(S')={#}
FOLLoW(F)=(+,#}
FIRST(S)={a,+}FIRST(S')={+,£FIRST(F)={*}
FIRST(F')={*,门FOLLOW(+,#}
16.简要说明语义分析的基本功能。
答:
语义分析的基本功能包括:
确定类型、类型检查、语义处理和某些静态语义检查。
17.考虑文法G[S]:
St(T)|a+S|a
Ttt,S|S
消除文法的左递归及提取公共左因子。
解:
消除文法G[S]的左递归:
St(T)|a+S|a
TtST'
T't,ST'|£
提取公共左因子:
St(T)|aS'
S't+S|&
TtST'
T't,ST'|£
18.试为表达式w+(a+b)*(c+d/(e-10)+8)写出相应的逆波兰表示。
解:
wab+cde10-/+8+*+
19.按照三种基本控制结构文法将下面的语句翻译成四元式序列:
while(A { if(A>1)C=C+1; elsewhile(A A=A+2; }。 解: 该语句的四元式序列如下(其中E1、E2和E3分别对应AVCABvD、A>1和A 高): 100(j<,A,C,102) 101(j,_,_,113) 102(j<,B,D,104) 103(j,_,_,113) 104(j=,A,1,106) 105(j,_,_,108) 106(+,C,1,C) 107(j,_,_,112) 108(j<,A,D,110) 109(j,_,_,112) 110(+,A,2,A) 111(j,_,_,108) 112(j,_,_,100) 113 20.已知文法G[S]为StaSb|Sb|b,试证明文法G[S]为二义文法。 证明: 由文法G[S]: StaSb|Sb|b,对句子aabbbb对应的两棵语法树为: 因此,文法G[S]为二义文法。 21.文法G[S]为: S->Ac|aB A->ab B->bc 写出L(G[S])的全部元素。 解: S=>Ac=>abc 或S=>aB=>abc 所以L(G[S])={abc} 22.构造正规式1(0|1)*101相应的DFA。 解: 先构造NFA: 确定化: 重新命名,令AB为B、AC为CABY为D得: 所以,可得DFA为: 23.文法 S->aF|(T) T->T,S|S 对(a,(a,a)和(((a,a)f,(a)),a)的最左推导。 解: 对(a,(a,a)的最左推导为: S=>(T)=>(T,S)=>(S,S)=>(a,S) =>(a,(T))=>(a,(T,S))=>(a,(S,S)) =>(a,(a,S))=>(a,(a,a)) 对(((a,a),A,(a)),a)的最左推导为: S=>(T)=>(T,S)=>(S,S)=>((T),S) =>((T,S),S)=>((T,S,S),S)=>((S,S,S),S)=>(((T),S,S),S)=>(((T,S),S,S),S)=>(((S,S),S,S),S)=>(((a,S),S,S),S)=>(((a,a),S,S),S)=>(((a,a),A,S),S)=>(((a,a),A,(T)),S)=>(((a,a),A,(S)),S)=>(((a,a),A,(a)),S)=>(((a,a),A,(a)),a) 24.文法: S->MH|a H->LSo|& K->dML|£ L->eHf M->K|bLM 分析表。 LL (1)的。 判断G是否为LL (1)文法,如果是,构造LL (1)解: 各符号的FIRST集和FOLLOW为: 预测分析表为: 由于预测分析表中无多重入口,所以可判定文法是 25.叙述由下列正规式描述的语言 (a)0(0|1)*0 (b)((&|0)1*)* (c)(0|1)*0(0|1)(0|1) (d)0*10*10*10* (e)(00|11)*((01|10)(00|11)*(01|10)(00|11)*)* 解: (a)以0开头、以0结尾的所有0和1的串。 (b)由0和1组成的串,包括空串。 (c)倒数第3个字符为0,由0和1组成的串。 (d)含有3个1的所有0和1的串。 (e)由偶数个0和偶数个1构成的所有0和1的串。 26.已知文法G[S]: S-(L)|a L—L,S|S 为句子(a,(a,a))构造最左推导和最右推导。 解: 句子(a,(a,a))的最左推导为: S=>(L)=>(L,S)=>(S,S)=>(a,S)=>(a,(L))=>(a,(L,S))=(a,(S,S))=>(a,(a,S))=>(a,(a,a)) 句子(a,(a,a))的最右推导为: S=>(L)=>(L,S) =>(l,(L))=>(L,(L,S))=>(L,(L,a))=>(L,(S,a))=>(L,(a,a))=(S,(a,a))=(a,(a,a)) 五.计算题 1.构造下述文法G[S]的自动机: S->A0 A->A0|S1|0 该自动机是确定的吗? 若
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习题 0001