8 上下文无关文法 下推自动机_第1页
8 上下文无关文法 下推自动机_第2页
8 上下文无关文法 下推自动机_第3页
8 上下文无关文法 下推自动机_第4页
8 上下文无关文法 下推自动机_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上下文无关文法

下推自动机第八讲上下文无关文法

下推自动机

从下推自动机构造等价的上下文无关文法

从上下文无关文法构造等价的下推自动机

例:利用下推栈实现自上而下语法分析的过程

语法分析基本问题:对任意上下文无关文法G=(V

,T

,P,S)和任意

w

T*,是否有w

L(G)?若成立,则给出分析树;否则,进行报错处理。从上下文无关文法构造等价的下推自动机

利用下推栈进行自顶向下的分析过程举例E

EOE

(E)

v

dO

+

v

(v+d)EEOEEOvEOE

EE)(E)E)OEE)OvE)OE)+E))d)从上下文无关文法构造等价的下推自动机

一种构造方法

设

CFG

G=(V,

T,P

,S)

,构造一个空栈接受方式的

PDA

E=({q},T,V

T,,q,S)

,

转移函数

定义如下:

(1)

对每一

A

V,(q,

,A)={(q,)

"A

”

P};

(2)

对每一

a

T,(q,a,a)={(q,

)}.从上下文无关文法构造等价的下推自动机

举例对右边产生式所代表的

CFG,依上述方法构造PDA

为E

EOE

(E)

v

dO

+

其中

定义为(q,

,E)={(q,EOE),(q,(E)),(q,v),(q,d)},{(q,+),(q,

)},(q,

,O)={(q,

)},(q,v,v)={(q,

)}(q,d,d)=(q,+,+)=(q,

,

)=({q},{v,d,+,

,‘(‘,‘)‘},{E,O,v,d,+,

,‘(‘,‘)‘},,q,E),从上下文无关文法构造等价的下推自动机(q,‘(‘,‘(‘)=(q,‘)‘,‘)‘)={(q,

)}(注:这里加单引号以示与元符号中的括号进行区分)

结论

依上述构造方法,从CFG

G=(V,

T,P

,S)构造一个空栈接受方式的PDA

E=({q},T,V

T,,q,S),

则有N(E)=L(G).

证明思路

欲证,对任何w

T*,w

L(G)

w

N(E).

先证明如下结论,

if

A

w,

then

(q,w,A)├*(q,

,

).

lm归纳于A

w的步数n.

lm基础n=1,A

w必为产生式,(q,w,A)├(q,w,w)├*(q,

,

).归纳设第一步使用产生式A

X1X2…Xm

,必有w=w1w2…wm

,

(q,w,A)├(q,w,X1X2…Xm

)├*(q,w2…wm,X2…Xm)├*(q,w3…wm,X3…Xm)├*…├*(q,

,

).所以有如下结论,

if

S

w,

then

(q,w,S)├*(q,

,

).

lm即,

w

L(G)

w

N(E).

从上下文无关文法构造等价的下推自动机

证明思路

欲证,对任何w

T*,w

L(G)

w

N(E).归纳于(q,w,A)├*(q,

,

)的步数n.归纳n>1,设第一步使用产生式A

X1X2…Xm

,可以将w分为w=w1w2…wm

,满足(q,wi,Xi)├*(q,

,

),即,

w

N(E)

w

L(G).

从上下文无关文法构造等价的下推自动机基础n=1,必有w=

,且A

为G

的产生式,所以A

w.

lm无论Xi为终结符,还是非终结符,都有Xi

wi.

lm所以有如下结论,对任何w

T*,

if

(q,w,S)├*(q,

,

),

thenS

w.

lm因此,A

X1X2…Xm

w1w2…wm

=w

lm

先证明如下结论:

if

(q,w,A)├*(q,

,

),

thenA

w.

lm

一种构造方法

设PDA

E=(Q,

,

,

,q0,Z0),构造CFG

G=(V,

,P

,S)

,其中

V={S}

{[pXq]

p,qQX

}

产生式集合P

