(1) 消除左递归和回溯;
(2) 计算每个非终结符的FIRST和FOLLOW; (3) 构造预测分析表。 答
1、S→+aFS’ | aFS’ S’→+aFS’ |ε F→*aF’ F’ →F|ε
2、Fist(S)={a,+} Fist(S’)={+, ε} Fist(F)={*} Fist(F’)={*, ε} Follow(S)={$} Follow(S’)={$} Follow(F)={$,+} Follow(F’)={$,+} 3、 + a * $ S S→+aFS’ S→aFS’ S’ S’→+aFS’ S’→ε F F→*aF’ F’ F’ →ε F’ →F F’ →ε
162、构造下面文法的LL(1)分析表。 D ? TL T ? int | real L ? id R R ? , id R | ? (10 分) int real id , $ D D ? TL D ? TL T T ? int T ? real L L ? id R R R ? , id R R ? ?
163、已知文法G(S):
S→a | (T) T→T,S | S
给出该文法的优先关系表,并计算出该优先关系表所对应的优先函数。 答:(算符优先的大于小于等于都带点,在此省略) Firstvt(S)={ a , ( } Firstvt(T)={,, a , (} Lastvt(S)={a , )} Lastvt(T)={,, a , )} 画表
T—>T,S ,< Firstvt(S) Lastvt(T) > , T—>T,S —>S,S Lastvt(S) > , S—>(T) ( < Firstvt(T) Lastvt(T) > )
S—>(T)—>(S) ( < Firstvt(S) Lastvt(S) > )
a , ( ) $
a < < < , > > < > < ( < < < ) > > = > $ > > > =
164、处于/* 和 */之间的串构成注解,注解中间没有*/。画出接受这种注解的DFA的状态转换图。 (10分)
165、已知文法G(S) S→a|∧|(T) T→T,S|S
写出句子((a,a),a)的移进-归约分析过程及每一次归约的句柄。(10分) 初始状态如下,请接着往下进行分析。
栈 输入 动作 句柄 $ ((a,a),a)$ 栈 $ $( $(( $((a $((S $((T $((T, $((T,a $((T,S $((T $((T) $(S $(T $(T, $(T,a $(T,S $(T $(T) $S 输入 ((a,a),a)$ (a,a),a)$ a,a),a)$ ,a),a)$ ,a),a)$ ,a),a)$ a),a)$ ),a)$ ),a)$ ),a)$ ,a)$ ,a)$ ,a)$ a)$ )$ )$ )$ $ $ 动作 移进 移进 移进 按S→a规约 按T→S规约 移进 移进 按S→a 规约 按T→T,S规约 移进 按S→ (T)规约 按T→S 规约 移进 移进 按S→a规约 按T→T,S规约 移进 按S→(T)规约 接受 句柄 a S a T,S (T) S a T,S (T) 166、接受文法
S ? A a | b A c | d c | b d a A ? d
活前缀的DFA见下图。请根据这个DFA来构造该文法的SLR(1)分析表,并说明该文法为什么不是SLR(1)文法。(10分)
S’ ? .S S ? .A a S ? .b A c S ? .d c S ? .b d a A ? .d I0 d
S ? d .c A ? d . I4
0)S ‘?S 1)S ? A a 2)S ?b A c 3)S ? d c 4)S ? b d a 5)A ? d 0 1 2 3 4 5 6 7 8 9 10
a S5 r5 S10/r5 r1 r3 S A S’ ? S . I1 S ? A .a I2 S ? b .A c S ? b .d a A ? .d I3 S ? d c . I8 a S ? A a . I5 S ? b A .c I6 S ? b d .a A ? d . I7 c S ? b A c . I9 S ? b d a . I10 b A d a c action b S3 c r5/S8 S9 r5 r1 r3 d S4 S7 $ acc r0 r2 goto S 1 A 2 6 考察既含有归约项目又含有移进项目的项目集 如 I4 S ? d .c 移进项目 A ? d . 归约项目
Follow(A)={a , c}∩{c}≠空集 所以此文法不是SLR(1)文法
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库编译原理习题答案(4)在线全文阅读。
相关推荐: