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

  • 12
  • 0
  • 约3.06万字
  • 约 85页
  • 2017-08-19 发布于广东
  • 举报

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

注意: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

文档评论(0)

1亿VIP精品文档

相关文档