作业参考答案Word格式.docx

上传人:b****8 文档编号:22749870 上传时间:2023-02-05 格式:DOCX 页数:18 大小:408.22KB
下载 相关 举报
作业参考答案Word格式.docx_第1页
第1页 / 共18页
作业参考答案Word格式.docx_第2页
第2页 / 共18页
作业参考答案Word格式.docx_第3页
第3页 / 共18页
作业参考答案Word格式.docx_第4页
第4页 / 共18页
作业参考答案Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

作业参考答案Word格式.docx

《作业参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《作业参考答案Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

作业参考答案Word格式.docx

题目1的SLR

(1)分析表

对输入串ab#的分析过程

10.判断下列各题所示文法是否为LR类方法,若是请说明是LR(0),SLR

(1),LALR

(1)或LR

(1)的哪一种,并构造相应的分析表,若不是请说明理由.

(3)S->

aAd|eBd|aBr|eAr

A->

a

B->

1)列出扩展文法G'的产生式列表:

(0)S'->

S

(1)S->

aAd

(2)S->

eBd

(3)S->

aBr

(4)S->

eAr

(5)A->

(6)B->

2)G'的LR(0)项目集族及识别活前缀的DFA如下图所示:

从上图中看出项目集I6中存在归约-归约冲突,所以该文法不是LR(0)文法。

下面判断是否为SLR

(1)文法:

Follow(S)={#}

Follow(A)={d,r}

Follow(B)={d,r}

对于I6,Follow(A)∩Follow(B)={d,r}不为φ,所以项目集I6中的归约-归约冲突不能消除,该文法不是SLR

(1)文法。

下面判断是否为LR

(1)文法,在上面的项目集规范族中加入搜索符:

从上图可以看出原来存的的归约-归约冲突已经消除,所以该文法为LR

(1)文法。

但若合并同心项目集I6和I13,则归约-归约冲突又会重现,因此该文法不是LALR

(1)文法。

3)LR

(1)分析表

 

Action

Goto

State

aedr#

SAB

S2S3

1

1

acc

2

S6

45

3

S13

87

4

S9

5

S10

6

R5R6

7

S11

8

S12

9

R1

10

R3

11

R2

12

R4

13

R6R5

11.设文法G[S]为:

S->

AS|ε

A->

aA|b

(1)证明G[S]是LR[1]文法;

扩展文法G’为:

(1)S’->

AS

ε

(4)A->

aA

(5)A->

b

G'的LR

(1)项目集族及识别活前缀的DFA如下图所示:

从上图中可以看出,每个项目集中均无移进-归约冲突和归约-归约冲突,所以该文法为LR

(1)文法。

(2)构造它的LR

(1)分析表;

ab#

SA

S3S4R2

12

52

S3S4

6

R4R4R4

R3R3R3

(3)给出输入符号串abab#的分析过程。

序号

状态栈

符号栈

输入缓冲区

动作

#

abab#

S3,移进

03

#a

bab#

S4,移进

034

#ab

ab#

R4,归约A->

036

#aA

R3,归约A->

02

#A

023

#Aa

b#

0234

#Aab

0236

#AaA

022

#AA

R2,归约S->

0225

#AAS

R1,归约S->

025

#AS

01

#S

acc成功

15.已知文法为:

a|∧|(T)

T->

T,S|S

(1)构造它的LR(0),LALR

(1),LR

(1)分析表;

(T)

(5)T->

T,S

(6)T->

1)LR(0)项目集族及识别活前缀的DFA如下图所示:

LR(0)分析表:

a∧(),#

ST

S2S3S4

R1R1R1R1R1R1

R2R2R2R2R2R2

65

S7S8

R5R5R5R5R5R5

R3R3R3R3R3R3

9

R4R4R4R4R4R4

2)LR

(1)项目集族及识别活前缀的DFA如下图所示:

图中“,”为文法符号。

说明:

对于I4中的项目T->

.T,S和T->

.S,先由项目S->

(.T),#推出扩展项目的搜索符为“)”,再由T->

.T,S,)扩展出新的搜索符“,”,合并后的搜索符为“)/,”。

LR

(1)分析表:

S7S8S9

S10S11

R5R5

R1R1

R2R2

612

13

S14S11

R4R4

14

R3R3

LALR

(1)分析表需将上面DFA中的同心项目(同底色)的项目集合并后考虑,将状态数大的合并入状态数小的项目集中,在此不再另画图。

LALR

(1)分析表:

R1R1R1

R2R2R2

S10S11

(2)给出对输入符号串(a#和(a,a#的分析过程;

1)对输入符号串(a#的分析过程

用LR(0)分析表

(a#

04

#(

a#

S2,移进

042

#(a

046

#(S

R5,归约T->

045

#(T

出错

用LR

(1)分析表

S7,移进

047

错误

用LALR

(1)分析表

2)对输入符号串(a,a#的分析过程

(a,a#

a,a#

a#

S8,移进

0458

#(T,

04582

#(T,a

04589

#(T,S

R4,归约T->

S11,移进

045(11)

045(11)7

045(11)2

045(11)(13)

(3)说明

(1)中三种分析表发现错误的时刻和输入串的出错位置有何区别。

(2),由此二例说明,对于错误分析,LR

(1)的效率最高,LALR

(1)次之,LR(0)最差。

补充题:

G[S]文法如下,求其LR分析表

1.S→AaDC

2.C→Cba

3.C→ba

4.D→A

5.D→Ba

6.A→b

7.B→b

答:

扩展文法G’为:

0.S’→S

1.S→AaDC

答:

1)首先判断是否为LR(0)方法:

由上图中可以看到I8中存在归约-归约冲突,I9中存在移进-归约冲突,所以该文法不是LR(0)文法

2)再判断是否为SLR

(1)文法:

Follow(A)={a,b}

Follow(B)={a}

Follow(C)={b,#}

Follow(D)={b}

2对于I8,Follow(A)∩Follow(B)={a},不为空,因此该文法不是SLR

(1)文法。

3)判断是否为LR

(1)文法:

上图中I8中C→.Cba,#/b中的搜索符#/b分二步得到,先由S->

#得到#,再由C→.Cba,#得到b。

由上图可看出原先I8,I9存在的冲突已消除,所以为LR

(1)文法。

LR

(1)分析表:

SABCD

S3

S4

R6

S8

675

R7R6

S12R1

S14

R5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 临床医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1