华东交通大学编译原理必考题第5-7章作业(含答案)最新版 刘立月说期末,补考,清考都是考这些,会做你就过了

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【解】 对应的四元式序列为:
100(Jnz, A, , 108 ) 101(J , , , 102 ) 102(Jnz, B, , 104 ) 103(J , , , 106 ) 104(Jnz, C, , 106 ) 105(J , , , 108 ) 106(Jnz, D, , 108 ) 107(J , , , 116 ) 108(J>,a ,b , 110 ) 109(J , , , 113 ) 110(-, m,k , T1 ) 111(:= ,T1 , ,x ) 112(J , , , 100) 113(+, m,k , T2 ) 114(:= ,T2 , ,y ) 115(J , , ,100 ) 116
B
b
由上表可知:该文法中,所有相同左部不同右部的产生式 SELECT 集两两相交 均为空集,所以该文法为 LL(1)文法。 ②构造预测分析表
f S A B ε b ABf BbS ε e ABf e d ABf BbS dAg
#
1
3、已知文法 G[S]:S→(A)│a│b A→AcS│S 优先矩阵,并判断该文法是否是算符优先文法。
④构造算符优先矩阵(注:按终结符出现顺序列表):
( ( ) a b c # < < < ) = > > > > < < < < a < b < c < > > > > = > > > #
⑤ 因为该文法 G 为 2 型文法, 且不含空产生式, 没有形如 U…VW…的产生式, 其中 V,W∈VN,所以 G 为算符文法;又因为 G 中任意两个终结符间至多有一种算 符优先关系存在(算符优先矩阵无冲突,见上表),所以 G 为算符优先文法。
’ ’
I1 = GOTO(I0,S) = { S’→S.} I2 = GOTO(I0,b) = { S→b.B,B .B*a,B .a } I3 = GOTO(I2,B) = { S→bB.,B B.*a } I4 = GOTO(I2,a) = { B a. } I5 = GOTO(I3,*) = { B B*.a } I6 = GOTO(I5,a) = { B B*a. } ③ 因为该文法的 LR(0)项目集规范族中有一个项目集 I3 同时存在移进项目 与归约项目,即“移进-归约”冲突,所以不是 LR(0)文法。 I3 = { S→bB.,B B.*a } Follow(S) ∩ { * } = φ 即可采用 Follow 集能解决其冲突,所以该文法是 SLR(1)文法。 而,FOLLOW(S)={ # }
第 5-7 章课后作业(含答案)
1、将文法 G[S] 改写为等价的 G′[S],使 G′[S]不含左递归和左公 共因子。G[S]: S→bSAe|bA
【解】 : G[S]:S→bS’ S’→SAe|A A’ →bd A’ |ε A→(dc|a)A’Βιβλιοθήκη A→Abd | dc | a
2、有文法 G[S]:S→ABf
【解】 : ①拓展该文法:S’→#S# S→(A)│a│b A→AcS│S
构造文法的算符
②计算 FIRSTVT 与 LASTVT:
FIRSTVT S’ S A c # ( a ( a b b c LASTVT # ) a ) a b b
③计算算符优先关系: #=# (= ) ( < FIRSTVT(A) LASTVT(A) > ) c< FIRSTVT(A) LASTVT(A) > c # < FIRSTVT(S) LASTVT(S) > #
2
4、课后习题 P122:4(2) 已知文法:S→ S;G|G G→ G(T)|H H→ a|(S) T→ T+S|S
求句型 a(T+S);H;(S) 的短语、 直接短语、 句柄、 素短语与最左素短语。
【解】 : ①该句型的对应的语法树如下:
②短语:
a 直接短语: a 句柄: a a 素短语: 最左素短语:a
4
6、证明文法
S bB
B B*a
Ba
不是 LR(0)文法,而是 SLR(1)文法。
【解】 ①对该文法拓广,得其拓广文法 G[S’]: (0) S →S

(1) S bB
(2) B B*a
(3) B a
②计算其 LR(0)项目集规范族如下: I0 = closure{ S →.S } ={ S →.S , S→. bB }
T+S T+S T+S
H H (S)
(S) (S)
a(T+S);H
a(T+S);H;(S)
3
5. 给定文法 G[A]:A→(A)│a,构造出该文法的 LR(1)分析表。
【解】 ①对该文法拓广,得其拓广文法 G[S ]: (0) S’→A (1) A→(A) (2) A→a

②计算其 LR(1)项目集规范族如下: I0 = { [S’→.A,#], [A→.(A),#], [A→.a,#] } I1 = GOTO(I0,A) = { [S’→A.,#] } I2 = GOTO(I0,() = { [A→(.A),#],[A→.(A),)],[A→.a,)] } I3 = GOTO(I0,a) = { [A→a.,#] } I4 = GOTO(I2,A) = { [A→(A.),#] } I5 = GOTO(I2,() = { [A→(.A),)],[A→.(A),)],[A→.a,)] } I6 = GOTO(I2,a) = { [A→a.,)] } I7 = GOTO(I4,)) = { [A→(A).,#] } I8 = GOTO(I5,A) = { [A→(A.),)] } GOTO(I5,() = I5 ; GOTO(I5,a) = I6 I9 = GOTO(I8,)) = { [A→(A).,)] } ③构造 LR(1)分析表: 状 态 0 1 2 3 4 5 6 7 8 9 S9 r1 S5 r2 r1 S7 S6 8 S5 S6 r2 ( S2 Action 表 ) a S3 acc 4 # Goto 表 A 1
6
A→BbS|e
B→dAg|ε
证明文法 G 是 LL(1)文法,并构造预测分析表
【解】 : ①计算 FIRST、FOLLOW、SELECT 集
产生式 左部 S A 右部 ABf BbS e dAg ε FIRST d d e d ε b b e FOLLOW #gdf gdf SELECT d d e f d b f b b e
5
7. 给出下面赋值语句的逆波兰式: 【解】 x a b c + * d e / – :=
x := a*(b+c)-d/e
8.
把下列语句翻译成四元式(四元式的编号从 100 开始) 。 while A∨B∧~C∨D do if a > b then x := m - k else y := m + k;
相关文档
最新文档