清华大学编译原理第二版课后习答案Word格式文档下载.docx
- 文档编号:20982060
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:36
- 大小:23KB
清华大学编译原理第二版课后习答案Word格式文档下载.docx
《清华大学编译原理第二版课后习答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《清华大学编译原理第二版课后习答案Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。
D→2|4|6|8
F→N|0
G→D|0
第6题
已知文法G:
<
表达式>
:
=<
项>
|<
+<
因子>
*<
=(<
)|i
试给出下述表达式的推导及语法树。
(5)i+(i+i)
(6)i+i*i
+<
i
()
(5)<
=>
+(<
)
+i)
+(i+i)
i+(i+i)
*<
i
(6)<
*i
+i*i
i+i*i
第7题
证明下述文法G[〈表达式〉]是二义的。
〈表达式〉∷=a|(〈表达式〉)|〈表达式〉〈运算符〉〈表达式〉
〈运算符〉∷=+|-|*|/
可为句子a+a*a构造两个不同的最右推导:
最右推导1〈表达式〉〈表达式〉〈运算符〉〈表达式〉
〈表达式〉〈运算符〉a
〈表达式〉*a
〈表达式〉〈运算符〉〈表达式〉*a
〈表达式〉〈运算符〉a*a
〈表达式〉+a*a
a+a*a
最右推导2〈表达式〉〈表达式〉〈运算符〉〈表达式〉
〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉
〈表达式〉〈运算符〉〈表达式〉〈运算符〉a
第8题
文法G[S]为:
该文法是否为二义的?
为什么?
对于串abc
(1)S=>
Ac=>
abc
(2)S=>
aB=>
abc
即存在两不同的最右推导。
所以,该文法是二义的。
对输入字符串abc,能构造两棵不同的语法树,所以它是二义的。
S
aB
bc
Ac
ab
第9题
考虑下面上下文无关文法:
S→SS*|SS+|a
(1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。
SS*
SS+a
aa
(2)G[S]的语言是什么?
(1)此文法生成串aa+a*的最右推导如下
S=>
SS*=>
Sa*=>
SS+a*=>
Sa+a*=>
aa+a*
(2)该文法生成的语言是:
*和+的后缀表达式,即逆波兰式。
第10题
文法S→S(S)S|ε
(1)生成的语言是什么?
(2)该文法是二义的吗?
说明理由。
(1)嵌套的括号
(2)是二义的,因为对于()()可以构造两棵不同的语法树。
第11题
令文法G[E]为:
E→T|E+T|E-T
T→F|T*F|T/F
F→(E)|i
证明E+T*F是它的一个句型,指出这个句型的所有短语、直接短语和句柄。
此句型对应语法树如右,故为此文法一个句型。
因为存在推导序列:
E=>
E+T=>
E+T*F,所
以E+T*F句型
此句型相对于E的短语有:
E+T*F;
相对于T的短语
有T*F
直接短语为:
T*F
句柄为:
第13题
一个上下文无关文法生成句子abbaa的推导树如下:
(1)给出串abbaa最左推导、最右推导。
(2)该文法的产生式集合P可能有哪些元素?
(3)找出该句子的所有短语、直接短语、句柄。
B
a
ABS
SBA
εbba
(1)串abbaa最左推导:
ABS=>
aBS=>
aSBBS=>
aBBS=>
abBS=>
abbS=>
abbAa=>
abbaa
最右推导:
ABAa=>
ABaa=>
ASBBaa=>
ASBbaa=>
ASbbaa=>
Abbaa=>
(2)产生式有:
S→ABS|Aa|εA→aB→SBB|b
可能元素有:
εaaababbaaaaabbaa……
(3)该句子的短语有:
a是相对A的短语
ε是相对S的短语
b是相对B的短语
εbb是相对B的短语
aa是相对S的短语
aεbbaa是相对S的短语
直接短语有:
aεb
句柄是:
《编译原理》课后习题答案第四章
构造下列正规式相应的DFA.
(1)1(0|1)*101
(2)1(1010*|1(010)*1)*0
(3)a((a|b)*|ab*a)*b
(4)b((ab)*|bb)*ab
(1)先构造NFA:
用子集法将NFA确定化
.01
X.A
AAAB
ABACAB
ACAABY
ABYACAB
除X,A外,重新命名其他状态,令AB为B、AC为C、ABY为D,因为D含有Y(NFA的终态),所以D为终态。
AAB
BCB
CAD
DCB
DFA的状态图:
(2)先构造NFA:
X1A
εB
1C0D1E
ε
F1G0H1I0J1K
L
εε
Y
ε01
XX
T0=XA
AABFL
T1=ABFLYCG
YY
CGCGJ
T2=Y
T3=CGJDHK
DHDH
KABFKL
T4=DHEI
EIABEFIL
T5=ABFKLYCG
T6=ABEFILEJYCG
EJYABEFGJLY
T7=ABEFGJLYEHYCGK
EHYABEFHLY
CGKABCFGJKL
T8=ABEFHLYEYCGI
EYABEFLY
CGICGJI
T9=ABCFGJKLDHYCGK
DHYDHY
T10=ABEFLYEYCG
T11=CGJIDHJK
DHJDHJ
T12=DHYEI
T13=DHJEIK
EIKABEFIKL
T14=ABEFIKLEJYCG
将T0、T1、T2、T3、T4、T5、T6、T7、T8、T9、T10、T11、T12、T13、T14重新命名,分别用0、
1、2、3、4、5、6、7、8、9、10、11、12、13、14表示。
因为2、7、8、10、12中含有Y,所以它们都为终态。
01
123
2
345
46
523
673
789
81011
9129
10103
11135
126
1314
1473
010
12
12
7
108
3
4
5
6
9
111314
1
(3)先构造NFA:
先构造NFA:
XaA
a,b
DaEaF
C
b
εab
AABCD
T1=ABCDBEBY
BEABCDE
BYABCDY
T2=ABCDEBEFBEY
BEFABCDEF
BEYABCDEY
T3=ABCDYBEBY
T4=ABCDEFBEFBEY
T5=ABCDEYBEFBEY
将T0、T1、T2、T3、T4、T5重新命名,分别用0、1、2、3、4、5表示。
因为3、5中含有Y,
所以它们都为终态。
245
323
445
545
0a1b3
a4
(4)先构造NFA:
XA
FbGbH
E
CDbε
Ib
用子集法将NFA确定化:
AABDEF
T1=ABDEFCIG
CICI
GG
T2=CIDY
DYABDEFY
T3=GH
HABEFH
T4=ABDEFYCIG
T5=ABEFHCIG
因为4中含有Y,所以它为终态。
24
35
423
0b1b
第2题
已知NFA=({x,y,z},{0,1},M,{x},{z}),其中:
M(x,0)={z},M(y,0)={x,y},,M(z,0)={x,z},M(x,1)={x},M(y,1)=φ,M(z,1)={y},构造相应的DFA。
先构造其矩阵
xzx
yx,y
zx,zy
zxzy
xzxzxy
yxy
xyxyzx
xyzxyzxy
将x、z、xz、y、xy、xyz重新命名,分别用A、B、C、D、E、F表示。
因为B、C、F中含有z,所以它为终态。
ABA
BCD
CCE
DE
EFA
FFE
A
F
D
第3题
将下图确定化:
SVQQU
VQVZQU
QUVQUZ
VZZZ
VZ.
QUZVZQUZ
ZZZ
重新命名状态子集,令VQ为A、QU为B、VZ为C、V为D、QUZ为E、Z为F。
SAB
ACB
BDE
CFF
DF.
ECE
FFF
将下图的(a)和(b)分别确定化和最小化:
初始分划得
Π0:
终态组{0},非终态组{1,2,3,4,5}
对非终态组进行审查:
{1,2,3,4,5}a{0,1,3,5}
而{0,1,3,5}既不属于{0},也不属于{1,2,3,4,5}
∵{4}a{0},所以得到新分划
Π1:
{0},{4},{1,2,3,5}
对{1,2,3,5}进行审查:
∵{1,5}b{4}
{2,3}b{1,2,3,5},故得到新分划
Π2:
{0},{4},{1,5},{2,3}
{1,5}a{1,5}
{2,3}a{1,3},故状态2和状态3不等价,得到新分划
Π3:
{0},{2},{3},{4},{1,5}
这是最后分划了
最小DFA:
第5题
构造一个DFA,它接收Σ={0,1}上所有满足如下条件的字符串:
每个1都有0直接跟在右边。
并给出该语言的正规式。
按题意相应的正规表达式是(0*10)*0*,或0*(0|10)*0*构造相应的DFA,首先构造NFA为用子集法确定化:
II0I1
{X,0,1,3,Y}
{0,1,3,Y}
{2}
{1,3,Y}
重新命名状态集:
S01
可将该DFA最小化:
终态组为{1,2,4},非终态组为{3},{1,2,4}0{1,2,4},{1,2,4}1{3},所以1,2,4为等价状态,可合并。
第6题
设无符号数的正规式为θ:
θ=dd*|dd*.dd*|.dd*|dd*10(s|ε)dd*
|10(s|ε)dd*|.dd*10(s|ε)dd*
|dd*.dd*10(s|ε)dd*
化简θ,画出θ的DFA,其中d={0,1,2,…,9},s={+,-}
X
d
.B
FG
H
10
s
Ed
ε•s10d
XXA
T0=XABFA
BB
FFG
AA
T1=BC
CC
T2=FGGH
HH
T3=ABFA
T4=CDC
DDE
T5=GH
T6=HH
T7=DEEY
EE
T8=EY
T9=YY
将XA、B、FG、A、C、G、H、DE、E、Y重新命名,分别用0、1、2、3、4、5、6、
7、8、9表示。
终态有0、3、4、6、9。
•s10d
0123
14
256
3123
474
56
66
89
99
•
25
47
8
给文法G[S]:
S→aA|bQ
A→aA|bB|b
B→bD|aQ
Q→aQ|bD|b
D→bB|aA
E→aB|bF
F→bD|aE|b
构造相应的最小的DFA。
先构造其NFA:
Z
Q
bb
SAQ
AABZ
QQDZ
BZQD
DZAB
DAB
BQD
将S、A、Q、BZ、DZ、D、B重新命名,分别用0、1、2、3、4、5、6表示。
因为3、4中含有z,所以它们为终态。
012
113
224
325
416
516
625
令P0=({0,1,2,5,6},{3,4})用b进行分割:
P1=({0,5,6},{1,2},{3,4})再用b进行分割:
P2=({0},{5,6},{1,2},{3,4})再用a、b进行分割,仍不变。
再令{0}为A,{1,2}为B,{3,4}为C,{5,6}为D。
最小化为:
a,b
DC
第8题
给出下述文法所对应的正规式:
S→0A|1B
A→1S|1
B→0S|0
解方程组S的解:
S=0A|1B
A=1S|1
B=0S|0
将A、B产生式的右部代入S中
S=01S|01|10S|10=(01|10)S|(01|10)
所以:
S=(01|10)*(01|10)
将下图的DFA最小化,并用正规式描述它所识别的语言。
c
令P0=({1,2,3,4,5},{6,7})用b进行分割:
P1=({1,2},{3,4},{5},{6,7})再用a、b、c、d进行分割,仍不变。
再令{1,2}为A,{3,4}为B,{5}为C,{6,7}为D。
CD
r=b*a(c|da)*bb*=b*a(c|da)*b+
《编译原理》课后习题答案第五章
对文法G[S]
S→a|∧|(T)
T→T,S|S
(1)给出(a,(a,a))和(((a,a),∧,(a)),a)的最左推导。
(2)对文法G,进行改写,然后对每个非终结符写出不带回溯的递归子程序。
(3)经改写后的文法是否是LL
(1)的?
给出它的预测分析表。
(4)给出输入串(a,a)#的分析过程,并说明该串是否为G的句子。
(1)对(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)的最左推导为:
((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),∧,S),S)
(((a,a),∧,(T)),S)
(((a,a),∧,(S)),S)
(((a,a),∧,(a)),S)
(((a,a),∧,(a)),a)
(2)改写文法为:
0)S→a
1)S→∧
2)S→(T)
3)T→SN
4)N→,SN
5)N→ε
非终结符FIRST集FOLLOW集
S{a,∧,(}{#,,,)}
T{a,∧,(}{)}....
N{,,ε}.{)}....
对左部为N的产生式可知:
FIRST(→,SN)={,}
FIRST(→ε)={ε}
FOLLOW(N)={)}
由于SELECT(N→,SN)∩SELECT(N→ε)={,}∩{)}=
所以文法是LL
(1)的。
预测分析表(PredictingAnalysisTable)
a∧(),#
S→a→∧→(T)
T→SN→SN→SN
N→ε→,SN
也可由预测分析表中无多重入口判定文法是LL
(1)的。
(3)对输入串(a,a)#的分析过程为:
栈(STACK)
当前输入符
(CUR_CHAR)
剩余输入符
(INOUT_STRING)
所用产生式
(OPERATION)
#S
#)T(
#)T
#)NS
#)Na
#)N
#)NS,
#)
#
(
a,a)#...
a)#...
a)#...
)#...
#...
S→(T)
.
T→SN
S→a
N→,SN
N→ε
可见输入串(a,a)#是文法的句子。
已知文法G[S]:
S→MH|a
H→LSo|ε
K→dML|ε
L→eHf
M→K|bLM
判断G是否是LL
(1)文法,如果是,构造LL
(1)分析表。
文法展开为:
0)S→MH
1)S→a
2)H→LSo
3)H→ε
4)K→dML
5)K→ε
6)L→eHf
7)M→K
8)M→bLM
S{a,d,b,ε,e}{#,o}........
M{d,ε,b}....{e,#,o}......
H{ε,e}......{#,f,o}......
L{e}.........{a,d,b,e,o,#}
K{d,ε}......{e,#,o}...
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 清华大学 编译 原理 第二 课后 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)