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

合集下载

第三章:上下文无关文法与下推自动机

第三章:上下文无关文法与下推自动机
上一页 下一页 退 出
19
②构造P1: 如果B→α∈P且不是单产生式,则对于B∈NA中的所有 A,把A→α加入P1中, ③得G1=( N1,T1, P1 ,S) 结论:对于每个单产生式得CFG G,存在一个等效的无 单产生式的文法G1 。 例: G=({E,T,F},{+,*, (,),a},p,E) E→ E+T∣T P: T→ T*F∣F F→ (E)∣a 解:G是无ε产生式文法,但有单生成式E → T,T → F ①N0={E} ②因为E→ T ∈P, F→ T ∈P,则N’={E,T,F}=NE ③同理:NT={T,F},NF={F},
2
上下文无关文法和它所描述的上下文无关语言,在定 义程序设计语言、语法分析、简化程序设计语言的翻译 等方面有重要的意义. 内容:1、上下文无关文法 2、两个范式:Chomsky 范式,Greibach范式 3、确定的下推自动机、非确定下推自动机(PA)
(Pushdown Automaton)
4、对任何CFA都能找到一种具有特有形式的 等价的CFG (Context-Free Grammar) 与上下文无关文法相应的识别器是下推自动机. 确定的下推自动机对应于上下文无关语言的一个子集(大 部分程序设计语言) 例如:程序设计语言中的嵌套结构,用CFG描述而RG不行
10
例:N={S,A,B} T={0,1} P={S→ 0,A→ 1,B→ 0} 解: (1)N0=φ (2)N'={S,A,B } (3)N0≠N‘∴N0=N‘ P={S→ 0,A→ 1,B→ 0} (4)N'=N0∪{ }=N0 ∴有用非终结符集=N0={S,A,B}
上一页
下一页
退 出
11
定理2:CFG:G=(N,T,P,S)则必可找到等效的 G1=(N1,T1,P1,S) 对x∈N1∪T1 * 存在α ,β∈(N1∪T1)*,有S⇒ α x β (证:从文法起始S能推出含X的句型) 证明: 构造G1: S∈N1 (1)若A∈N1且A→ α ∈P,则含α中的非终结符是属 于N1,终结符∈T1。 (2)重复(1),直到再没有新的符号加入N1,T1为止 (3)P1={A→α |A→α ∈P,A∈N1, α ∈(N1∪T1)*} 由G1的构造可知:

(22)第三章 第五讲 上下文无关文法与下推自动机(简介)

(22)第三章 第五讲 上下文无关文法与下推自动机(简介)

END
RETURN
三、上下文无关语言的判定问题 1. 空问题 上下文无关语言的空问题是可以判定的。
2. 成员问题
上下文无关语言的成员问题也是可以判定的。 3. 等价问题 上下文无关语言的等价问题是不可以判定的。
四、上下文无关文法的二义性
1. 定义
若对于上下文无关文法G产生的语言L(G),如果有句子 w∈L(G),存在两个不同的推导树,或者说对w存在两个不 同的最左或最右推导,那么就称文法G是二义的。
2={ 2 k a |k≥1}
都不是
二、上下文无关语言的性质
1.上下文无关语言的封闭性 定理21:若L1和L2是上下文无关语言,则L1∪L2也是上下 文无关语言。
(证明略) 定理22:若L1和L2是上下文无关语言,则L1L2也是上下文 无关语言。 (证明略) 定理23:若L是上下文无关语言,则L的闭包L*也是上下文 无关语言。 (证明略)
特例:在定义中只要取w2=ε,则生成式的形式变为: A→w1C , A→w3 。这显然是右线性文法。因此,右线性 文法是线性文法的特例。
五、受限型上下文无关文法
2. 顺序文法
定义:对于上下文无关文法G , 如果非终结符可以排序为: A1,A2,A3,......,An ,当P中有生成式Ak→β时,若β内不含有l < k的Al,则称G是顺序文法。 实例:设文法G=({A2},{a,b},P,A2),其中生成式P如下: A2→aA2b , A2→ε 由定义可知,该文法G是顺序文法,由它产生的语 言为: L(G)={anbn | n≥0}。(参考书第181页的例2有错) 结论:线性文法总可以设法转换为顺序文法。利用顺序文 法进行文法分析是比较方便的。这样一来,前面所有的有 关右线性文法的分析都可以转换为对顺序文法的分析。

形式语言与自动机第七章下推自动

