形式语言和自动机上下文无关文法与下推自动机(课堂PPT)

合集下载

形式语言与自动机-课程介绍 ppt

形式语言与自动机-课程介绍 ppt
计算机科学:是关于计算知识的有系统的整 体。
-
8
2、为什么学习形式语言与自动机
计算机科学的两个主要部分:
构成计算基础的一些基本概念和模型;
设计计算系统(软件和硬件)的工程技 术(设计理论的应用)
本课程着重介绍第一部分(涉及到一些 第二部分的应用),通过形式化技术对 大家进行思维训练,为今后的学习打好 理论基础。
最初的应用:编译 ―― 让计算机按照语法规 则将高级语言方便地翻译成机器语言。
-
15
为什么用形式语言
现在: 已广泛应用在人工智能、图象处理、 通信协议、通信软件等多个领域
在计算机理论科学方面:
是可计算理论(算法―在有限步骤内求得 解、算法复杂性、停机问题、)、定理自 动证明、程序转换(程序自动生成)、模 式识别等的基础。
形式语言是某个字母表上的字符串的集合, 有一定的描述范围。
-
12
为什么用形式语言
例1: 汉语: <主> <谓> <宾> ―― 用数 字、符号等形式化的东西来描述语言 我吃饭 ―― 语法正确 我饭吃 ―― 语法错误 饭吃我 ―― 语法正确,语义错误
-
13
为什么用形式语言
例2:T为PASCAL语言所用的全部符号的集合。 正确的PASCAL程序就是T上的语言。
-
4
经典参考书
书名 Introduction to Automata Theory,
Languages, and Computation (Second Edition)
作者
John E. Hopcroft (Cornell) Rajeev Motwani (Stanford) Jefferey D. Ullman (Stanford)

(完整版)形式语言自动机——上下文无关文法与下推自动机(二)PPT文档

(完整版)形式语言自动机——上下文无关文法与下推自动机(二)PPT文档
基础 任何终结符 a T 都是生成符号; 归纳 如果有产生式 A ,其中 ( N T )* 的 每一个符号都是生成符号,则 A 也是生成符号;
5
算法1: 找出有用非终结符
步骤: (1) N 0 = (赋为) N 0为有用的非终结符集 (2) N’ = {A | A→ω且ω∈T*} N’为非终结符集合 (3) 如果N 0≠N’ 则转(4),否则转(6) (4) N 0=N’ (5) N’= N 0∪{ A | A→α且α∈(T∪N 0)* }, 转(3) (6) N 1 = N’ 小结: 算法1找出能推出终结符串的非终结符作为有 用符号.
A→A*B|(S)|a
B→(S)|a
25
消除递归 递归的定义:
在2型文法中 若存在 A=>+αAβ, A∈N,则称G是递归文法。 若存在 A=>+ Aβ G是左递归文法 若存在 A=>+αA G是右递归文法 若存在 A=>+ A G是循环文法
26
生成式的代换
定义: 2型文法中所有形如A→α的生成式称为A生成式. 引理1: 对A→α的A生成式可进行变换 设 G = (N,T,P,S)
中加入产生式 A ,其中 B 为一个非单产生式;从
而消去 G 中的单产生式,得到 CFG G1 = (N, T, P1, S ): 算法步骤: (1) 对每个A∈N,构造非终结符集NA={B|A=>* B}
( NA是可由A推出的单生成式中的非终结符集)。 构造方法分三步:
① N0={A} ② N’={C | 如果B→CP且B N0}∪N0 ③若N’≠ N0,则N0=N’,转向② (继续迭代)
= {A}∪{S} = {A, S}
③ ∵ N0≠N’ ∴ N0 = N’ = {A,S} 继续转② N’={B}∪{A,S}={B,A,S}

形式语言与自动机课件-第11章 LBA和上下文有关语言

形式语言与自动机课件-第11章 LBA和上下文有关语言

