- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南京师范大学 杨明 教授 4.3 预测分析技术 预测分析技术与预测识别程序 -递归下降识别程序由一组(递归)子程序组成,因而递归子程序的功效决定了这类识别程序的功效。 -预测分析技术为另一种更为有效的分析技术。它由一张分析表和一个栈联合进行控制来实现递归下降分析技术。其中,分析表为一个二维数组,其第一维为非终结符,第二维为终结符号或输入结束标志符号,其值为一个规则或出错标志;栈存放分析过程中动态产生的文法符号序列。 -预测识别程序是应用预测分析技术实现的识别程序,它的输入是将要识别的符号串,后跟以标志符号#。 4.3预测分析过程 void main() { push(#);push(Z);/*Z为文法识别符号*/ a=下一个符号; flag=true; while(flag){ X=top(S); /*栈顶元素*/ if(X VT {#}) if(X==a) if(a==#)flag=false; else{pop(S);a=下一个符号;} else 出错处理; else if(A[X][a]==‘X::=x1x2…xk’){pop(S);push(‘xk…x1’);打印规则X::=x1x2…xk;} else 出错处理; } //while stop; /*success*/ } 4.3预测分析的关键之一 栈顶符号X遇到当前输入符号a如何决定相应的动作? 分以下四种情况: 1)如果X=a=#,则分析成功结束; 2)如果X=a #,则从栈中上退去X,并把输入指针推进到指向下一个输入符号; 3)如果X为一个非终结符号,且分析表A的元素A[X][a] =‘X::=x1x2…xk’,则把栈顶的X替换为xk…x2x1; 4)在所有其它情况,即X VT且X a,或者X VN且A[X][a]= error(空白元素),调用一个出错处理程序,使得分析能继续下去或结束。 4.3预测分析的举例 下列文法的分析表为表4-1,对输入符号串i+i*i分析见表4-2。 E::=TE1 E1::=+T E1 | T::=FT1 T1::=*FT1| F::=(E)|i 表4-1 4.3预测分析的举例 表4-2 4.3预测分析表的生成 分析 A[E][i]=‘E::=TE1’ 表明E= TE1 =+ i…,即i是相对于E的短语的头终结符号。 A[E1][+]=‘E1::=+TE1’ 表明E1= +TE1=+ +…,即+是相对于E1的短语的头终结符号。 因此,若U=+ T…且T为终结符号,则A[U][T]为一个重 写规则。 特别注意的是:若U::=U1…Un,U1=* ,则相对于U的短语的头终结符号集合包括了相对于U2的短语的头终结符号,这里U2是U1的后继符号。 4.3预测分析表的生成 分析 定义4.1 First(u)={T|u=* T…,T为终结符号},特别地,如果u=* 定义4.2 Follow(U)={T|Z=* …UT…, 特别地, 如果Z=*…U,则规定 可以看出,对于符号串u,First(u)是相对于u的一切可能的字的头终结符号所组成的符号,也可包含 ,而对于一切非终结符号U,Follow(U)是在出现U的一切句型中紧接U之后的终结符号所组成的集合,可能还包括#。 构造First(u)与Follow(U) 1) 4.3预测分析表的生成 2) 3) 4)如果X VN,并存在规则X::=T…,T VT,则把T添入First(X),如果存在规则X::= ,则将其添入; 5)如果存在规则X::=X1X2…Xk,则对于满足下列条件的一切(i=1,…,k),把First(Xi)中的每一个非 符号添入 First(X)。其前提:X1,X2,…,Xi-1都是非终结符号,且First(Xj)包括 (j=1,..,i-1)。特别地,如 First(Xj),j=1,…,k,则把 添入First(X)。
您可能关注的文档
最近下载
- 重庆轨道交通15号线二期工程曾家站至九曲河东站报告书.pdf
- 肉牛的养殖技术课件.ppt
- 食堂蔬菜、水果、肉蛋水产类、粮油副食调料类等食材采购、配送服务投标书.docx
- 中国政治制度史.ppt
- 基于MATLABSimulink的电力电子、电机控制系统建模与仿真.docx VIP
- 部编版五年级《语文》上册习作《推荐一本书》精品课件.pptx
- 绍兴市柯桥区各级文物保护单位一览表(2023年版).docx VIP
- ROS机器人考试测试题1.pdf VIP
- 西南交通大学2021-2022学年第1学期《商业银行经营管理》期末考试试卷(A卷)及标准答案.docx
- 软件体系结构描述语言—UML综合实验.doc VIP
文档评论(0)