- 17
- 0
- 约5.56千字
- 约 32页
- 2024-03-10 发布于四川
- 举报
第5章语法分析——自底向上分析方法5.1自底向上语法分析方法介绍5.2简单优先分析5.3LR(k)分析法5.1自底向上语法分析方法介绍
该方法基本思想:
从待分析的符号串开始,自左向右进行扫描,自下而上进行分析,通过反复查找当前句型的句柄,并使用产生式规则将找到的句柄归约为相应产生式的左部非终结符。这样,一步一步进行归约,试图逐步将输入串归约为文法的开始符号。如果可归约到文法的开始符号,则表示给定的符号串是正确的句子。否则表明符号串不是文法的句子。关键是每一步寻找当前句型的句柄。
例:有文法G[S]:SaAcBeAbAAbBd输入符号串为:abbcde,则自底向上归约过程为:表5-1所示。思想是依据一定原则预先确定文法的各个符号(包括终极符和非终极符)之间的优先关系,以此确定归约中的句柄并进行归约。5.2.1简单优先文法及其优先关系矩阵的构造简单优先分析技术是由Wirth和Weber于1966年提出的,曾用于开发AlogolW的分析器。该技术简单,规定任意的两个相继出现的文法符号A、B之间,可能有三种优先关系之一。分别是:???。定义5.1假定G是一个文法,A、B是G中任意两个符号(终极符或非终极符),则:若G中存在形如P?AB?的规则,A和B可以同时被归约,这样就说A和B有相同的优先关系,记作:A?B。若G中存在形如P?AX?的规则,且X?+B?使B先于A被归约,这样就说A的优先级低于B,记作:A?B。若G中存在形如P?XY?的规则,且X?+?A,Y?*B?,使A先于B被归约,这样就说A的优先级高于B,记作:A?B。以例5.2中文法,分析句子i*i,依据上述算法的语法分析过程如下:动作有四种可能:移入、归约、成功、报错。移入:把(s,a)的下一状态s’=goto[S,a]和输入符号压入栈内,下一输入符号变成当前输入符号;归约:指用产生式A??进行归约。若?的长度为r,则弹出栈顶r项,使栈顶状态变为sm-r,然后将(sm-r,A)的下一状态s’=goto[sm-r,A]和文法符号A压入栈内,栈顶变为(s’,A)。不改变当前输入符号。成功:语法分析成功,退出总控程序。报错:发现输入串含有错误,调用相应出错处理程序第5章语法分析——自底向上分析方法本章重点:自底向上分析原理;简单优先文法的判别与优先关系矩阵的构造;LR(k)分析法的工作过程;LR(0)分析方法;SLR(1)分析方法;几种LR分析法之间的关系。本章难点:简单优先文法的判别;LR(0)分析法;SLR(1)分析法。本章内容:5.2简单优先分析定理5.1设X1?XiXi+1?Xj?Xn是一个句型,若有Xi?Xi+1?Xi+2???Xj-1?Xj?Xj+1则Xi+1Xi+2?Xj-1Xj一定是该句型的简单短语。定义5.2若一个文法G满足下列条件,则称G为简单优先文法:文法符号集中的任意两个符号之间至多存在一种优先关系。文法中任意两个产生式均无相同右部。一个文法的全部优先关系可用矩阵来表示,称作优先关系矩阵。如何判断一个文法是否为简单优先文法,首先要确定文法中各符号之间的优先关系。例5.2已知文法G[E],判断该文法是否是简单优先文法。EE1E1E1+T|T1T1TTT*F|FF(E)|i文法符号的全部优先关系,可写成优先关系矩阵的形式,如下图:5.2.2简单优先分析算法1)根据已知文法构造相应的优先关系矩阵。2)设立符号栈S,将输入符号串“#X1X2?Xn#”从左到右依次压入符号栈S中,同时检查相邻符号Xi与Xi+1的优先关系,一旦出现关系Xi?Xi+1时停止压栈,进入下一步。3)栈顶当前符号为Xi,再从Xi开始,从右至左逐个检查栈中符号,直到某两个相
您可能关注的文档
最近下载
- 2025-2026学年重庆市江津实验中学、田家炳中学、李市中学、白沙中学等金砖六校九年级(上)期末化学模拟试卷(含答案).pdf VIP
- 阿特拉斯•科普柯 冷冻式干燥机.pdf VIP
- 重庆市九龙坡区2024-2025学年九年级上学期期末考试数学试题(含答案与解析).pdf VIP
- 江苏省盐城七校联考2025-2026学年高三上学期阶段检测语文试题及答案.docx VIP
- 浙江省杭州市富阳区2023-2024学年三年级上学期数学期末试卷.docx VIP
- TXFQC-合成橡胶消防水带.pdf VIP
- 重庆市九龙坡区渝高教育集团2024-2025学年九年级上学期期末考试物理试题(含答案).pdf VIP
- 精品解析:2024-2025学年浙江省杭州市富阳区人教版四年级上册期末考试数学试卷(原卷版).docx VIP
- 2025安徽高级档案职称综合试题及答案.docx VIP
- 社工助力乡村振兴—农村社会工作网络培训课程答案.pdf VIP
原创力文档

文档评论(0)