线性有界自动机上下文有关文法的关系
定理 11.2 设M =( Q,∑,Γ,δ,¢,$ ,s,t,r)是一个LBA,且L(M)=L,则L{ε}是一个CSL。
证明 证明方法与第九章定理9.10十分相似。不过由于LBA可以接受ε, 而CSL不能包含ε(CSG不能产生ε),因此我们构造一个CSG G,只能 有L(G)= L-{ε}。
上下文有关文法的性质及其与递归集的关系
(3) 对于L1+ , 构造新文法 G5 =(V1∪{S5},T1,P5,S5) 其中P5 =P1∪{ S5→S1 , S5→S1 S5}。
显然L(G5)=L1+ ,且G5是CSG。定理证完。
由于CSL不含ε,所以若L1为CSL,则它的闭包L1* 将不是CSL。
(1) δ(q0 ,¢)=(q1 ,¢, R) (2) δ(q1 ,X)=(q2 , X , R)
(3) δ(q2 ,X)=(q2 ,X, R)
(4) δ(q2 ,$)=(q3 ,$, L) δ(q2, X)=(q3 , ,L)
设q0 为初始状态。 打右箭头标记 (X=a,b)。 向右找边界$或已标记的符号 。 找到后左移。
A1
*
[a1 ,s¢a1 ][a2 ,a2 ]…[an ,an $]
,
(n>1)
或者
A1 [a, ¢a$] 。
(n=1)
此时,方括号内的第二分量连在一起就表示ID0 :
s ¢a1 a2 …an $ 。(n≥1)
产生式(3)~(12)负责模拟M的动作,其中(3)~(5)处理左边界附近的情
况,(6)~(9)对应一般情况,(10)~(12)处理右边界附近的情况。产生式
上下文有关文法的性质及其与递归集的关系

形式语言和自动机上下文无关文法与下推自动机课堂PPT

形式语言和自动机上下文无关文法与下推自动机课堂PPT

(3)由(q1,)(q1, 1, X) 得 [q1 ,X ,q1] 1;
(4)由(q2,)(q1, , Z0) 得 [q1 ,Z0 ,q2] ;
(5)由(q0,XZ0)(q0, 0, Z0) 得 [q0 ,Z0 ,qj] 0[q0 ,X ,qi] [qi ,Z0 ,qj] , i, j = 0,1,2;
从上下文无关文法构造等价的下推自动机
定理4.5.1(由CFG可导出PDA): 设上下文无关文法G=(N,T,P,S),产生语
言L(G),则存在PDA M,以空栈接受语言Lφ(M), 使Lφ(M)=L(G)。
证明:构造下推自动机M,使M按文法G的最左推导 方式工作。
1
从上下文无关文法构造等价的下推自动机
q0 b, A/ε
b, A/ε ε, A/ε
q1 ε, z0/ε
(3) 对①式δ(q0,a,z0)={( q0, A z0)} , ∵所有可能的状态序列为:q0q0,q1q0,q0q1,q1q1 ∴可构造出产生式:
[q0,z0,q0]→ a [ q0,A, q0 ][ q0,z0, q0 ] [q0,z0,q0]→ a [ q0,A, q1 ][ q1,z0, q0 ] [ q0,z0,q1]→ a [ q0,A, q0 ][ q0,z0, q1 ] [ q0,z0,q1]→ a [ q0,A, q1 ][ q1,z0, q1 ]
then A w.
归纳于 (q, w,A)├*(q, , ) 的步数 n.
基础 n=1,必有 w = ,且 A 为 G 的产生式,所以 A w.
归纳 n>1,设第一步使用产生式 AX1X2…Xm , 可以将w 分为 w = w 1 w 2… w m ,满足 (q, wi , Xi )├*(q, , ),

形式语言自动机——上下文无关文法与下推自动机三

