编译原理复习题集docx.docx
- 文档编号:1911808
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:20
- 大小:114.81KB
编译原理复习题集docx.docx
《编译原理复习题集docx.docx》由会员分享,可在线阅读,更多相关《编译原理复习题集docx.docx(20页珍藏版)》请在冰豆网上搜索。
编译原理复习题集docx
《编译原理》复习题集
1.名词解释短语句柄文法上下文无关文法
LL
(1)文法LR
(1)文法语法分析无环路冇向图(DAG)后缀式语法制导翻译遍局部优化词法分析语法分析语义分析源语言源程序目标语言中间语言(中间表示)
2.简答题
(1)编译程序和高级语言有什么区别?
(2)编译程序的工作分为那几个阶段?
(3)简述自下而上的分析方法。
(4)口标代码有哪几种形式?
生成口标代码吋通常应考虑哪几个问题?
(5)何谓优化?
按所涉及的程序范围可分为哪几级优化?
(6)简述代码优化的目的和意义。
3.叙述下面的正规式描述的语言,并画岀接受该语言的最简DFA的状态转换图。
(1101)*0*
4.Pascal语言无符号数的止规定义如卜•:
numTdigit(.digit)?
(E(+|—)?
digit)?
其中digit表示数字,用状态转换图表示接受无符号数的确定有限自动机。
5.画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
6.用状态转换图表示接收(a|b)*aa的确定的冇限自动机。
7.处于/*和*/之间的串构成注解,注解屮间没有*/。
画出接受这种注解的DFA的状
态转换图。
8.某操作系统下合法的文件名为
device:
name.extension
其中第一部分(device:
)和第三部分(.extension)口J缺省,device,name和extension都是字母串,长度不限,但至少为1,画出识别这种文件名的确定有限自动机。
9.构造一个DFA,它接受Z={0,1}±0和1的个数都是偶数的字符串。
10.设有非确定的有自限动机NFAM二({A,B,C},{0,1},5,{A},{C}),其中:
5(A,0)={C}5(A,1)二{A,B}6(B,1)={C}5(C,1)={C}。
请画出状态转换距阵和状态转换图。
11.设匕{a,b,c}*是满足下述条件的符号串构成的语言:
(1)若出现a,则其后至少紧跟两个c;
(2)若出现b,其后至少紧跟一个co
试构造识别L的最小化的DFA,并给出描述L的正规表达式。
12.写出字母表刀二{a,b}上语言L二{w|w的最后两个字母是竝或bb}的正规式,并画出接受该语言的最简DFAo
13.有穷自动机M接受字母表工={0,1}上所有满足下述条件的串:
串中至少包含两个连续的0或两个连续的1。
请写出与M等价的正规式。
14.有正规式b*abb*(abb*)*,
(1)构造该正规式所对应的NFA(|fflj出状态转换图)。
(2)将所求的NFA确定化(画出确定化的状态转换图)。
(3)将所求的NFA最小化・(画出最小化后的状态转换图)。
15.求出下列文法所产生语言对应的止规式.
STbSlaA
AFAIbB
BFAIbClb
CTbSlaA
16.给出与下图的NFA等价的正规式。
17・把下面的NFA确定化。
19.将下面的DFA化成最简形式。
20.为语言
L={w\we(a\/?
)*并且在w的任何前缀中,a的个数不少于b的个数}写一个LR
(1)文法,不准超过6个产生式。
21.写一个文法,使其语言是奇数集,且每个奇数不以0开头。
22.考查文法G(s):
S->(T)|a+S|aT-*T,S|S
(1)消除文法的左递归;
(2)提取公共左因子;
(3)对毎个非终结符,写岀不带冋朔的递归子程序。
23.设文法G(S):
S-*(L)|aS|a
L->L,S|S
(1)消除左递归和冋溯;
(2)计算每个非终结符的FIRST和FOLLOW;
(3)构造预测分析表。
24.消除下列文法的左递归.
S^SaPISflP
PTQbPIQ
QTcSdle
25・已知文法G:
A^aABela
BTBbld
给出与上述文法等价的LL
(1)文法Gfo
26.已知文法G[A]:
AfaABIa
B->Bbld
(1)构造与G[A]等价的LL
(1)文法;
(2)构造G‘[A]的预测分析表。
27.程序的文法如下:
P—D
Iid:
TIprocid;D;S
(1)写一个语法制导定义,打印该程序一共声明了多少个id。
(2)写一个翻译方案,打卬该程序毎个变量id的嵌套深度。
28.构造下面文法的LL
(1)分析表。
DtTL
T->int|real
L—idR
Rt,idR|£
29.考虑下文法:
DTTV
TTintIfloat
VTid,VIid
a.在该文法中提取左公因子。
b.为所得文法的非终结符构造First和Follow集合。
c.说明所得的文法是LL
(1)文法。
d.为所得文法构造LL
(1)分析表。
e.假设有输入串
intx,y,z
写出相应LL
(1)分析程序的动作。
30.说明如下文法是否是LL
(1)文法,若不是,将其转换为LL
(1)文法。
最后给出该文法的LL
(1)分析表。
ATBe
BBbla
31・设有文法:
P-^beginXYend
X->Xd;
X-d;
Y->Y;s
Yfs
(1)该文法含有左递归吗?
若有,消除它。
(2)改造后的文法是LL
(1)文法吗?
若是,给出其预测分析表。
(3)写出句了begind;send的分析过程。
32.已给文法G[S]:
S-SaPISfIP
P—qbPIq
将G[S]改造成LL
(1)文法,并给出LL
(1)分析表。
33・设文法G(S):
S->(L)laSla
L->L,SIS
(1)消除左递归和回溯;
(2)计算每个非终结符的FIRST和FOLLOW;
(3)构造预测分析表。
34.给定文法G[S]:
S-AaldAbIBbldBa
Ac
Bfc
构造文法G[S]的LR
(1)分析表。
35.已知文法G(S)
S-a|A|(T)T-T,S|S写出句子((a,a),a)的规范归约过程及每一步的句柄。
36.已知文法G(E)
E-T|E+T
T->F|T*F
F->(E)|i
给出句型(T*F+i)的最右推导及画出语法树;
37.说明下而的文法不是SLR(l)文法,并重写一个等价的SLR(l)文法。
S^MalbMcldcIbda
MTd
S'tSS^MalbMcldcIbdaMid
因为3是M的后继符号之一,因此在上面最右边一个项目集中有移进-归约冲突。
等价的SLR(l)文法是
S—>dalbdcldclbda
38.在PASCAL语言中,简单类型的变量的声明例举如下:
m,n:
integer
p,q,r:
real
为这样的声明写一个LR
(1)文法(为简单起见,变量标识符都用id表示),并根据你的文法写一个语法制导定义(或叫做为你的文法加上语义动作),它将变量的类型填入符号表。
39・一个非LR
(1)的文法如下:
LtMLbIa
MT£
请给出所冇冇移进一归约冲突的LR
(1)项目集,以说明该文法确实不是LR
(1)的。
40.若冇文法G(S)的产生式如下:
S—R
STR
L»r
LTi
RTL,
构造识别所有项目集规范族的DFA.,判断该文法是否是SLR(l)文法,说明理由。
41.现有句型ybal/3和产生式A^ba,分别指出LL
(1)方法和LR
(1)方法在扫描到此句型的什么位置决定用此产生式?
42.为下面的算术表达式文法写一个语法制导的翻译方案,它将每个了表达式E的符号
(即值大于零还是小于零)记录在屈性E.sign屮(屈性值分别用POS或NEG表示)。
你可以假定所有的整数都不为零,这样就不用担心零的符号。
ETE*E丨+EI-EIunsignedjnteger
43.一个文法如下:
St(S)
S—>a请给出该文法111对活前缀(((有效的LR
(1)项口。
44.为下面文法添加语义规则(或叫动作了程序),输出S,产生的二进制数的值,如输入是101时,输出5o
SJS
SSB|B
Bt0|1
45.写出表达式(a+bM/(a+b)-d的逆波兰表示及三元式序列。
46.把表达式
-(a+b)*(c+d)+(a+b+c)
翻译成三地址码序列。
47.设布尔表达式的文法为
E-*EiVE2
EEiAE?
E-i
假定它们将用于条件控制语句中,请
(1)改写文法,使之适合进行语法制导翻译;
(2)写出改写后的每个产生式的语义动作。
48.将语句if(A
49.设有基本块如下:
T1二S+R
T2=3
T3=12/T2
T4=S/R
A=T1-T4
T5=S+R
B=T5
T6=T5*T3
B=T6
(1)画出中间代码的流图;
(2)设A、B是出基本块后的活跃变量,请给出优化后的三地址码序列。
50.设已构造出文法G(S):
(1)StBB
(2)BTaB
(3)BTb
的LR分析表如卜
状态
ACTION
GOTO
a
b
#
S
B
0
s3
s4
1
2
1
acc
2
s6
s7
5
3
s3
s4
8
4
r3
r3
5
rl
6
s6
s7
9
7
r3
8
r2
r2
9
r2
假定输入串为abab,请给出LR分析过程(即按照步骤给出状态,符号,输入串的变化过程)。
51.给出活动记录空间结构。
并给出各部分的存储对象。
52.将下而程序段翻译成四元式序列。
while(A A二A+2; 53・冇一语法制导翻译如下所示: S->bAb{printC A(B{print(“2”)} A->a{printC3)} B->Aa){print(“4")} 若对输入序列b(((aa)a)a)b进彳亍自底向上分析,请写出输出序列。 54•画出IFa>0THENx: =x+lELSEx: 二4*(x-1)的翻译方案图。 55.下面是一个C语言程序: main() { longi; longa[0][4];longj; (1)按照数组size的计算公式,sizeof(a)的值一定是0。 (2)a[0][0]的值是4。 虽然a的size是0,但它仍然有起始地址,并.fta[0][0]的地址等于a的起始地址。 由于X86/Linux机器上,活动记录栈向低地址方向增长,另外由于低地址放低位字节,因此a[01[0]的地址和i的地址一致,其值和i的值一样,等于4。 56.将下面的条件语句表示成三地址码序列: if(a>b)x=a+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习题 docx
![提示](https://static.bdocx.com/images/bang_tan.gif)