- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LL分析方法自顶向下分析.ppt
LL分析方法—自顶向下分析 LL(1)是LL(k)的特例,其中的k则表示向前看k个符号。 LL(1)方法和递归下降法属于同一级别的自顶向下分析法,但有一些区别. 递归下降法对每个非终极符产生子程序,而LL(1)方法则产生LL分析表; 递归下降法能判断每个产生式的结束,而LL(1)方法则不能; 递归下降法分析法不用符号栈,而LL(1)方法则用符号栈。 LL(1)分析方法的条件 对于任一非终极符A,其任意两个产生式A→?和A→?,都要满足下面条件: Predict(A→?) ? Predict(A→?)= ? 满足这一条件的文法称为LL(1)文法。 LL(1)分析例 文法G[A]: A ? a B c[1] B ? d [2]| b B[3] 输入串:abbdc 分析过程: (A,abbdc)?1(cBa,abbdc) ? (cB,bbdc) ?3(cBb,bbdc) ?(cB,bdc) ?3 (cBb,bdc) ?(cB,dc) ?2 (cd,dc) ?(c,c) ?( , ) LL(1)分析的动作 替换:当X1?VN时选相应候选式?去替换X1。 匹配:当X1?VT时它与Y1进行匹配,其结果可能成功,也可能失败,如果成功则去掉X1和Y1,否则报错。 接受:当格局为(空,空)时报分析成功。 报错:出错后,停止分析。 LL(1)分析表 T:VN ? VT → P ? { Error } T(A,t)=A→? 若t?Predict( A→? ) T(A,t)=Error 否则 其中P表示所有产生式的集合 LL(1)分析的驱动器 LL_Driver [1] 初始化: Stack :=empty;Push(S); [2] 读下一个输入符: Read(a); [3]若当前格局是( empty, # ),则成功结束; 否则转下; [4]设当前格局为(..... X, a.....),则 ?若 X?VT X=a 则{Pop(1);Read(a);goto [3] } ?若 X?VT X?a 则 Error; ?若 X?VN,则: if T(X,a)=X→Y1Y2Yn then {Pop(1);Push(Yn ,.....,Y1);goto[3]} else Error LL分析实例 文法G: If-then-else语句 BL语言{ [i ]j | i =j=0 }不是LL文法 条件语句的产生式是无法变换成LL[1]型 产生式的。 * * Stack Input a ? 栈为空情形的处理 ? X? VT情形的处理 ? X ? VN情形的处理 X LL[1]分析表 E? ? T E’[1] E’ ? + T E’[2] | ?[3] T ? F T’[4] T’ ? * F T’[5] | ?[6] F ? id[7] | ( E )[8] 符号串 i + i * i # 的LL[1]分析过程: Predict( [1] ) = first(TE’) = { id , ( } Predict( [2] ) = first(+TE’) = { + } Predict( [3] ) = follow(E’) = { ) , # } Predict( [4] ) = first(FT’) = { id , ( } Predict( [5] ) = first(*FT’) = { * } Predict( [6] ) = follow(T’) = { + , ) , # } Predict( [7] ) = first(id) = { id } Predict( [8] ) = first((E)) = { ( } 分析栈S 输入流T 矩阵元素 # E i + i * i # LL[ E ,i ] = [1] # E’ T i + i * i # LL [ T ,i ] = [4] # E’ T’ F i + i * i # LL [ F ,i ] = [7] # E’ T’ i
您可能关注的文档
- GPS基本介绍及操作.ppt
- GPS接收机及其应用rtk.ppt
- GPS测量技术与外业观测.ppt
- Grammar_in_unit_过去分词作宾补.ppt
- Grammaticalization语法化.ppt
- grassrootNGOandcivilsocietyfieldofvision.ppt
- GRE协议Tunnel.ppt
- GSM频率范围.ppt
- GX数据业务性能分析.ppt
- G__通信电子线路电子教案_CH反馈控制电路.ppt
- 2024年至2025年黑龙江省齐齐哈尔市公开招聘警务辅助人员辅警结构化面试高频必考题库一卷含答案.docx
- 2022年至2023年广西壮族区梧州市公开招聘警务辅助人员辅警结构化面试高频必考题库一卷含答案.docx
- 2024年至2025年江苏省宿迁市公开招聘警务辅助人员辅警结构化面试能力提升题库二含答案.docx
- 2020年至2021年山东省济宁市公开招聘警务辅助人员辅警结构化面试复习训练题库二含答案.docx
- 2024年至2025年广东省陆丰市公开招聘警务辅助人员辅警结构化面试复习训练题库一含答案.docx
- 2024年至2025年辽宁省辽阳市公开招聘警务辅助人员辅警结构化面试复习训练题库一含答案.docx
- 2022年至2023年陕西省商洛市公开招聘警务辅助人员辅警结构化面试精选模拟题库二含答案.docx
- 2020年至2021年甘肃省陇南市公开招聘警务辅助人员辅警结构化面试高频必考题库一卷含答案.docx
- 2024年至2025年吉林省白山市公开招聘警务辅助人员辅警结构化面试历年模拟题库一含答案.docx
- 2020年至2021年山西省大同市公开招聘警务辅助人员辅警结构化面试复习训练题库二含答案.docx
文档评论(0)