形式语言自动机——上下文无关文法与下推自动机三
§4.3 Chomsky范式和Greibach范式
Chomsky范式定义:
2型文法G=(N,T,P,S),若生成式形式都 是A→BC和A→a,A、B、C∈N,a∈T,则G是 Chomsky范式。若ε∈L(G),则S→ε是P的一 个生成式,但S不能在任何其它生成式的右边。
每个上下文无关文法都具有等效的CNF(定理 4.3.1)
College of Computer Science & Technology, BUPT
1
CNF 的构成步骤
1. 用算法1、2、3、4消除ε生成式、无用符号、单生成式
2. 对生成式A→D1D2…Dn n≥2 若Di∈T,则引入新生成式Bi→Di,Bi是新非终结符 若Di∈N,则令Bi=Di,从而将原生成式变化为
A→BC2,C2→BB.
College of Computer Science & Technology, BUPT
3
CNF 的构成例
例: 2型文法G=({A,B,S},{a,b},P,S)
P: S→bA∣aB A→bAA∣aS∣a
B→aBB∣bS∣b
求等效的CNF
解:S→CbA∣CaB,增加Cb→b,C2→a
6
GNF 的构成例
例: (书P149 例2)
设已有CNF: A→BC,

B→CA∣b, ②
C→AB∣a, ③ 将其变换为GNF。
解: ⑴ 按其非终结符排列为A、B、C,A是低位,C是高位。
⑵ ∵ ①、②中,右部首符序号高于左部的非终结符
∴ 无需变换。
对③,需要变换,
将①代入③得 C→BCB∣a ④, 仍需变换,
A→B1B2…Bn n≥2 当n>2 时,再将其变为

形式语言与自动机总结精品PPT课件

形式语言与自动机总结精品PPT课件
–DPDA 接受非歧义文法,但并不是所有非歧 义文法都可由DPDA接受。S->0S0|1S1|e
–定理6.20,6.21空栈机、终态机与非歧义文 法
• 前缀性质与DPDA
第7章 上下文无关语言的性质
本章是重点
SUCCESS
THANK YOU
2020/12/26
7.1 上下文无关文法的范式
• 文法的化简
• ~代数定律
第4章 正则语言的性质
• 正则语言的泵引理及其应用(重点!)
第4章 正则语言的性质 对于给定的同态(或逆同态)
映射,应能计算映射后的符
• ~的封闭性
号串及语言
– 交、并、补、差、闭包(*)、连 接
– 反转
– 同态
– 逆同态
• 判定性质(各种表示之间的转换、空性、 成员性)
• 最小化(状态的等价性、最小化的填表 算法P106)
7.4 CFL的判定性质
• CFL与PDA转换的复杂度(略) • CFG变换到CNF复杂度(不要求) • 测试空性 • 测试成员性(CYK算法 P209 必须掌握) • 不可判定问题一览(参阅P211)
第8章 图灵机导引
重点
8.2 图灵机
• ~的定义 • ID: q • ~的图形表示 • ~的设计技术(必须掌握) • ~的语言 • ~作为函数(程序) • 停机问题
6.2 PDA的语言(必须掌握)
• 以终态方式接受 • 以空栈方式接受 • 从空栈方式到终态方式(包装) • 从终态方式到空栈方式 • 构造PDA技术
6.3 PDA与CFG的等价性
• 从文法到PDA(必须掌握) • 从PDA到CFG(不要求)
6.4确定型的PDA
• ~定义 • 正则语言与DPDA • DPDA与CFL • DPDA与歧义文法

形式语言与自动机_课件_陈有祺第08章 上下文无关语言的性质

形式语言与自动机_课件_陈有祺第08章 上下文无关语言的性质

