- 48
- 0
- 约1.28万字
- 约 76页
- 2016-08-01 发布于湖北
- 举报
1 1 一、算符优先分析法存在的问题 强调算符之间的优先关系的唯一性,这使得它的适应面比较窄;算法在发现最左素短语的尾时,需要返回来寻找对应的最左素短语头。 二、LR(k)分析法 L :从左到右扫描输入符号, R :最右推导对应的最左归约, k :超前读入k个符号,用以确定归约所用的规则 四、LR分析表 LR分析表包括action[s,a]、goto[s,X]表两部分,LR(0)、SLR(1)、LR(1)、LALR (1)将以不同的原则构造这张分析表。构造表时约定:用sn表示将符号a、状态n压入栈;用rn表示用第n个产生式进行归约。 识别活前缀的有穷自动机 例:G[S]:S→aAcBe[1] A→Ab[2] A→b[3] B→d[4] (S→S[0]) 对句子abbcde,其可归前缀为:ab[3],aAb[2],aAcd[4],aAcBe[1],S[0] 对它们分别构造有穷自动机,然后,通过加入一开始状态X和一些ε弧,将各可归前缀的有穷自动机合并成一个有穷自动机NFA。其中由S[0]得到的终态称为句子识别状态,用*标记。 例: 设文法G[E]的产生式为 G?: (0) E? ? E (4) T?F (1) E?E+T (5) F? (E) (2) E?T (6) F? id (3) T?T*F 1.文法G‘: S’ ? SS ? rD D? D,iD ? i (1)该文法是SLR(1)的吗? (2)若是请构造它的分析表 该二义性文法的LR分析表如表7.17所示: 现用表7.17对表达式的输入串i+i*i#分析过程如表7.18所示: 5.9* 语法分析程序的自动构造工具YACC YACC(Yet Another Compiler -Compiler)是20世纪 70年代由Johnson等人在美国Bell实验室研制开发的一 个基于LALR(1)的语法分析程序的构造工具 YACC接受一个用BNF描述的上下文无关语言的语法规 则,且语法满足LALR(1)文法的要求,据其自动生 成相应的LALR(1)分析表,并与它的驱动程序和分 析栈结合构成一个LALR(1)分析器yyparse YACC仅是一个语法分析器的自动生成器,相应的语义 处理程序还需人工编写 I0 I1 I6 I9 E + T * to I7 F to I3 ( to I4 id to I5 I2 I7 I10 T * F ( to I4 id to I5 I3 F I4 I8 I11 ( E ) + to I6 T to I4 F to I5 I5 id id ( 识别文法G的活前缀的 DFA I1:E′?E? I2: E ?T ? I9: E ?E+T ? E ?E?+T T ?T ? *F T ?T ? *F I={X ?? ?b ?, A ?? ?, B ?? ?} 若{b}?FOLLOW(A) ? FOLLOW(B)=? 则,面对当前读入符号a,状态I的解决方法: 1. 若a=b,则移进。 2. 若a≠b, 且a? FOLLOW(A),则用A?? 进行归约。 3. 若a≠b, 且a? FOLLOW(B),则用B??进行归约。 4. 此外,报错。 这种解决方法是比较简单的,因此称作SLR 分析,由此构造的分析表,称作SLR分析表。 对于表达式文法的例子,FOLLOW集如下: I1:{ E’?E? E?E?+T} I2:{E?T? T ?T ? *F} I9:{E ?E+T ? T ?T ?*F} I1:FOLLOW(E’)∩{+}=Φ I2: FOLLOW(E)∩{*}=Φ I9: FOLLOW(E)∩{*}=Φ ∴可用SLR(1)方法实现 #,),+,* F #,),+,* T #,),+ E # E‘ FOLLOW集 下面给出SLR(1)分析器用表5.5.1的SLR(1)分析表对符 号串i+i*i#进行分析时栈的变化过程如表5.5 例如文法G`为: (0)S` S (1)S aA d (2)S bAc (3)S aec (4)S bed (5)A e 首先用S` ·S作为初态集的项目,然后用闭包函数 和转换函数构造识别方法G`的活前缀的有限自动机DFA,如 图7.11所示,可以发现在项目集I5和I7中存在移进和归约冲 突 5.6 LR(1)分析 若[
您可能关注的文档
- 第五章现代主义设计分析.ppt
- 电焊基础介绍分析.ppt
- 第五章相交线和平行线单元复习分析.ppt
- 第五章相交线与平行线复习分析.ppt
- 第五章相交线与平行线复习课件分析.ppt
- 电和火很危险1分析.ppt
- 电弧的产生及熄灭分析.ppt
- 第五章项目执行分析.ppt
- 第五章项目质量改进分析.ppt
- 电弧焊焊接方法与设备使用分析.ppt
- 初中九年级英语Unit 13环境保护主题听说整合教学设计.docx
- 85分式方程及其解法课件人教版数学八年级上册.pptx
- 基于核心素养的博物馆主题说明文写作教学设计与实施——以九年级英语为例.docx
- 53一次函数的意义第课时课件浙教版八年级数学上册.pptx
- 大单元视角下“人民民主政权的巩固”与历史关键能力进阶教学设计——以初中历史中考复习课为例.docx
- 五年级数学下册典型例题解析人教版期末重点攻克.pptx
- 小学四年级信息技术《智启信息时代:查找网上信息的基石》教学设计及反思.docx
- 大疆域·大人口·大战略:中国国家空间认知的初步建构.docx
- 人教版(一年级起点)小学英语四年级上册Revision 1 Lesson 2教学设计.docx
- 大单元结构化复习:旧民主主义革命时期(18401919)的内忧外患与救亡图存.docx
原创力文档

文档评论(0)