形式语言与自动机第七章下推自动
下推自动机以上这两种接受语言的定义,虽然形式上很不相同, 但它们是彼此等价的。
下推自动机接受的语言
例7.1 构造一个PDA按终结状态方式接受语言{ 0n1n | n≥1}。
我们令 M =({q0,q1,q2,q3},{0,1}。{Z,A},δ,q0, Z,{q3}),其中 δ(q0 ,0,Z)={(q1 ,AZ)} 在栈中 加入A
a
a
q
v
p
u
(p, u) δ(q, ε, v) means that this a ε-
move.
a
a
q
p
u
(p, u) δ(q, a, ε) means that a push
operation performs at stack.
a
q
v
a p
(p, ε) δ(q, a, v) means that a pop
下推自动机的动作模型
下推自动机接受的语言
定义7.2 设 M = (Q,∑,Γ,δ,q0 ,Z0 ,F)是一个PDA,集合{ w | (q0 , w, Z0) ┝* (p,ε,γ),w∈∑* ,p∈F,γ∈Γ* } 称为M按终结状 态方式接受的语言,用L(M)表示。
下推自动机M从初始状态q0出发,读头注视着w的第一个符号, 栈中只有栈底符号Z0(也是栈顶),经过若干次动作,当读头越 过w的全部符号后,若状态变为终结状态,则M接受w 。此时栈 中情况如何是没有关系的,也许栈变空,也许还有许多符号。但 是,在w未读完之前,栈不能变空,否则因为没有了栈顶符号,δ 函数将无定义,当然w也就不可能被M接受。
在上述例子中,也可以将最后两个δ函数改为δ(q2,ε,R)={(q3,R)}和δ( q1,C,R)={(q3,R)},并令q3为终结状态(在七元组中也相应更改),这 就是一个以终结状态方式接受L的PDA。由此可见,以两种不同方式接受语言的下 推自动机之间是相通的,并没有本质的差别。

上下文无关文法

上下文无关文法

第三部分上下文无关语言和下推自动机前面介绍的有限自动机是计算的初级模型,它所接受的正规语言不太关心字符串自身的结构。

上下文无关文法(CFL)是一种简单的描述语法规则的递归方法,语言中的字符串由这些规则产生。

所有的正规语言都能用上下文无关文法描述,它也可以描述非正规语言。

上下文无关文法描述的语法规则更复杂多变,可以在相当大的程度上,描述高级程序设计语言的语法和其他一些形式语言。

类似正则语言对应的抽象机模型是有限自动机,CFL也有对应的抽象机模型。

CFL对应的计算模型是在有限自动机的基础上增加存储空间得到,并被设想成无限空间(对应有限自动机的有限空间),采用了一种简单的管理模式,栈(stack),这种新的计算模型(或抽象机)称为下推自动机(pushdown automata),下推是栈最典型的操作。

有必要在下推自动机中保留非确定性,确定型下推自动机不能接受所有的CFL,但给定一个CFG,容易构造一个相应的非确定型下推自动机,它在识别字符串过程中的移动模拟了文法的推导过程,这个过程称为分析(parse)。

分析不是一定需要下推自动机来完成。

CFL仍然不够通用,不能包括所有有意义的、或有用的形式语言。

采用类似第五章的技术,我们将给出一些不是CFL的简单例子,这些技术也用于解决与CFL相关的判定问题。

6 上下文无关文法6.1 上下文无关文法的定义为了描述我们在第二部分考察的各种语言,包括一些非正则语言,我们引入一种语言的递归定义方法,称为文法。

文法与我们熟悉的语言的语法描述相近,是描述语言和分析语言的有力工具。

问题:文法的形式化定义似乎可以模仿有限自动机,比如5元组或6元组之类。

例子6.1 正如我们在例子2.16中所见,字母表{a, b}上的回文语言pal可以用下面的递归方法描述:1.Λ, a, b∈pal2.对每个S∈pal,aSa和bSb也属于pal3.pal中不包含其他字符串如果将上面的符号S看成一个变量,代表了所有我们希望计算(比如某种递归算法)的pal 的元素,那么上面的规则1和规则2可以非正式地重新表述如下:1.S的值可以是Λ, a, b2.每个S可以写成aSa或bSb的形式如果我们用→表示“可以取值为”,则可以写出下面的式子:S→aSa→abSba→abΛba=abba上面的产生过程可以总结成下面的两组产生式(或称规则):S→a | b | ΛS→aSa | bSb符号“|”表示“或”的含义。

形式语言与自动机讲义(Part3)