上下文无关语言的泵引理
上下文无关语言的泵引理
在Chomsky范式文法中,对于较长字符串的语法分析树,其中必 然存在较长的路径(树的最大层数 - 1)。为了确切说明着这一事 实,将图8.1所示的语法分析树的所有叶结点,都复制到最底层上, 得出如图8.2所示的一棵树。
在图8.2中,由S推导出的终结符号串中各符号都出现树的最底层 上。根据二元树的性质可知,二元树的第i层上最多有2i-1个结点, 那么,若|z|≥2n ,则z的语法分析树不能少于n+2层,即从根到 叶至少有一条长度超过n的路径。
上下文无关语言的泵引理
仅举一例,说明P的构造。设G的产生式为S→AS|b和A→a。取 z=aaaaaab(G只有2个变元,|z|=7已满足要求),并指定前5 个a的位置为特殊位置。则z的语法分析树(将叶结点都复制到最底 层)和路径P如图8.7所示。
在图8.7中,用圆圈标出的变元为分支点,用双线标出的边为路径。 例如,对于第二层的结点S,它有两个儿子A,S(在第三层), 它们都有后代(叶结点)处于特殊位置,但是A只有一个,而S有 三个后代(叶结点)处于特殊位置,所以在路径中取S而不取A。 又如第五层的结点S,它虽然也有两个儿子A,S(在第六层), 但只有A有一个后代(叶结点)处于特殊位置,而S没有。所以取 A加入路径。另外,第五层的结点S,它虽然在路径中,但它不是 分支结点,所以对它不画圆圈。最后,路径P(从根到叶)包含的 各结点:S,S,S,S,S,A,a 。
|vwx|≤k,将z写成z = uvwxy,可能出现以下几种情况:
① 如果v或x包含两种不同的符号,取i=2,无论v或x在什么位置,则 uv2wx2y都将成为ambnapbrasbt形式,这里不论m,n,p,r,s,t为何 值(都不为0),ambnapbrasbt都不能写成ww形式。因此它不在L2中。 ② 如果v和x都只包含a或都只包含b,则取i=0,uwy中不是少了a就是少 了b,再不能写成ww形式,因此它不在L2中。 ③ 如果v只包含前面的a,x只包含前面的b,则取i=0,uwy中前面的a和 b的个数少于后面的a和b的个数,不能再写成ww形式,因此它不在L2中。 ④ 如果v只包含前面的b,x只包含后面的a,则取i=0,uwy中前面的a, b的个数与后面的a,b的个数将不会对应相等,不能再写成ww形式,因 此它不在L2中。如果v只包含后面的a,x只包含后面的b,理由与③类似, uwy将不在L2中。 根据引理8.1或引理8.2,L2不是CFL。

形式语言与自动机课件-第06章 上下文无关文法

形式语言与自动机课件-第06章 上下文无关文法
S→a∣aS 显然,L(G)= L(G´)={an∣n≥1}。很容易验证,文法G´已不再 有二义性了。
具有二义性的文法在理论上和实用上都不是一个好的描述语言的 形式,因此我们应尽量避免写出一个有二义性的文法。但是,对 于某些上下文无关语言,无论用什么上下文无关文法去产生它, 该文法都是有二义性的,这种语言称为“固有二义性的”上下文 无关语言。
写。
对于某些文法来说,对于同一个句型α,可能有两种或两种以上的最左推 导或最右推导来产生它。当然,也就有两棵或两棵以上的以α为边缘的语 法分析树。
上下文无关文法的语法分析
定义6.4 对于某个上下文无关文法G,若有某个字符 串w∈L(G),存在两棵不同的语法分析树都以w为边 缘。则称该文法G是有二义性的。
S aAS aSbAS aabAS aabbaS aabbaaຫໍສະໝຸດ lmlmlm
lm
lm
和唯一的最右推导
S aAS aAa aSbAa aSbbaa aabbaa 。
rm
rm
rm
rm
rm
这里符号“ lm
”和 “ rm
”分别表示最左推导和最右推导。如果在上下文中
已经提到是最左推导或最右推导,则箭头下面的字母lm或rm可以略去不
推导步数用归纳法来证明这一结论。
若推导步数为1,则结论显然成立。现假定,对任何变元A,若通
过少于k步(k>1)的推导得到A * α,则存在一棵边缘为α的A树 。再考虑通过k步推导得到A α* 的情况。
上下文无关文法的语法分析
若推导的第1步是A X1X2…Xn ,则α中符号或是X1,X2,…,Xn中
根据语法分析树与最左(最右)推导的对应关系,对 于文法G的二义性也有等价的定义:若有某个字符串 w∈L(G),存在两个不同的最左(最右)推导过程, 则称该文法G是有二义性的。

