编译原理第3讲(第三章)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 文法和语言
1. 符号和符号串 2. 文法和语言的形式定义 3. 文法的类型 4. 上下文无关文法及其语法树 5. 上下文无关文法的句型分析 6. 有关文法实用中的一些说明
整理ppt
1
文法的类型
通过对产生式施加不同的限制,Chomsky将 文法分为四种类型:
0型文法:对任一产生式α→β,都有 α∈(VN∪VT)+, β∈(VN∪VT)*
整理ppt
16
源自文库
例子
例:G‘[E]: E→i E → E+E E → E*E E → (E)
E E+E E*Ei ii
E E*E iE+E
ii
句型 i*i+i 的两个不同的最左推导:
推导1:E E+E E*E+E i*E+E i*i+E i*i+i
推导2:E E*E i*E i*E+E i*i+E i*i+i
整理ppt
18
文法的二义性和语言的二义性
文法的二义性和语言的二义性是两个不同的概念。因为可能有两个不 同的文法G和G′,其中G是二义的,但是却有L(G)=L(G′),也就是 说,这两个文法所产生的语言是相同的。
3型文法或正则(正规)文法( RG )产生的 语言称为3型语言或正则(正规)语言( RL )
整理ppt
7
文法和语言
四种文法之间的关系:是将产生式做进一步 限制而定义的。
语言之间的关系依次:有不是上下文有关语 言的0型语言,有不是上下文无关语言的1型语言 ,有不是正则语言的上下文无关语言。
整理ppt
3型文法(正规文法RG):产生的语言是有穷自动机( FA)所接受的集合
整理ppt
9
图灵机
任何能用图灵机描述的计算都能机械实现,任何能在现 代计算机上实现的计算都能用图灵机描述 带 a0 a1 a2 a3 a4 a5 a6 a7 a8 … an-1 an
磁头
有限控制器
整理ppt
10
上下文无关文法及其语法树
语法树---句型推导的直观表示
给定文法G=(VN,VT,P,S),对于G的任何句型都能构 造与之关联的语法树(推导树) 定理:G为上下 文无关文法,对于α≠ε,有S =>* α,当 且仅当文法G有以α为结果的一棵语法树(推导树)
一棵语法树表示了一个句型的种种可能的(但未必 是所有的)不同推导过程,包括最左(最右)推导。但是, 一个句型是否只对应唯一的一棵语法树呢?一个句型是 否只有唯一的一个最左(最右)推导呢?
整理ppt
17
二义文法
若一个文法存在某个句子对应两棵不同的语
法树,则称这个文法是二义的。或者,若一个文
法存在某个句子有两个不同的最左(右)推导,
则称这个文法是二义的。
判定任给的一个上下文无关文法是否二义, 或它是否产生一个先天二义的上下文无关语言, 这两个问题是递归不可解的,但可以为无二义性 寻找一组充分条件
设G=( VN,VT,P,S)为一cfg,若一棵树满足下列4个条 件,则此树称作G的语法树(推导树或派生树): 1. 每个结点都有一个标记,此标记是V的一个符号 2. 根的标记是S 3. 若一结点n至少有一个它自己除外的子孙,并且有标记 A,则肯定A∈VN 4. 如果结点n有标记A,其直接子孙结点从左到右的次序 是n1,n2,…,nk,其标记分别为A1,A2,…,Ak,那么 A→A1A2,…,Ak一定是P中的一个产生式
8
根据形式语言理论,文法和识别系统间有这样的关系
0型文法(短语结构文法)的能力相当于图灵机,可以 表征任何递归可枚举集,而且任何0型语言都是递归可 枚举的
1型文法(上下文有关文法):产生式的形式为 α1Aα2→α1βα2,即只有A出现在α1和α2的上下文中时, 才允许β取代A。其识别系统是线性界限自动机。 2型文法(上下文无关文法CFG):产生式的形式为 A→β,β取代A时与A的上下文无关。其识别系统是不确 定的下推自动机。
•上下文无关文法有足够的能力描述程序设计语 言的语法结构
•语法树---句型推导的直观表示
整理ppt
11
句型推导的例子
G[E]: E→E+T|T T→T*F|F F→(E)|a
给出句型(句子) a+a*a的推导。
EE+T T+T F+T a+T a+T*F a+F*F a+a*F a+a*a
EE+T E+T*F E+T*a E+F*a E+a*a T+a*a F+a*a a+a*a
整理ppt
5
文法的类型关系
四类文法之间的逐级“包含”关系
0型文法 1型文法 2型文法 3型文法
整理ppt
6
文法和语言
0型文法产生的语言称为0型语言
1型文法或上下文有关文法( CSG )产生的语 言称为1型语言或上下文有关语言(CSL)
2型文法或上下文无关文法( CFG )产生的语 言称为2型语言或上下文无关语言( CF L )
1型文法:对任一产生式α→β,都有|β|≥|α|, 仅 仅 S→ε除外
2型文法:对任一产生式α→β,都有α∈VN
3型文法:任一产生式α→β的形式都为A→aB 或A→a,其中A∈V整N理p,pt B∈VN ,a∈VT * 2
1型文法
例:1型(上下文有关)文法
文法G[S]:S→CD
Ab→bA
C→aCA
EE+T T+T T+T*F F+T*F F+F*F
a+F*F a+F*a a+a*a整理ppt
12
规范推导与规范句型
最左(最右)推导:在推导的任何一步 αβ,其中α、β是句型,都是对α中的最 左(右)非终结符进行替换。
最右推导被称为规范推导。 由规范推导所得的句型称为规范句型。
整理ppt
13
语法树
Ba→aB
C→bCB
Bb→bB
AD→aD
C→a
BD→bD
D→b
Aa→bD
整理ppt
3
2型文法
例:2型(上下文无关)文法
文法G[S]:
S→AB A→BS|0 B→SA|1
整理ppt
4
3型文法
G[S]: S→0A|1B|0
A→0A|1B|0S
B→1B|1|0
G[I]:
I → lT I→l T → lT T → dT T→l T→d
语法树的结果: 从左到右读出叶子的标记而构成的行,谓之。
整理ppt
14
上下文无关文法的语法树
句型aabbaa的可能推导序列和语法树
例: G[S]: S→aAS A→SbA A→SS S→a A→ba
S
aA
S
S bAa
a
ba
SaASaAaaSbAaaSbbaaaabbaa SaASaSbASaabASaabbaSaabbaa SaASaS整b理AppSt aSbAaaabAaaabb1a5a
1. 符号和符号串 2. 文法和语言的形式定义 3. 文法的类型 4. 上下文无关文法及其语法树 5. 上下文无关文法的句型分析 6. 有关文法实用中的一些说明
整理ppt
1
文法的类型
通过对产生式施加不同的限制,Chomsky将 文法分为四种类型:
0型文法:对任一产生式α→β,都有 α∈(VN∪VT)+, β∈(VN∪VT)*
整理ppt
16
源自文库
例子
例:G‘[E]: E→i E → E+E E → E*E E → (E)
E E+E E*Ei ii
E E*E iE+E
ii
句型 i*i+i 的两个不同的最左推导:
推导1:E E+E E*E+E i*E+E i*i+E i*i+i
推导2:E E*E i*E i*E+E i*i+E i*i+i
整理ppt
18
文法的二义性和语言的二义性
文法的二义性和语言的二义性是两个不同的概念。因为可能有两个不 同的文法G和G′,其中G是二义的,但是却有L(G)=L(G′),也就是 说,这两个文法所产生的语言是相同的。
3型文法或正则(正规)文法( RG )产生的 语言称为3型语言或正则(正规)语言( RL )
整理ppt
7
文法和语言
四种文法之间的关系:是将产生式做进一步 限制而定义的。
语言之间的关系依次:有不是上下文有关语 言的0型语言,有不是上下文无关语言的1型语言 ,有不是正则语言的上下文无关语言。
整理ppt
3型文法(正规文法RG):产生的语言是有穷自动机( FA)所接受的集合
整理ppt
9
图灵机
任何能用图灵机描述的计算都能机械实现,任何能在现 代计算机上实现的计算都能用图灵机描述 带 a0 a1 a2 a3 a4 a5 a6 a7 a8 … an-1 an
磁头
有限控制器
整理ppt
10
上下文无关文法及其语法树
语法树---句型推导的直观表示
给定文法G=(VN,VT,P,S),对于G的任何句型都能构 造与之关联的语法树(推导树) 定理:G为上下 文无关文法,对于α≠ε,有S =>* α,当 且仅当文法G有以α为结果的一棵语法树(推导树)
一棵语法树表示了一个句型的种种可能的(但未必 是所有的)不同推导过程,包括最左(最右)推导。但是, 一个句型是否只对应唯一的一棵语法树呢?一个句型是 否只有唯一的一个最左(最右)推导呢?
整理ppt
17
二义文法
若一个文法存在某个句子对应两棵不同的语
法树,则称这个文法是二义的。或者,若一个文
法存在某个句子有两个不同的最左(右)推导,
则称这个文法是二义的。
判定任给的一个上下文无关文法是否二义, 或它是否产生一个先天二义的上下文无关语言, 这两个问题是递归不可解的,但可以为无二义性 寻找一组充分条件
设G=( VN,VT,P,S)为一cfg,若一棵树满足下列4个条 件,则此树称作G的语法树(推导树或派生树): 1. 每个结点都有一个标记,此标记是V的一个符号 2. 根的标记是S 3. 若一结点n至少有一个它自己除外的子孙,并且有标记 A,则肯定A∈VN 4. 如果结点n有标记A,其直接子孙结点从左到右的次序 是n1,n2,…,nk,其标记分别为A1,A2,…,Ak,那么 A→A1A2,…,Ak一定是P中的一个产生式
8
根据形式语言理论,文法和识别系统间有这样的关系
0型文法(短语结构文法)的能力相当于图灵机,可以 表征任何递归可枚举集,而且任何0型语言都是递归可 枚举的
1型文法(上下文有关文法):产生式的形式为 α1Aα2→α1βα2,即只有A出现在α1和α2的上下文中时, 才允许β取代A。其识别系统是线性界限自动机。 2型文法(上下文无关文法CFG):产生式的形式为 A→β,β取代A时与A的上下文无关。其识别系统是不确 定的下推自动机。
•上下文无关文法有足够的能力描述程序设计语 言的语法结构
•语法树---句型推导的直观表示
整理ppt
11
句型推导的例子
G[E]: E→E+T|T T→T*F|F F→(E)|a
给出句型(句子) a+a*a的推导。
EE+T T+T F+T a+T a+T*F a+F*F a+a*F a+a*a
EE+T E+T*F E+T*a E+F*a E+a*a T+a*a F+a*a a+a*a
整理ppt
5
文法的类型关系
四类文法之间的逐级“包含”关系
0型文法 1型文法 2型文法 3型文法
整理ppt
6
文法和语言
0型文法产生的语言称为0型语言
1型文法或上下文有关文法( CSG )产生的语 言称为1型语言或上下文有关语言(CSL)
2型文法或上下文无关文法( CFG )产生的语 言称为2型语言或上下文无关语言( CF L )
1型文法:对任一产生式α→β,都有|β|≥|α|, 仅 仅 S→ε除外
2型文法:对任一产生式α→β,都有α∈VN
3型文法:任一产生式α→β的形式都为A→aB 或A→a,其中A∈V整N理p,pt B∈VN ,a∈VT * 2
1型文法
例:1型(上下文有关)文法
文法G[S]:S→CD
Ab→bA
C→aCA
EE+T T+T T+T*F F+T*F F+F*F
a+F*F a+F*a a+a*a整理ppt
12
规范推导与规范句型
最左(最右)推导:在推导的任何一步 αβ,其中α、β是句型,都是对α中的最 左(右)非终结符进行替换。
最右推导被称为规范推导。 由规范推导所得的句型称为规范句型。
整理ppt
13
语法树
Ba→aB
C→bCB
Bb→bB
AD→aD
C→a
BD→bD
D→b
Aa→bD
整理ppt
3
2型文法
例:2型(上下文无关)文法
文法G[S]:
S→AB A→BS|0 B→SA|1
整理ppt
4
3型文法
G[S]: S→0A|1B|0
A→0A|1B|0S
B→1B|1|0
G[I]:
I → lT I→l T → lT T → dT T→l T→d
语法树的结果: 从左到右读出叶子的标记而构成的行,谓之。
整理ppt
14
上下文无关文法的语法树
句型aabbaa的可能推导序列和语法树
例: G[S]: S→aAS A→SbA A→SS S→a A→ba
S
aA
S
S bAa
a
ba
SaASaAaaSbAaaSbbaaaabbaa SaASaSbASaabASaabbaSaabbaa SaASaS整b理AppSt aSbAaaabAaaabb1a5a