第二章 高级语言及其文法 2.1 语言概述 2.2 基本定义 2.3 文法的定义 2.4 文法的分类 2.5 CFG的语法树 2.6 CFG的二义性.ppt

第二章 高级语言及其文法 2.1 语言概述 2.2 基本定义 2.3 文法的定义 2.4 文法的分类 2.5 CFG的语法树 2.6 CFG的二义性.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 高级语言及其文法 句子的派生(推导)-从产生语言的角度 ?赋值语句? ? ?左部量? = ?右部表达式? ? ?简单变量? = ?右部表达式? ? a = ?右部表达式? ? a = ?简单变量?运算符简单变量 ? a = a 运算符简单变量 ? a = a + 简单变量 ? a = a + a 句子的归约 ---从识别语言的角度 a = a + a ? a = a + 简单变量 ? a = a 运算符简单变量 ? a = ?简单变量?运算符简单变量 ? a = ?右部表达式? ? ?简单变量? = ?右部表达式? ? ?左部量? = ?右部表达式? ? ?赋值语句? 派生与识别均根据规则 句型与句子 定义2.20 设文法G=(V,T,P,S),对于?α∈(V∪T)*,如果S α,则称α是G产生的一个句型(sentential form),简称为句型 对于任意文法G=(V,T,P,S),G产生的句子和句型的区别在于句子满足w∈T*,而句型满足α∈(V∪T)* 句型与句子 句子w是从S开始,在G中可以推导出来的终结符号行,它不含语法变量; 句型α是从S开始,在G中可以推导出来的符号行,它可能含有语法变量; 句子一定是句型;但句型不一定是句子 非上下文无关的语言结构 程序设计语言的有些语言结构不能用上下文无关文法描述 例2.9 L1={wcw|w∈{a,b}+} aabcaab就是L1的一个句子 这个语言是检查程序中标识符的声明应先于引用的抽象 非上下文无关的语言结构 ?例2.10 L2={anbmcndm|n,m≥0} 它是检查过程声明的形参个数和过程引用的参数个数是否一致问题的抽象 * * 用子树解释短语,直接短语,句柄 短语:一棵子树的所有叶子自左至右排列起来形成一个相对于子树根的短语。 直接短语:仅有父子两代的一棵子树,它的 所有叶子自左至右排列起来所形成的符号串。 句柄:一个句型的分析树中最左那棵只有父子两代的子树的所有叶子的自左至右排列。 例如,对表达式文法G[E]和句子a1+a2*a3,挑选出推导过程中产生的句型中的短语,直接短语,句柄 * * E ?E+T ?T+T ?F+T ? a1+T ? a1+T*F ? a1+F * F ? a1+a2 *F E+T T,T+T F,F+T a1, a1+T a1, T*F, a1+T*F a1, F,F*F, a1+F*F a1, a2,a1+ a2 *F, a2 *F a1, a2, a3, a2 * a3 a1+ a2 *a3 E E + T T F a1 T * F F a2 a3 ?a1+a2 *a3 短语 * * 例 短语与分析树 (文法E→E+E|E*E|(E)|id ) E E + E id E E * id id 一棵子树的叶子! * * id+id*id的不同推导E→E+E|E*E|(E)|id E ? E+E ? id+E ? id+E*E ? id+id*E ? id+id*id E ? E+E ? E+E*E ? E+E*id ? E+id*id ? id+id*id E ? E*E ? E+E*E ? E+id*E ? id+id*E ? id+id*id 不做限制 句型 (sentential Form) (归约) E ?* id+id*id 施于最右变量 右句型/规范句型 (canonical ~) (最左/规范归约) E ?+ id+id*id 施于最左变量 左句型(left-~) (最右归约) E?5 id+id*id * * 最左推导与最右推导 最左推导(Left-most Derivation) 每次推导都施加在句型的最左边的语法变量上。——与最右归约对应 最右推导(Right-most Derivation) 每次推导都施加在句型的最右边的语法变量上。——与最左归约(规范规约)对应的规范(Canonical)句型 * * 2.6 CFG的二义性 对同一句子存在两棵语法分析树 在理论上不可判定 E E * E id E E + id id E E + E E E id * id id * * 1. 描述一个句子的文法不是唯一的; 2. 对于一个句子的分析应是唯一的。 考虑表达式下面的文法 G[E],其产生式如下: E?E+E?E*E? (E)

您可能关注的文档

文档评论(0)

flyben + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档