预测分析报告

类别:VC语言 点击:0 评论:0 推荐:

预测分析法实验报告

下面是你输入的文法G:

非终结符号集合为:{ A, B, C, D, Z }

终结符符号集合为:{ a, b, c, d }

G[Z]:

A->cD

B->bC

C->@

C->BcA

D->aBD

D->d

Z->aAcB

Z->Bd

可以推出空串的非终结符集合为:{ C }

非终结符号的FIRST集合:

FIRST(A) = { c }

FIRST(B) = { b }

FIRST(C) = { @, b }

FIRST(D) = { a, d }

FIRST(Z) = { a, b }

非终结符号的FOLLOW集合:

FOLLOW(A) = { c, a, d, # }

FOLLOW(B) = { c, a, d, # }

FOLLOW(C) = { c, a, d, # }

FOLLOW(D) = { c, a, d, # }

FOLLOW(Z) = { # }

各产生式的SELECT集合:

SELECT(A->cD) = { c }

SELECT(B->bC) = { b }

SELECT(C->@) = { @, c, a, d, # }

SELECT(C->BcA) = { b }

SELECT(D->aBD) = { a }

SELECT(D->d) = { d }

SELECT(Z->aAcB) = { a }

SELECT(Z->Bd) = { b }

输入的文法是一个LL(1)文法。

下面是生成的预测分析表:

 

 a

 b

 c

 d

 #

 A

  

  

 cD

  

  

 B

  

 bC

  

  

  

 C

 @

 BcA

 @

 @

 @

 D

 aBD

  

  

 d

  

 Z

 aAcB

 Bd

  

  

  

例如:对符号串acabdcb#的分析过程:

步骤

分析栈

剩余输入串

所用产生式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#Z

#BcAa

#BcA

#BcDc

#BcD

#BcDBa

#BcDB

#BcDCb

#BcDC

#BcD

#Bcd

#Bc

#B

#Cb

#C

#

acabdcb#

acabdcb#

cabdcb#

cabdcb#

abdcb#

abdcb#

bdcb#

bdcb#

dcb#

dcb#

dcb#

cb#

b#

b#

#

#

Z->aAcB

a匹配

A->cD

c匹配

D->aBD

a匹配

B->bC

b匹配

C->@

D->d

d匹配

c匹配

B->bC

b匹配

C->@

接受

本文地址:http://com.8s8s.com/it/it895.htm