- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FIRST集的定义 符号串x 推导 终结头符号集 FIRST(x)= {a |x a… } a∈VT x ε ε∈FIRST(x) 文法避免回溯的条件 多选规则:U::=x1|x2|…|xn 文法避免回溯的条件: 不含空规则 FIRST(xi ) ∩ FIRST( xj ) = Φ (i≠j) FOLLOW(U)的定义 非终结符号U的后继终结符号集。 FOLLOW(U)= {a |Z …Ua…} a∈VT 识别符号 特别地: Z …U # ∈ FOLLOW(U) 输入结束符 求FOLLOW(U)的算法步骤1) 1) #∈FOLLOW(Z); 识别符号 求FOLLOW(U)的算法步骤2) 2) A::=αUβ FIRST(β)-{ε} FOLLOW(U) 文法满足避免回溯的条件 U::=x1|x2|…|xn 1)FIRST(xi)∩FIRST(xj)=Φ (i≠j) 2)若xj ε FIRST(xi)∩FOLLOW(U)=Φ (i≠j) 非空规则 消除回溯的简单方法 U::=xi|xj FIRST(xi)∩FIRST(xj) ≠ Φ ={a} U::=xi|xj 改写 U::=aW|aV 提取a U::=a(W|V) 引入X U::=aX X::=W|V LL(1)分析表M的结构 行标题 非终结符号U 列标题 终结符号a 结束符# M[U,a] 规则 当U面临输入符号a时应选择的规则 出错标志 构造LL(1)分析表M的算法 (3)其它均置ERROR 规则U::=x (1)a∈FIRST(x) U::=x M[U,a] (2)ε∈FIRST(x) U::=x M[U,b] M[U,#] ∈ FOLLOW(U) 空 LL(1)分析方法基本思想 从左到右扫描源程序 从识别符号开始生成句子的最左推导 只要向前查看一个输入符号 便能确定当前应选择的规则 LL(1)方法 LL(1)分析方法的实现 LL(1)方法 LL(1)分析表M 符号栈S K: 符号栈S的栈顶指针 J: 输入串R的指针 实现步骤 (3)栈顶元素= (1) 栈顶元素 当前符号 匹配 k:=k-1 j:=j+1 (2) 栈顶元素S[k]∈VN 当前输入符号为R[j] 查M表 M[S[k],R[j]]元素 S[k]::=x1x2…xn x1x2…xn 代替 S[k] 入栈顺序 由右向左 输入符号= # 成功 S栈 … S[k] xn … x2 x1 栈顶元素出栈 输入下一符号 出栈 P78#4 A → aABe|ε B → Bb|b (1)FIRST(A)={a, ε} FIRST(B)={b} A → aABe A 为识别符号 FOLLOW(A)={b, #} A → aABe B → Bb FOLLOW(B)={b, e} P78#4(续) (2)不是LL(1)文法,文法中有直接左递归的规则: B → Bb|b A → aABe|ε B → Bb|b (3)消除直接左递归: 引进新的非终结符号B’ B → bB’ B’ → bB’ |ε 改写后的文法: A → aABe|ε B → bB’ B’ → bB’ |ε P78#4(续) (4)构造LL(1)分析表 A → aABe|ε B → bB’ B’ → bB’ |ε a b e # A B B’ FOLLOW(A) ={b, #} FOLLOW(B’)= FOLLOW(B)={ e} FOLLOW(B)={e} A → aABe A→ ε A→ ε B → bB’ B’ → bB’ B’→ ε 对文法G[S]: S → a| ∧|(T) T → T,S|S (1)给出(a,(a,a))的最左推导; (2)该文法是LL(1)文法吗?为什么? (3)改写成与之等价的LL(1)文法,构造LL(1)分析表。 (4)给出输入串(a,a)#的分析过程,并说明该串是否为G的句子。 (1)句子(a,(a,a))的最左推导: S ?(T) (T,S) ?(S,S) (a,S) ?(a,(T)) (a,(T,S)) ?(a,(S,S)) (a,(a,S)) ? (a,(a,a)) S → a| ∧|(T) T → T,S|S (2)改写文法: 消除直接左递归T → T,S|S引入新的非终结符号T’ T → ST’ T’ → ,ST’|ε 改写后的文法: S → a| ∧|(T) T → ST’ T’ → ,ST’|ε 消除间接左递归后: S → a| ∧|(T) T → a T’ | ∧T’|(T)T’ T’ → ,ST’|ε 消除间接左递归 (3)判断改写后的文法是否是LL(1)文法: 求FOLLOW(T’)=FOLLOW(T)={)} FILLOW(T’)∩First(,ST’)={)} ∩{,}=Φ
您可能关注的文档
最近下载
- 《工会基础知识》考试题库资料300题(含答案).pdf VIP
- 2021年事业单位工会系统招聘考试《工会基础知识》真题库及答案.pdf VIP
- 急性肺栓塞诊断与治疗指南 生活科普.pdf VIP
- 柴油泄漏应急预案演练.docx VIP
- 《可爱的中国》节选 Beloved China (Excerpt)-来源:英语世界(第2021010期)-商务印书馆有限公司.pdf VIP
- 宋词概述详解.ppt
- 胆管癌护理疑难病例讨论ppt.pptx
- 【2024】大象版科学五年级上册每课教学反思(带目录) .pdf VIP
- 大象版科学五年级上册知识点梳理总结 .pdf VIP
- 2022大象版(2017)科学五年级上册每课教学反思(附目录).docx VIP
文档评论(0)