形式语言与自动机讲义(Part3)
* 证明思路: $ 对派生的步数n施归纳,证明对于任意A∈V,如果 A⇒nα ,则在G中存在对应的从A到α的最左派生: A⇒n左α 。
定理6-3 如果α是CFG G的一个句型, α的派生树与最左派 生和最右派生是一一对应的,但是,这棵派生树可以对 应多个不同的派生。
15
文法的二义性
* 定义6-6 文法的二义性(ambiguity) $ 设有CFG G=(V,T,P,S),如果存在w∈L(G),w至 少有两棵不同的派生树,则称G是二义性的。否则, G为非二义性的。
Gexp1: $ E→E+T|E-T|T $ T→T*F|T/F|F $ F→F↑P|P $ P→(E)|N(L)|id $ N→sin|cos|exp|abs|log|int $ L→L,E|E
8
上下文无关文法的派生
上下文无关文法的派生
* 定义6-1 派生树(derivation tree) :设有CFG G=(V,T,P,S),G的一棵派生树是满足如下条件 的一棵(有序)树: (1)树的每个顶点有一个标记X,且 X∈V∪T∪{ε} (2)树根的标记为S; (3)如果非叶子顶点v标记为A,A的儿子从 左到右依次为v1,v2,…,vn,并且它们 分别标记为X1,X2,…,Xn,则 A→X1X2…Xn∈P; (4)如果X是一个非叶子顶点的标记,则 X∈V; (5)如果顶点v标记为ε ,则v是该树的叶 子,并且v是其父顶点的惟一儿子。
⇒x+x/F ⇒x+x/F↑P ⇒x+x/P↑P ⇒x+x/y↑P ⇒x+x/y↑2
(b)最右推导:
E
⇒E+T
⇒E+T/F ⇒E+T/F↑P ⇒E+T/F↑2 ⇒E+T/P↑2 ⇒E+T/y↑2 ⇒ E+F/y↑2 ⇒ E+P/y↑2 ⇒ E+x/y↑2 ⇒ T+x/y↑2 ⇒ F+x/y↑2 ⇒ P+x/y↑2 ⇒x+x/y↑2

形式语言与自动机_课件_陈有祺第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。

四种自动机与对应文法 有限自动机 下推自动机 图灵机 线性有界自动机

四种自动机与对应文法 有限自动机 下推自动机 图灵机 线性有界自动机
G
这步推导是根据产生式 ,在句型 中,用产生式 的右端( )替换产生式的左端( )而实现的。
30
语言及其表示
4) 不含变量的句型称为句子。 5) 若对文法 G 存在下面的多步推导 1 2 , 2 3, , n1 n
G G G
则可简记为 1 n 。
34
语言及其表示
语言识别器
语言识别器同文法一样,都是对(可能为无限集的)语言 提供有限表示的一种方式。语言识别器也称为自动机。 如果说文法是从产生语言的角度来表示语言,那么自动机 是从识别语言的角度来表示语言。 自动机的结构可以大致表示成下图的形式。 a1 a2

an
有限状态 控制器
辅助存 储器
31
语言及其表示
举例
G1 (V1 , T1; P , S ) 1
P: 1 S 0S S 0A A 1A A
简记为
V1 {S , A},

T1 {0,1}
S 0S | 0 A A 1A |
上面给出了一个文法 G,它的变量集、终极符集、产生式和初始符 都已经明确给出。下面求解它产生的语言 L(G1 ) 。 第 1 步:通过推导来得到 L(G)中的一些句子。 S 0 S 00 S 000 A 0001A 0001
语言(Language)
字母表∑上满足一定条件的串的集合称为∑上的一个语言。
语言举例:
例 1. L1 {x {0,1}* | x | 3}是字母表{0,1}上的一个语言。 L1 的元素都
是由 0 和 1 组成的串,这些串要满足的条件是:长度不超过 3。易知, 这样的串有: ,0,1,00,01,10,11,000,001,010,011,100,101,110,111 共 15 个。

自然语言理解(03)形式语言与自动机

自然语言理解(03)形式语言与自动机

