- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                例4.2 一.首符集,后继符集与选择集的定义: 例4.3: 定义4.3 例: 例: 流程图: 步骤       分析栈        输入队列          动作       所用产生式 T:    procedure  T;           begin  T;             while   char = *  do              begin  READ(char);  F  end         end E:  procedure  E;         begin  T;                while  char=+ do                         begin  READ(char);  T    end          end F:    procedure   F;           begin  if  char =( then                           begin  READ(char);                                      E;                                      if ≠ char  )   then  ERROR  else  READ(char)                            end                       else   P            end E→T{+T} T→F{*F} F→P| (E) P→ i| i(E) P:  procedure   P       begin  if  char ≠ i    then   ERROR               else  begin READ(char);                                 if char =( then                                          begin  READ(char);                                                     E;                                                    if char≠ ) then ERROR                                                                 else  READ(char)                                          end                        end       end  E→T{+T} T→F{*F} F→P| (E) P→ i| i(E) 4.5.2  预测分析方法(LL方法)           LL(k)文法是采取确定的自左至右扫描(输入串)和自顶向下分析技术的最大一类文法。LL系指:自左向右扫描(输入串),自上而下进行最左推导。         一般来说,一个文法当其分析器对输入串进行自左至右扫描并采用自顶向下方法进行分析的过程中,如果每步仅利用当前的非终结符(事实上此时它已位于分析栈顶)和至多向前查看k个输入符号就能唯一 决定采取什么动作,那么这个文法称为LL(K)文法。         对于大多数程序设计语言而言。K=0或1就足够了。因此我们将主要讨论k≤1的情形。 一、LL(1)方法的分析过程     从实现的角度来说,上述替换过程需要花较多的时间,因为 它除了把一个候选式替换掉x1,还需要x2 … xn统统进行移位处理, 这时很麻烦的。我们的处理方法是用栈来保存x1x2 … xn,而且 是把xn作为栈底, x1作为栈顶,那么上述的替换动作就简单了, 只需在栈顶进行替换。即去掉x1把候选式的符号串按逆序方式 压入栈中即可。       设分析的当前格局为(x1x2 …. xn#, y1y2 …. ym#) 其中xi表示句型的前端部分,诸yj表示输入流的后端部分(终结符串)。则可能有下述动作之一: 1.替代:当x1∈VN时,则选相应的候选式去替换x1 。 2.匹配:当x1∈VT时,它与y1进行匹配,其结果为两种可能,如       果匹配成功,则去掉x1和y1(即只指针后移一位)否则报错。 3.接受:当格局为(#, #)时,报告分析成功结束。 bBc# bbbdc# ↑  ↑  Bc# bbbdc# ↑  ↑  aBc# abbbdc# ↑  ↑  设有文法:S→aBc|bB                    B→bB|d  且给定输入串abb
                您可能关注的文档
最近下载
- 2025年北京市顺义区高二数学上册期中考试试卷及答案.docx VIP
- 三级查房制度整改措施方案.docx VIP
- (正式版)D-L∕T 461-2019 燃煤电厂电除尘器运行维护导则.docx VIP
- (翼人2024版)科学二年级上册2.6 看不见的力 课件(新教材).pptx
- 《虚拟电厂建设及运营技术规范》.pdf VIP
- Tosmana中文使用手册.docx VIP
- 中外味觉词汇比较研究.docx VIP
- 2025-2026学年人教版(2024)广东省八年级数学第一学期第十五章轴对称 单元达标练习卷(含答案).docx VIP
- 2025年全国两会看点解读PPT课件.ppt VIP
- 北京版小学三年级英语试卷.pdf VIP
 原创力文档
原创力文档 
                        

文档评论(0)