语法分析自下而上分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

b. 分析树 (分析过程可用一棵树表示) 等同语法树:采用规范归约方法(句柄归约) 自下而上分析过程,每步归约都可画一棵子树,随着 归约的完成,这些子树被连成一棵统一的树称分析树. 如移进归约过程 A A B S b A b 第3步 5步 8步 b b d a A A c B e b d 第10步
b. 规范归约(最左归约)
设 是文法G的一个句子,我们称序列n, n1, …, 0是的一个规范归约,如果此序列满足: (1) n= (2) 0 为文法开始符,即0 = S (3) 对任何i(0 < i n), i-1是从i经把句柄替换 为相应产生式的左部符号而得. c. 规范推导(最右推导) 规范推导所得句型称规范句型 d. 规范归约是规范推导的逆过程
b为句柄(剪去)
(3) 符号栈的使用与分析树的表示
a. 分析器工作过程(使用符号栈) P88 初始: 符号栈 输入串 # # 过程:移进、归约 //反复进行 终态:符号栈 输入串 #S # //S表示开始符号 总之,语法分析对符号栈的使用有四类操作:“移进”、 “归约”、“接受”和“出错处理”。 移进----由输入串吃进一个符号到栈中; 归约----栈顶可归约串用适当符号去替换; 接受----宣布分析成功。可看作特殊归约形式
b.
分析树 自学
第九讲 语法分析—自下而上分析
1 概念与基本问题 • 自下而上分析法 ---- 从输入串开始,逐步进行归约, 直到归到文法的开始符;或者说,从语法树的末端开 始,步步向上“归约”,直到根结点。 算符优先分析法 句柄归约法 • 自上而下 递归下降分析法 预测分析
(1)归约与分析树
a.
归约 “移进—归约” ---- 将输入符号一个个地移进到栈 里,当栈顶形成某个产生式的一个候选式时,即把 栈顶的这一部分替换为该产生式的左部符号 E.G. 设有文法G: (1) S -> aAcBe (2) A -> b (3) A -> Ab (4) B -> d 希望将输入串abbcde归约到S. 解释P84图5.1的归约过程 关键概念: 引进可归约串概念: 句柄 最左素短语
(2) 规范归约 a. 短语 (P85) 例子见P85wk.baidu.com设G是一文法,S是文法的开始符,若是G的 一个句型,如果 S *=> A 且 A +=> , 则说为 相对于非终结符A的短语. 特别地, 若 A => , 则说 是句型相对于规则 A-> 的直接短语. 一个句型的最左直接短语称该句 型的句柄.
e. 句柄和归约可通过修剪语法树而得(P87) 一个句型的句柄是这个句型的语法树中最左那棵 子树端末结的自左至右排列.该子树只有(而且必须有) 父子两代, 没有第三代. S S S S a A c B e A b b d a A c B e A b d 其余类推 a A c B e a A c B e d S
相关文档
最新文档