3.3自动机理论
q 线性带限自动机所接受的语言
3.3自动机理论
q 定理
定理 3.5:如果 L 是一个前后文有关语言,则 L 由一个不 确定的线性带限自动机所接受。反之,如果 L 被一个线性带 限自动机所接受,则 L 是一个前后文有关语言。
各类自动机的区别与联系
主要区别:各类自动机的主要区别是它们能够使用的信 息存储空间的差异:有限状态自动机只能用状态来存储信息; 下推自动机除了可以用状态以外,还可以用下推存储器 (栈);线性带限自动机可以利用状态和输入/输出带本身。 因为输入/输出带没有“先进后出”的限制,因此其功能大于 栈;而图灵机的存储空间没有任何限制。 识别语言的能力:有限自动机等价于正则文法;下推自 动机等价于上下文无关文法;线性带限自动机等价于上下文 有关文法,图灵机等基于 0 型文法。
3.2 形式语言
q 关于语言的定义
按照一定规律构成的句子和符号串的有限或无限的集合。
- Chomsky
语言可以被看成一个抽象的数学系统。(吴蔚天,1994)
语言描述的三种途径
v 穷举法 — — 只适合句子数目有效的语言。 v 语法描述 — — 生成语言中合格的句子。
v 自动机 — — 对输入的句子进行检验,区别哪些是语 言中的句子,哪些不是语言中的句子。
3.4自动机在自然语言处理中的应用
• 3.4.1 单词拼写检查 • 3.4.2单词形态分析 • 3.4.3 词性消歧
3.4自动机在自然语言处理中的应用
q 有限自动机用于英语单词拼写检查
[Oflazer, 1996] 设 X 为拼写错误的字符串,其长度为 m,Y 为 X 对应的正 确的单词(答案),其长度为 n。则 X 和 Y 的编辑距离 ed(X[m], Y[n])为:从字符串 X 转换到 Y 需要的插入、删除、 替换和交换两个相邻的基本单位(字符)的最小个数。如: ed (recoginze, recognize) = 1 ed (sailn, failing) = 3

形式语言与自动机理解

形式语言与自动机理解

形式语言与自动机理解
形式语言是一种用来描述计算机程序的语言,它包括了一些符号和规则,这些符号和规则可以用来构造出程序的各种结构。

自动机是一种能够接受或拒绝一些特定输入的计算机模型。

形式语言与自动机理论是计算机科学中的基础理论。

形式语言主要分为正则语言、上下文无关语言、上下文相关语言和递归可枚举语言。

正则语言是最简单的一种形式语言,可以被有限状态自动机识别。

上下文无关语言可以被上下文无关文法描述。

上下文相关语言可以被上下文相关文法描述。

递归可枚举语言可以被图灵机识别。

自动机主要分为有限状态自动机和图灵机。

有限状态自动机可以接受正则语言,图灵机可以接受所有可计算语言。

有限状态自动机和图灵机是计算机理论中重要的自动机模型,它们被广泛应用于编译器、自然语言处理等领域。

在实际应用中,形式语言和自动机理论有很多用途。

比如,可以用正则表达式匹配文本,用上下文无关文法描述语法,用图灵机模拟计算过程等等。

形式语言和自动机理论不仅是计算机科学中的重要理论基础,而且在软件开发和计算机领域的其他方面也有广泛的应用。

- 1 -。

确定的下推自动机-Read