形式语言与自动机_课件_陈有祺第07章 下推自动机

形式语言与自动机_课件_陈有祺第07章 下推自动机
求 ,将栈变空,表示接受。 δ(q1 ,ε,R)={(q2 ,ε)} 处理当w=ε时的特殊情况,即输入串为空
时,也应被接受。
下推自动机接受的语言
与例7.2相比,由于要接受的语言没有明显的对称中心,因此当读到两个 连续的0或两个连续的1的时候,一方面要做为对称中心来处理,即改变 状态同时又消去栈顶,进入处理输入串后一半的情况;另一方面也要做为 尚未遇到对称中心来处理,即将0或1的对应符号入栈。这种同时考虑两 种或两种以上可能的问题,就要用到“不确定性”的概念。
将M2的初始状态q0´转为M1的初始状态q0 。 δ´的第(2)条定义规定了M2按M1的动作去做,也就是对一切q∈Q,a∈∑∪{ε}
下推自动机的定义
用IDk┝MiIDj表示从IDk经i次转换到达Idj
ID转换记号┝M中的M(下推自动机的名字)在明确无误的情况下也可也 不标出,可以只写┝或┝*。
为了以后应用的方便,对ID的定义加以扩充,也就是将三元组(q,w, γ)中的w扩充为输入符号串的某一子串,而读头正指向它的第一个符号 ;γ扩充为栈中从栈顶开始往下的某个连续的符号串。例如,原来的ID为 (q ,w1w2 ,γ1γ2),扩充后的ID可以写为(q ,w1 ,γ1)。
等价性
定理7.1 如果对于某个按终结状态方式接受语言的PDA M1 ,有 L(M1)=L,则存在一个按空栈方式接受语言的PDA M2 ,使得N(M2)=L。
证明 设M1 =(Q,∑,Γ,δ,q0 ,Z0 ,F),构造 M2 =(Q∪{qe ,q0´},∑,Γ∪{X0},δ´,q0´ ,X0 , )
下推自动机接受的语言
构造这个PDA M的基本思路是,因为要接受的输入是以c为中心的对称串,利用栈 的特性,将在c之前已读过的符号依次存入栈中(用B代表0,G代表1,当然用符 号0,1本身入栈也是可以的。),当遇到对称中心c时,栈不动,但要改变状态( q1变为q2),在q2的控制下处理输入串的后一半,主要是输入符号和栈中符号的对 消工作。当读到的输入符号为0时,若栈顶符号为B,则消去B并读下一个符号;当 读到的输入符号为1时,若栈顶符号为G,则消去G并读下一个符号,直到对称的 输入串读完,栈底符号R重新变为栈顶,此时将栈变空表示接受。对于不能接受的 输入,例如,输入串为01c11时,当读到c后第二个1时,栈顶符号为B,但是我们 没有定义δ(q2 ,1,B),因此M不能接受该输入串。

形式语言与自动机课件-第12章 确定的CFL和LR(k)文法

形式语言与自动机课件-第12章 确定的CFL和LR(k)文法

