第三章:上下文无关文法与下推自动机.pdf
文本预览下载声明
形式语言与自动机
主讲:方 敏
西安电子科技大学
1
第三章 上下文无关文法
与下推自动机
3.1 推导树与二义性
3.2 上下文无关文法的改写
3.3 Chomsky范式和Greibach范式
3.4 CFL的泵引理
3.5 下推自动机
3.6 上下文无关文法与下推自动机
3.7 上下文无关语言的性质
3.8 CFG中的ε规则
2
上下文无关文法和它所描述的上下文无关语言,在定
义程序设计语言、语法分析、简化程序设计语言的翻译
等方面有重要的意义.
内容:1、上下文无关文法
2、两个范式:Chomsky 范式,Greibach范式
3、确定的下推自动机、非确定下推自动机(PA)
(Pushdown Automaton)
4、对任何CFA都能找到一种具有特有形式的
等价的CFG (Context-Free Grammar)
与上下文无关文法相应的识别器是下推自动机.
确定的下推自动机对应于上下文无关语言的一个子集(大
部分程序设计语言)
例如:程序设计语言中的嵌套结构,用CFG描述而RG不行
上一页 下一页 退 出 3
3.1 推导树与二义性(语法树)
树中的一个枝结点A ,有直接子孙x x … x ,
1 2 K
有产生式A→x x … x
1 2 K
定义:tree是CFG G=(N,T,P,S)语法树,是有序树
树根:S
枝结点是非终结符
叶子结点是终结符或ε
枝特点A有直接子孙x x… x,则A→x x… x
1 2 i 1 2 i
例:G =( {E },{+ ,*,i, (,), },P,E)
i
E→E+E |E *E |(E) |
句子:( α*α+α)
定义:CFG G =(N,T,P,S)如果存在 *
S⇒ ω⇔G是有一棵叶子为ω的语法树
上一页 下一页 退 出 4
定义:CFG G是二义的⇔
∃ ω∈L(G),有两棵不同的语法树(叶子为ω)
定义:CFG G是二义的⇔∃ ω∈L(G),有两T不同的最
左(右)推导
文法二义的⇒语言二义⇒表示其文法均二义
上一页 下一页 退 出 5
3.2上下文无关文法的改写
不改变文法描述能力前提下改写文法满足一定要求.
改写目标:将CFG改写成某种标准形式.
(1) 改写成Chomsky范式:
A→BC |a A,B,C ∈N a ∈T
(2)Greibach范式
A→a α α ∈N*, a ∈T
显示全部