确定的下推自动机-Read
上一页 下一页 退 出
P2={B β |B Aβ ∈P,A∈V0, β ≠ε }. 令P’’=P- P1 +P2 从而,构造出G”=(N,T,S,P’’) 显然,G”中没有ε 产生式,如果G的某步推导中,用到 P中的产生式B Aβ (A∈V0 , β ≠ε ),而再以后的 每一步推导中,必须要用A ε 的,那么再G’’相应推导 中,用P’’中的 B β ,而不必用 Aε ,推导照样进行 ,; 反之亦然,L(G’’)=L(G) 再对G”应用定理1,2,便得到CFG G’=(N’,T’,S,P’), G’没有无用符号,且L(G’)= L(G’’)= L(G), 又P’ P’’,所以,G’也无ε 产生式,可得 无ε 字产生 式及无用符号的文法G’。
上一页 下一页 退 出
G是二义的 ω∈L(G),有两棵不同的语法树(叶子为ω) 定义:CFG G是二义的 ω∈L(G),有两T不同的最 左(右)推导 文法二义的语言二义表示字的文法均二义 定义:CFG
3.2上下文无关文法的改写 不改变文法描述能力前提下改写文法满足一定要求. 改写目标:将CFG改写成某种标准形式. (1) 改写成Chomsky范式:产生式形式均为:文法二义的
上一页 下一页 退 出
定理:CFG G=(N,T,S,P),若L(G)≠Φ , L(G)≠{ε },则 存在一个没有无用符号,没有ε 产生式的 CFG G‘=(N’,T’,S,P’),使:L(G’)=L(G) 证明:先构造一个与CFG G=(N,T,S,P)等价,又没有ε 产生式的CFG G”=(N,T,S,P”)。为此,先找出G中所 有的可零化的非终结符号。 设:V0={A| A ε ,A ∈N} 可零化的非终结符号。 构造V0: (1)若:A ε ∈P,则 A V0 (2)若:A X1X2 …Xn∈P,且Xi∈V0(1≤i≤n),则 A∈V0 (3)重复(2),直到没有新的非终结符加入V0为止, 现将P改造为P”: P1={A ε |A ε ∈P}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§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 时,再将其变为
A→B1C1,C1→B2C2,C2→B3C3,…,Cn-1→Bn-1Bn Ci是新引入的非终结符。
定理证明――自学
College of Computer Science & Technology, BUPT
2
CNF 的构成例
例: (书P148 例1)
A→BC
被变换为
A→bCBAC∣aAC∣bCBC’AC∣aC’AC∣bC ⑨
再将新的A生成式⑨代入新引入的C’生成式⑦
C’→ACB∣ACBC’ 被变换为
… … (略)
注意:新引入的Ai’相当于排在最低位。
College of Computer Science & Technology, BUPT
9
§4.4 下推自动机(PDA)
10
问题的引出
类似于an bn 的语言无法由一般的有限自动机识别。
aa
aa
a
b
b
b
b
b
b
识别an bn 的无限状态自动机
有限状态识别器中必须有无限个状态 (不允许!) ∴ 需要扩充机器的能力。
College of Computer Science & Technology, BUPT
11
下推自动机的结构
扩充办法:引入一个下推栈
① 足够简单 ② 可解决许多有意义的问题, 如识别有效的程序 下推自动机PDA(Push Down Automaton)
由一条输入带,一个有限状态控制器和一个下推栈组成
PDA的动作
在有限状态控制器的控制下根据它的当前状态、栈顶符号、以 及输入符号作出相应的动作。有时,不需要考虑输入符号(空
任何2型文法都具有等效的GNF(定理4.3.2)
College of Computer Science & Technology, BUPT
5
GNF 的构成步骤
1. 将2型文法变换为CNF。(A→a,A→BC形式)
2.将非终结符排序,再进行代换。
对形如Ai→Ajβ(j<i)的生成式进行代换,直至使 Ai→Alβ(l>i)。 3.消左递归。
对最高的An→Anγ进行变换,使An生成式变为终结符开头。 4.回代。
将An生成式回代入ALeabharlann -1生成式,使其右部首符为终结符,
将An-1生成式回代入An-2生成式,使其右部首符为终结符 …
5. 最后将消直接左递归时引入的A1’、 A2’、…An’生成式右部进行
代换。使其首符变为终结符。 College of Computer Science & Technology, BUPT
转移)。
栈:后进先出表
对栈的操作(压入、弹出)均在栈顶进行。 College of Computer Science & Technology, BUPT
主要内容 PDA的基本概念。 PDA的构造举例。 用终态接受语言和用空栈接受语言的等价性。 PDA是上下文无关语言的接收器。
重点 PDA的基本定义及其构造 PDA与上下文无关语言等价
难点 根据PDA构造上下文无关文法。
College of Computer Science & Technology, BUPT
即 C→bCB∣a∣bCBC’ ∣aC’ ⑥
C’→ACB∣ACBC’

College of Computer Science & Technology, BUPT
8
GNF 的构成例
⑷ 回代
将C的生成式⑥回代入B的生成式②
B→CA∣b 被变换为
B→bCBA∣aA∣bCBC’A∣aC’A∣b ⑧
将新的B生成式⑧回代入A的生成式①
将②代入④得 C→CACB∣bCB∣a ⑤
College of Computer Science & Technology, BUPT
7
GNF 的构成例
⑶ 对上述变换后所得结果消直接左递归 对C→CACB∣bCB∣a 变换为
α1 β1 β2 C→β1∣β2∣β1C’∣β2C’ C’→ α1∣α1 C’
A→CbD∣CaS∣a,增加D→AA
B→CaE∣CbS∣b,增加E→BB
College of Computer Science & Technology, BUPT
4
Greibach范式
Greibach范式 (GNF)定义: 2型文法G=(N,T,P,S),若生成式的形式 都是A→aβ,A∈N,a∈T,β∈N*,且G不含ε 生成式,则称G为Greibach范式,记为GNF。
设G=({A,B,S},{a,b},P,S)是无ε、无循环、无
无用符号、无单生成式的文法。
P:S→aAB∣BA
A→BBB∣a B→AS∣b
求等效的CNF G1 解:∵ S→BA,A→a,B→AS, B→b已是CNF
∴ 加入到P1中 对S→aAB,将其变换为
S→CaC1,Ca→a,C1→AB 将A→BBB变换为
相关文档
最新文档