确定的上下文无关语言的性质
根据以上分析,可以断言,LM' LM 。假设
a1a2…an∈L(M),则当扫描完an之后,M进入终结状态 。此时无论是立即进入或经过几步ε动作之后进入终结 状态,M´的状态都将是[q,1],所以M´不接受a1a2…an。 反之,若a1a2…an L(M),那么,根据定理12.3,M´在读 过an以后的某个时刻,将没有ε动作可做。而这时M´的 状态是[q,2]的形式,根据δ´的定义(2),M在试图读 一个真输入符号之前,[q,2]马上变为[q,3],即M´接受 a1a2…an。定理证完。
δ´定义的第(3)条是为了解决ε循环问题。区分两种情况:
一种是在“原地踏步”过程中有M的终结态出现。说明M应接受已读过的 输入串,此时M´进入自己的终结状态f,表示也接受读过的输入串。
另一种是在“原地踏步”的过程中永不出现M的终结状态。这时M´即进 入“死”状态d,表明不会接受整个输入串了。
δ´定义的第(4)条是为了处理一种特殊情况。若输入串在末尾处作ε 循环动作,则f就已表示接受了该输入串。若在输入串中间作ε循环 ,那么,虽然也进入M的接受状态,但此时M´变为终结状态f只是 暂时的,通过(4),f马上就变为d,然后扫描完剩余输入串而不接 受该输入串。
确定的下推自动机的标准形式
M模拟M´的基本思想是:将M´的栈顶放入M的状态上,因此初始 状态就是q0=[q0´,X0],并放置自己的栈底Z0。当δ´的动作要退栈 时(情况(a)),δ就将新栈顶吸收到状态上,并消去新栈顶。当 δ´的动作要改变栈顶符号时(情况(b)),δ就只改变状态上的 栈顶符号。当δ´的动作是要将栈顶符号X改变为YZ时,δ就将新栈 顶Y代替原来放在状态上的栈顶X,同时将Z进栈作为M的新栈顶 。此种方法保证了将M的栈内容去掉栈底Z0,加上状态上的栈顶, 永远等于M´的栈的内容。因此M接受输入串u时,当且仅当M´接 受u。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
用格局说明句子分析过程
例如 以a+a*a作为输入,则M在所有可能移动中可作下列移 动(用到文法G中从E出发的最左派生的一系列规则)
(q,a+a*a, E)├ (q,a+a*a, E+T) ├ (q,a+a*a, T+T) ├ (q,a+a*a, F+T) ├ (q,a+a*a, a+T) ├ (q,+a*a, +T) ├ (q,a*a, T) ├ (q,a*a, T*F) ├ (q,a*a, F*F) ├ ……
5
例2:利用下推自动机进行自顶向下的分析过程
E EOE (E) v d O +
v ( v +d )
ε,z0=E/β 若E→β∈P
ε,O/+
q
ε,O/*
a,a/ε a ∊ {(,),v,d,+,* }
E
v
E
O E
O E
O E
E
E
(
E O
v
O
ቤተ መጻሕፍቲ ባይዱ
O

E
E
E
E
E
E
)
)
)
)
)
)
E
d
)
)
)
6
定理的证明
G=(N,T,P,E) N={ E,T,F }, T ={ +,*,(,),a }, S = { E } P: E→E+T∣T ; T→T*F∣F; F→( E )∣a
解:构造M=({q},T,Γ,δ,q,E,φ) δ定义为:
① δ(q,ε,E)={ (q, E+T ), (q, T) } ② δ(q,ε,T)={ (q, T*F ), (q, F) } ③ δ(q,ε,F)={ (q, (E) ), ( q, a) } ④ δ(q, b,b)={ (q, ε) } 对所有 b∈{ a,+,*,(,) }
10
从下推自动机构造等价的上下文无关文法
定理4.5.1是由G导出PDA,其逆定理也成立。
定理4.5.2(由PDA导出文法G): 设下推自动机M,以空栈形式接受语言 Lφ(M),则存在一 个上下文无关文法G,产生语言L(G), 使L(G)= Lφ(M) 。 证明:设M=( Q,T,Γ,δ,q0,z0,Φ) 思路:构造文法G,使ω串在G中的一个最左推导直接对应于 PDA M 在处理ω时所做的一系列移动 。
证明思路 欲证,对任何 wT*, wL(G) wL(M). 先证明如下结论, if A w, then (q,w,A)├*(q, , ).
归纳于 A w 的步数 n.
基础 n=1,Aw 必为产生式, (q,w,A)├ (q,w,w) ├*(q, , ). 归纳 设第一步使用产生式 AX1X2…Xm ,必有 w=w1w2…wm ,
M=(Q,T,Γ,δ,q0,z0,F) 其中 Q={q}, Γ=N∪T, q0=q,z0=S, F=φ (∵以空栈接受)
即 M = ( {q} , T, NT, , q, S , F) , 转移函数 定义如下:
(1) 对每一 AN, (q, , A) = {(q,)"A”P }; (即将栈顶的A换为β)
(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, , ). 即, wL(G) wL(M).
7
定理的证明
先证明如下结论, if (q, w,A)├*(q, , ),
then A w.
归纳于 (q, w,A)├*(q, , ) 的步数 n.
基础 n=1,必有 w = ,且 A 为 G 的产生式,所以 A w.
归纳 n>1,设第一步使用产生式 AX1X2…Xm , 可以将w 分为 w = w 1 w 2… w m ,满足 (q, wi , Xi )├*(q, , ),
§4.5 上下文无关文法与下推自动机
上下文无关文法与下推自动机的等价性:
PDA与上下文无关文法之间存在着对应关系。即: PDA(M) => CFG CFG => PDA(M)
Grammar
PDA by empty stack
PDA by final state
1
从上下文无关文法构造等价的下推自动机
4
自顶向下的分析过程
定理的物理意义:利用下推自动机进行自顶向下的分析, 检查一个句子的最左推导过程。 步骤如下:
(1) 初始时,将文法开始符号压入空栈. (2) 如果栈为空,则分析完成. (3) 如果栈顶为一非终结符,先将其从栈中弹出. 选择下
一个相应于该非终结符的产生式,并将其右部 符号从 右至左地一一入栈. 如果没有可选的产生式,则转出 错处理. (4) 如果栈顶为一终结符,那么这个符号必须与当前输入 符号相同,将其弹出栈,读下一符号,转第(2)步;否 则,回溯到第(3)步.
无论 Xi 为终结符,还是非终结符,都有 Xi w i . 因此 ,A X1X2…Xm ,
w 1 w 2… w m = w
所以: 对任何 wT*, if (q,w,S)├*(q, , ), then S w.
即, wL(M) wL(G).
8
例3: 从文法构造等价的下推自动机
例:构造一个PDA M,使Lφ(M)= L(G)。其中G是我们常用来生 成算术表达式的文法:
( {q} , {v,d,+, ,(,) }, {E,O,v,d,+, }, , q, E, φ ) , 其中 定义为
(q, , E) = {(q,EOE), (q,(E)), (q,v),(q,d)}, (q, , O) ={(q,+), (q, )}, (q, v, v) = (q, d, d)= { (q, ) }, (q,+,+) = (q, , ) = (q,(,( ) = (q,),) )= { (q, ) }
定理4.5.1(由CFG可导出PDA): 设上下文无关文法G=(N,T,P,S),产生语
言L(G),则存在PDA M,以空栈接受语言Lφ(M), 使Lφ(M)=L(G)。
证明:构造下推自动机M,使M按文法G的最左推导 方式工作。
2
从上下文无关文法构造等价的下推自动机
构造方法 设 CFG G = (N, T, P , S ) , 构造一个空栈接受方式的 PDA
(2) 对每一 aT, (q, a, a) = { (q, ) }. (即若栈顶为终结符,则退栈)
3
从上下文无关文法构造等价的下推自动机
用图形表示:
ε,z0=S/β 若S→β∈P ε,A/α 若A→α∈P
a,a/ε aT,
q
例1 对右边产生式所代表 CFG, 依上述方法构造的 PDA 为
E EOE (E) v d O +
相关文档
最新文档