编译原理——编译程序构造实践教程 教学课件 作者 张幸儿 戴新宇 501编译程序构造与实践教程第五章.ppt

编译原理——编译程序构造实践教程 教学课件 作者 张幸儿 戴新宇 501编译程序构造与实践教程第五章.ppt

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
注意:C语言中结构类型变量的赋值方式。 赋值语句: 分析栈[top]={ 初始状态0, 结点序号0 }; 实际上需由下列两个赋值语句实现: 分析栈[top].状态=初始状态0; 分析栈[top]. 结点序号=结点序号0; 其他的类似。 4. LR(1)分析表的构造 (1) 思路 为了构造LR(1)分析表,首先需理解状态是什么、状态转换的含义又是什么。在LR(1)分析技术中,状态对应于LR(1)项所组成的集合,即,LR(1)项集。如前所述,LR(1)项呈下形: [Up?Xp1Xp2?Xpj?Xpj+1?Xpnp; a] 它意指正按规则p: Up::= Xp1Xp2?Xpnp进行归约,当前已处理到Xpj,即尚未被扫描的输入符号串部分要(广义)归约到Xpj+1。当输入符号串已归约到Up时,则Up在句型中的后继符号将是符号a。 现在看LR(1)项[E?E+.T;a],如果分析过程正按规则1: E::=E+T归约,输入符号串左边部分已归约到E+, 当前待扫描的输入符号串部分正待归约到非终结符号T。由于T::=T*F与T::=F,不言而喻,要归约到T必须先归约到T*F或F。而如果要归约到F,又必须先(广义)归约到(E)或i,因此LR(1)项[T?.T*F; a]与[T?.F; a]都同[E?E+.T; a]紧密相关。而对于其中的[T?.T*F; a]必须把尚待扫描的输入符号串部分归约成T*F,即,先归约成T,这时句型中紧随T的符号是*,于是有[T?.T*F; *]。类似地,相关的又有[T?.F; *],为归约成F,又有[F?.(E); *]与[F?.i; *]等。把所有这样的相关 LR(1) 项放入一个集合中,形成LR(1)项集。 让LR(1)项集对应于状态,状态之间的转换实质上对应于项集的后继关系,引进后继项的概念。 如果有一个LR(1)项:[U?u.Av; a],其中A?VN?VT,则其后继项是[U?uA.v; a],后继项是把项中圆点右移一个符号位置所得的项。从句型识别的角度看,其含义是明显的,即,当扫描过的输入符号部分已与规则右部的u相匹配(即归约成u)时,应期望后继的那些输入符号与u的后继符号A相匹配。因此[U?u.Av; a]所在项集对应的状态,将转换到其后继项所在项集(即后继项集)对应的状态。 如何确切地构造各个LR(1)项集?通常,从初始项出发构造初始项集,从初始项集开始逐个构造后继项集,再从后继项集构造后继项集,最终构造出一切LR(1)项集。让各个项集对应于状态,后继关系对应于状态转换关系,然后填LR(1)分析表,即得所求。 5. 为二义性文法构造LR分析表 LR(1)文法必不是二义性的 。为一个语言设计的文法,不一定是无二义性的,因此必须也能为二义性文法构造LR分析表。其基本思想是:当分析表构造过程中,发现有移入-归约冲突时,利用运算符的优先级与结合性等信息,解决冲突,确定分析表元素,使得LR分析表元素全为惟一的,从而 对于二义性文法也能构造LR分析表。 算符优先矩阵:合并了一切三类算符优先关系的矩阵。 例 G[E]:E::=E+T|T T::=T*F|F F::=(E)|i + < i、+ < *、* < (、( < +、+ > +、+ < ( 算符优先矩阵: + * ( ) i + > < < > < * > >< > < ( < << = < ) > > > i > > > (2) 算符优先文法 定义:若一个算符文法,其任何两个终结符号之间至多只有一种算符优先关系成立,则该算符文法称为算符优先文法。 例 G[E]:E::=E+T|T T::=T*F|F F::=(E)|i 是算符优先文法。 + * ( ) i + > < < > < * > >< > < ( < << = < ) > > > i > > > 5.3.2 应用算符优先分析技术句型分析 1. 质短语 质短语:句型中至少包含一个终结符号,但不包含其他任何质短语的短语。 如文法 G[E]:E::=E+T|T T::=T*F|F F::=(E)|i 的句型E+T*F*i+i中的T*F和i

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档