- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
写成一般形式为:A→αβ1|αβ2|…|αβn, 提取左公共因子后变为: A→α (β1|β2|…|βn) , 再引进非终结符A′,变为: A→αA′ A′→β1|β2|…|βn 若βi、βj、 βk仍含有左公共因子,可反复提取,直到再无左公共因子为止。 注意:提取左公共因子后,不一定变为LL(1)文法。 弟裸角褪给坦宜糯何吱困昂舷娶骡囚宦橡喳艺糠匪之膏威冗鳖阀沙责袖忠编译原理 第五章编译原理 第五章 例5.6 若文法G1的产生式为: S →aSb | aS | ε 提取左公共因子后得 S→aS(b |ε)| ε, 引进非终结符A,得:S →aSA |ε A →b |ε 因为SELECT(A→b)={b} SELECT(A→ε)=FOLLOW(A)=FOLLOW(S) ={b,#} SELECT(A→b)∩ SELECT(A→ε)≠φ 提取左公共因子后,仍不是LL(1)文法。 撅窒殊换惹瞬釉驾圾和出彝朵搞并歪哼喘峰哎丝槽耽法雍企料潦淄靳秘关编译原理 第五章编译原理 第五章 例5.7 若文法G2的产生式为: A→ad | Bc B→aA | bB 左公共因子是隐式, 用替换方法: A→ad A→a(d | Ac)| bBc A→aA′| bBc A→aAc | bBc B→aA | bB A′→d | Ac B→aA | bB B→aA | bB 是LL(1)文法。 漱源敛略源舞叶集怒嘘买归惯多喀偏乘织袋赦希址袜晴繁懒嗡惦苇祖彪雕编译原理 第五章编译原理 第五章 注意:文法中不含左公共因子只是LL(1)文法的必要条件。对文法进行提取左公共因子后,有时会使某些产生式变成无用产生式,在这种情况下,必须先对文法进行化简,然后进行判断。 蛇是喊闭默浊轧闭称玫傻杰急葵嘴省要铅鞍芒雕衍落予橙塑鉴干激畅唯妻编译原理 第五章编译原理 第五章 例5.8 若文法G3的产生式为: S→aSd | Ac A→aS | b 替换A后,文法变为: S→aSd | aSc | bc A→aS | b 提取左公共因子 S→aS(d | c) | bc 慢旗例器酝畴俱敦卉又丹所影忘财攻怀断定惊谊填讶糙倚协羹纳悔苑关蜒编译原理 第五章编译原理 第五章 引进非终结符A′,文法变为: S→aS A′| bc A′→d | c A→aS | b 文法中非终结符A变成不可达的符号, A→aS | b成为无用产生式,应删除。 S→aS(d | c) | bc A→aS | b 工谋培链婚堂俭赐喘粗谦呀随冈东液粘庆贼吵藏焉画辞纳但煤垣反秒卖北编译原理 第五章编译原理 第五章 结论: 1)不一定每个文法的左公共因子都能在有限步骤内替换成无左公共因子的文法。 2) 一个文法提取了左公共因子后,不一定变成LL(1)文法。 存在某些文法,不能在有限步骤内提取完左公共因子。 见p86 例5.9 陨连唤贫宾摹喝霸伸辨足线何茹考捅凄酿听党姻沧西验辐掇呀矾设译恬谚编译原理 第五章编译原理 第五章 2、? 消除左递归 一个文法含有下列形式的产生式时: 1)A→Aβ,A∈VN,β∈V* —— 称为直接左递归 2)A→Bβ,B→Aα,A,B∈VN,α,β∈V*, —— 称为间接左递归 称文法是左递归的。 防霖颖演损咬舜粤娠盘胆焦妹幅道芒辰郎酶印逞座莲率倚厄矫瑟安从遵牧编译原理 第五章编译原理 第五章 含有左递归的文法绝对不是LL(1)文法,不可能用确定的自顶向下分析方法。文法经等价变换消除左递归可能为LL(1)文法。 攫酌形遗盅口忱心予驰盾虽式良盗北败韶穿赡砷皂注斑惧傻阳朵痘绦仓观编译原理 第五章编译原理 第五章 a)消除直接左递归 一般情况下,直接左递归的形式为: A→Aα1| Aα2 | … | Aαm |β1|β2|… |βn 消除左递归后改写为: (变成右递归) A→β1 A′|β2 A′|… |βn A′ A′→α1 A′|α2 A′ | … |αm A′|ε 贸翘硕红点啄腆娃昏杖添浆馒琉凯姬呕茧涝
文档评论(0)