6.已知文法 A→aAd|aAb|ε (1)构造LR(0)项目集规范族 (2)构造SLR(1)分析表
时间: 2023-08-22 18:08:54 浏览: 64
(1) LR(0)项目集规范族如下:
I0:
A' -> .A
A -> .aAd
A -> .aAb
A -> .
I1:
A' -> A.
S -> A.
I2:
A -> a.A d
A -> a.A b
(2) SLR(1)分析表如下:
| | a | b | d | $ |
|----|-----|-----|-----|-----|
| I0 | s2 | s3 | | acc |
| I1 | | | | |
| I2 | s2 | s3 | s4 | |
| I3 | r3 | r3 | r3 | r3 |
| I4 | r2 | | r2 | r2 |
其中,s表示移进,r表示规约,acc表示接受。
相关问题
已知文法 A->aAd|aAb|判断是否为slr文法
首先,可以构建该文法的LR(0)自动机如下:
![](https://cdn.luogu.com.cn/upload/image_hosting/ed1df3c9.png)
从自动机中可以看出,该文法不是SLR文法,因为在状态3中,有两个不同的动作可以执行:
- 向前看符号为d时,进行规约A -> aAd
- 向前看符号为b时,进行移进操作,进入状态4
这种情况会导致冲突,因为无法确定应该进行哪个动作。因此,该文法不是SLR文法。
试分别描述下列文法所产生的语言(文法开始符号为S): (1 ) S:=0S | 01 (2) S::= aaS | bc(3) s::=aSd | aAd A :=aAc | bc(4) S::=AB A:=aAb | abB: :=cBd | e
(1) 该文法产生的语言是以"0"开始,后面跟随任意数量的"0",以及以"01"结尾的字符串。
(2) 该文法产生的语言是以任意数量的"aa"开头,后面跟随一个"bc"的字符串。
(3) 该文法产生的语言是以任意数量的"a"开头,后面跟随一个"d",中间可以插入任意数量的"S"和"A",并且每个"A"都由一个"aAc"或者"bc"组成。
(4) 该文法产生的语言是由一个"A"和一个"B"组成的字符串,其中"A"由一个"aAb"或者"abB"组成,"B"由一个"cBd"或者"e"组成。