- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南京师范大学 杨明 教授 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)。 若u=X1X2…Xn,则First(u)如何求? 4.3预测分析表的生成 对所有非终结符号U计算Follow(U),可重复下列步骤 直到再无终结符号或#能被添入到任何Follow集合中。 1)# Follow(Z),Z是文法的识别符号; 2)如果存在规则U::=xWy,则First(y)中除 外的一切符号都属于Follow(W),其中W VN; 3)如果存在规则U::=xW或U::=xWy,其中First(y)包含 (即,y=* ),则Follow(U)中的一切符号都属于Follow(W),其中W VN。 4.3构造预测分析表 假定存在规则U::=u。若a First(u),则每当栈顶元素 为U而当前输入符号为a时,识别程序就要把U展开成u, 因此分析表内有元素A[U][a]=‘U::=u’。 当u=* 的情况,当输入符号a Follow(U),或者 已经达到输入符号串的右端标志符号#,且# Follow(U) ,则A[U][a]=‘U::=u’或A[U][#]=‘U::=u’。 对给定文法G构造预测分析表步骤如下: Step1.对文法中的每个规则U::=u,执行Step2和Step3; Step2.对每个终结符号a First(u),让A[U][a]=‘U::=u’; Step3.如果 First(u),则对Follow(U)中的每个终结 符号b或#,让A[U][b]=‘U::=u’或A[U][#]=‘U::=u’; Step4.把A的每个未定义元素置为Error(用空白表示)。 4.3相关结论 定义4.3 如果某文法,其预测分析表无多重定义的元 素,则称该文法为LL(1)文法。 定理4.1 一个文法G是LL(1)的,当且仅当对于G的每 个非终结符号U的任何两个不同的重写规则U::=x与U:: =y,下面的条件成立。 条件1: 条件2: 条件3: 典型例题解析(1) 例1:试证明:任何具有左递归性的上下文无关均非LL(1)文法。 典型例题解析(2) 例2:试构造下列文法的预测分析表,并给出识别句子i+i*i/i的过程。是LL(1)文法吗? E::=TE1 E1::=AT E1 | T::=FT1 T1::=MFT1| F::=(E)|i A::=+|- M::=*|/ 例2的First和Follow 典型例题解析(3) 例3:试证明任何LL(1)文法均为无二义性。 典型例题解析 例4:p::={d;X} X::=d;X X::=sY Y::=;sY Y::= 典型例题解析 典型例题解析(4) 典型例题解析(5) 典型例题解析(6) 典型例题解析(7) * 证明:因为是左递归文法,所以必存在左递归的非终结符号A使得A::=F|G,且F=* AL; 故First(AL)与First(G)的交不空,则不是LL(1)文法。 产生式 First Follow E::=TE1 {(,i) { ),#} E1::=ATE1 E1::= {+,-} { } { ),#} T::=
您可能关注的文档
最近下载
- 重庆轨道交通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)