定义如下:

(1)

对每一p

Q,G

包含产生式

S

[q0Z0p];

(2)

若(q,X1X2…Xk)

(p,a,X),

则G

包含产生式

[pXpk]

a[qX1p1][p1X2p2]…[pk-1Xkpk].

其中,a

或a=,

(参见右图,其中p0=q)

从下推自动机构造等价的上下文无关文法

举例

对于右下图的PDA,构造CFG

G=(V,{0,1},P,S),其中

V={S}

{[pYq]

p,q

{q0,q1,q2}

Y

{Z0,X}

}

产生式集合P

定义如下:

(1)

S

[q0Z0q0];S

[q0Z0q1];S

[q0Z0q2];

(2)

[q0Z0qj]

0[q0Xqi][qiZ0qj],i,j=0,1,2;((q0,XZ0)

(q0,0,Z0))

(3)

[q0Xqj]

0[q0Xqi][qiXqj],i,j=0,1,2;((q0,XX)

(q0,0,X))

(4)

[q0Xq1]

1;((q1,

)

(q0,1,X))

(5)

[q1Xq1]

1;((q1,

)

(q1,1,X))

(6)

[q1Z0q2]

;((q2,

)

(q1,,Z0))注意:对于(4),(5),(6),前一页的[qXpk]中,k=0,

p0分别为q1,q1,q2.从下推自动机构造等价的上下文无关文法

结论

依上述构造方法,从PDA

E=(Q,

,

,

,q0,Z0)

构造一个CFG

G=(V,

,P

,S),则有N(E)=L(G).

证明思路

欲证,对任何w

*,w

N(E)

w

L(G).

即证明:存在p

Q.(q0,w,Z0)├*(p,

,

)

iff

S

w.

先证明对q,p

Q,

X

,

(q,w,X)├*(p,

,

)

iff

[qXp]

w.

这样,

if

(q0,w,Z0)├*(p,

,

)

,

then

[q0Z0p]

w.

因为G

中包含产生式S

[q0Z0p],

所以S

w.

反之,若S

w,由G的构造过程,

存在p,满足[q0Z0p]

w,从而有(q0,w,Z0)├*(p,

,

)

从下推自动机构造等价的上下文无关文法

归纳于(q,w,X)├*(p,

,

)的步数n.归纳n>1,设第一步推导为(q,w,X)├(p0,x,X1X2…Xk

),其中

w=ax,a或为

或为单个符号,且(p0,X1X2…Xk

)

(q,a,X).

证明思路(续前)

现证明对q,p

Q,

(q,w,X)├*(p,

,

)

iff

[qXp]

w.

由G的构造,[qXp]

a[p0X1p1][p1X2p2]…[pk-1Xkp]为产生式.可以将x分为x=x1x2…xk

,存在p1,p2,…,pk-1,满足

(pi-1,xi,Xi)├*(pi,

,

),1

i<k;(pk-1,xk,Xk)├*(p,

,

),基础n=1,必有w或为

或为单个符号,且(p,

)

(q,w,X).

由G的构造,[qXp]

w为一个产生式,所以[qXp]

w.

由归纳假设,[pi-1Xipi]

xi,1

i<k;[pk-1Xkp]

xk

.

所以,

[qXp]

ax1x2…xk=w.

从下推自动机构造等价的上下文无关文法归纳n>1,设第一步推导为[qXp]├a[p0X1p1][p1X2p2]…[pk-1Xkp].

证明思路(续前)

继续证明对q,p

Q,

(q,w,X)├*(p,

,

)

iff

[qXp]

w.

由G的构造,(p0,X1X2…

Xk)

(q,a,X).基础n=1,[qXp]

w必为一个产生式,由G的构造,w或为

或为单个符号,且(p,

)

(q,w,X).所以(q,w,X)├*(p,

,

).由归纳假设,

(pi-1,xi,Xi)├*(pi,

,

),1

i<k;(pk-1,xk,Xk)├*(p,

,

),所以,

(q,w,X)├(p0,x1x2…xk,X1X2…

X

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论