编译原理 5章.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 5章

第5章 自上而下语法分析 编译原理 陈炬桦 isscjh@mail.sysu.edu.cn 5.2 消除左递归方法 为了避免无限循环,自上而下分析法的文法不应含有左递归。有则消除。 文法的左递归性 直接左递归:U→Ux | y 间接左递归:U Ux 例:G22[A]: A →[B B →X] | BA X →Xa | Xb | a | b 用扩展的BNF表示法消除左递归 ① { } 零次或多次, m~n次 ② [ ] 零次或一次,可选项。 ③ ( ) 描述提取公因子。 例:G[标识符]: 标识符 →字母 | 标识符 字母 | 标识符 数字 数字 →0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 字母 →a|b|c|e|f|g|h|i|j|k|m|n|o|p|q|r|s|t|u|v|w|x|y|z 显然标识符产生式有左递归,可改写为 标识符 →字母 { 字母 | 数字} 直接改写法 U→Ux | y = U→yU’, U’→ xU’ | ε U→Ux1 | Ux2… | Uxm | y1 | y2 … yn = U→U(x1 | x2… | xm) | (y1 | y2 … yn) = U→ (y1 | y2 … yn)U’ U’→ (x1 | x2… | xm)U’ | ε 直接改写法举例 例:G22[A]: A →[B B →X] | BA X →Xa | Xb | a | b 改写为: G22[A]: A →[B B →X]B’ B’ → AB’|ε X → aX’ | bX’ X’ → aX’ | bX’ | ε 消除左递归算法 ① 将VN符号整理成序 Uk,k=1,…,n ② for i:=1 to n do begin j:=i+1 to n do 替换 Ui→Ujα中的Uj 消除Ui产生式中的直接左递归 end ③ 化简,删除多余产生式 消除左递归算法举例 例5.4 设文法 A→Bcd B →Ce | f C →Ab | c 变换: B →Ce | f = B →Abe | ce | f A→Bcd = A→ Abecd | cecd | fcd 消除左递归 A→ cecdA’ | fcdA’ A’→becd A’|ε B →Abe | ce | f C →Ab | c 删除多余产生式 5.3 LL(k)文法 最左推导 从左到右扫描输入串 向前查看K(≥1)个符号,选择产生式 本课程只讨论LL(1) LL(1)文法的判断条件 α∈(VN∪VT)* FIRST(α)={a | α aβ,a∈VT,β∈(VN∪VT)*} U∈VN FOLLOW(U)= {b | S xUby,b∈VT,x,y∈ (VN∪VT)*} 定义5.1 文法G是LL(1): U→ x1 | x2… | xn 如果 FIRST(xi)∩FIRST(xj)=Φ 当ε∈FIRST(xi)时,FIRST(xi)∩FOLLOW(U)=Φ 集合FIRST、FOLLOW的构造 FIRST(α)的构造 ① α∈VT,FIRST(α)= {α} ② α∈VN,α→a…,a ∈FIRST(α); α→ε,ε∈FIRST(α) ③ α∈VN,α→XY…, FIRST(X)-{ε} FIRST(α), 若X ε,则FIRST(Y)-{ε} FIRST(α) 集合FIRST、FOLLOW的构造 FOLLOW(U)的构造 ① U是开始符号,则#∈ FOLLOW(U) ② A→xUy, 则FIRST(y)-{ε} FOLLOW(U) ③ A→xUy,y ε, (包括A→xU) 则FOLLOW(A) FOLLOW(U) 构造FIRST、FOLLOW举例 例G27[S] S→A A→BA’ A’→iBA’|ε B→CB’ B’→+CB’| ε C→)A*|( FIRST FOL

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档