网站大量收购独家精品文档,联系QQ:2885784924

第四章 语法分析2课件.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 语法分析2课件

1 自顶向下分析;;; 例如G[S],这个文法产生偶数个a的所有串?。?其产生式如下: S→aSa|aa (4.11) 设w=aaaa$,程序从左至右读w,采用试探法,不妨先选择最长的候选式进行推导,如不行,再选用另一个候选式。分析过程如下?:???????????; 步骤 最左推导 和输入串匹配 第1步 S?aSa w=aaaa$ 第2步 ?aaSaa w=aaaa$ 第3步 ?aaaSaaa w=aaaa$ 第4步 ?aaaaSaaaa w=aaaa$ ????至此,发现分析选用的候选式不对,回退到第3步选用 S→aa进行分析。 第5步 ?aaaaaaaa w=aaaa$ 回退到第2步 第6步 ?aaaaaa w=aaaa$ 回退到第1步 第7步 ?aaaaaa w=aaaa$ 成功; ; …;;;;;;; 1 向前看符号决定了选择哪个产生式右部的文法符号串与输入符号串匹配,在程序中由向前看符号可以确定一段程序完成与某一产生式右部的匹配。 2 每一个非终结符号对应一个函数,函数的功能是根据向前看符号扩展分析树,同时用该非终结符号的儿子结点匹配输入符号串。例如,用函数type(…)和simple(…)对应上例中的非终结符号type和simple。; Void main( ) { 初始化lookahead; type(); };;; 在实际语言中,每一种 语法成分都有确定的左右界 符,为了研究问题方便,统 一以‘#’表示;(2)符号栈: 有四种情况; 出错状态;执行程序主要实现如下操作:;(3)若X∈Vn,查分析表M。 a) M[X,a]= X ? UVW 则将X弹出栈,将UVW压入 注:U在栈顶 (最左推导) b) M[X, a] = error 转出错处理 c) M[X, a] = X ? ε 则将X弹出栈,继续分析。 ;;;预测分析控制程序 置 ip指向输入符号串w#的第一个符号; REPEAT 令X为栈顶符号,a是 ip所指向的符号. IF (X?VT?{#}) IF (X= =a) { 弹出X; ip:=ip+1} ELSE error( ) ELSE IF (M[x,a]=x?y1y2…yk ) {pop(st); push(st,yk);…push(st,y1); write(x?y1y2…yk) } ELSE error( ) UNTIL (X= =#) ;;;预测分析 控制程序;栈;三. 计算 FIRST和 FOLLOW集合 ;如何构造FIRST(?) ? ? ∈(VT∪VN)* ;单个文法符号的FIRST集合构造方法 当? ∈(VT∪VN) FIRST(?) ? a)如果? ∈VT,则FIRST(?) ={?} b)如果? ∈VN,且有产生式? a…, a? VT 则把a加入到FIRST(?) ;如果? ? ?也是一个产生式则把?加入到FIRST(?) ;2 在单个文法符号的基础上,任一文法符号串的FIRST集合构造方法 当? = X1X2…Xn FIRST(?) ?;

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档