山东理工大学计算机科学与技术学院编译原理课件第三章 文法与语言.ppt
* 3.6.1 自上而下分析方法 p43 从开始符号出发,构造最左推导的过程。 从树根出发,利用推导生成语法树的过程。 问题:选用哪个产生式进行推导? 例如 文法G[S]: (1) S→cAd (2)A→ab (3)A→a 输入串w=cabd S c A d a b * 3.6.2 自下而上分析方法 p43 从输入串出发,进行最左归约,直到开始符号。 从叶子结点出发,修剪语法树直至只剩开始符。 问题:如何寻找可归约串? 例如 文法G[S]: (1) S→cAd (2)A→ab (3)A→a 输入串w=cabd S A c a b d * 3.6.3 句型分析的有关问题 p44 短语 直接短语(简单短语) 句柄 章节目录 * 本章练习 1.巴科斯—瑙尔范式(EBNF)是一种广泛采用的 工具。 A 描述规则 B 描述语言 C 描述文法 D 描述句子 2.由文法的开始符号经0步或多步推导产生的文法符号序列 是 。 A 短语 B 句柄 C 句型 D 句子 * 本章练习(续) 3. 如果一个文法满足 ,则称该文法是二义文法。 A 文法的某一个句子存在两棵(包括两棵)以上不同的语法树 B 文法中存在某个句子,有两个(包括两个)以上不同的最右(最左)推导 C 文法中存在某个句子,有两个(包括两个)以上不同的最右(最左)归约 D 在进行归约时,文法的某些规范句型的句柄不惟一 4. 一个上下文无关文法G包括四个组成部分:一个表示语言的基本符号的 集合,一个表示语言的语法成分的 集合,一个 ,以及一个 集合。 A 字符串 B 字母数字串 C 产生式 D 结束符号 E 开始符号 F 文法 G 非终结符号 H终结符号 H G E C * 本章练习(续) 5. 请给出描述语言L={a2m+1bm+1| m>=0}∪{a2mbm+2 | m>=0}的文法 6. 文法G[S]: S→aSPQ|abQ答案:G[Z]:Z→aaZb|ab|bb QP→PQ bP→bb bQ→bc cQ→cc 它是乔姆斯基哪一型文法?它生成的语言是什么? 答:G[Z]:Z→aaZb|ab|bb 从规则形式上可以看出,文法G是乔姆斯基1型文法,即上下文有关文法。它生成的语言是L={anbncn|n>=1}。 答:从规则形式上可以看出,文法G是乔姆斯基1型文法,即上下文有关文法。它生成的语言是L={anbncn|n>=1}。 章节目录 * 作业 p48 2、4、5 9、10、11、13、14 章节目录 * * 句型 p36 设 G 是一个文法,S 是开始符号, 若有 S =*>α,则称是α文法G的一个句型 G(E):E→E + E|E * E|( E )|i 例如 E=+>i*E,则i*E是文法G(E)的一个句型 E=+>i*i,则i*i是文法G(E)的一个句型 句子 完全由终结符组成的句型 例如 E=+>i*i,则i*i是文法G(E)的一个句子 合法句子的生成 从S出发反复推导,每次得到一个句型,最终得到句子 * 例: 文法G(E)为: E → E + E | E * E | ( E ) | i 表达式 (i * i + i) 的生成 E => ( E ) => ( E + E ) => ( E * E + E ) => ( i * E + E ) => ( i * i + E ) => ( i * i + i ) 句型和句子生成举例 句型 句子 * 例: 文法G[E]为: E → E + E | E * E | ( E ) | i 表达式 i + i * i 的生成 BEGIN E => E + E => i + E => i + E * E => i + i * E => i + i * i 句型和句子生成练习 句型 句子 * 文法G描述的语言 p36 由文法G产生的所有句子的集合 L(G)={α|S=+>α &α∈VT*} 文法G的作用 以有限的规则描述无限的语言现象 有限 产生式集合 终结符集合 非终结符集合 无限 由开始符号导