自顶向下分析
Posted hit-ryp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自顶向下分析相关的知识,希望对你有一定的参考价值。
一、 理解确定的自顶向下分析思想
确定的自顶向下分析方法,是从某文法的开始符号出发,考虑如何根据当前的输入符号(单词符号)唯一地确定选用哪个产生式替换相应非终结符往下推导,或如何构造一棵相应的语法树,其末端结点以从左向右的顺序连接正好为给定的输入符号串,则所给的输入符号串为该文法的句子。
二、 掌握LL(1)文法的判别步骤
一个文法中含有左递归和左公共因子绝对不是LL(1)文法,所以也就不可能用确定的自顶向下分析法。
某些含有左递归和左公共因子的文法在通过等价变换把它们消除以后可能变为LL(1)文法,但需要用LL(1)文法的定义判别,也就是说文法中不含左递归和左公共因子,只是LL(1)文法的必要条件。
掌握LL(1)文法的定义。熟练掌握FIRST集、FOLLOW集和SELECT集的计算方法。
三、某些非LL(1)文法到LL(1)文法的等价交换
理解两种非LL(1)文法的等价变换方法,特别要注意的是:消除了左递归、提取了左公共因子后不一定就能满足LL(1)文法的条件。
四、确定的自顶向下分析方法
掌握递归下降子程序的特点以及用PL/0程序分析PL/0编译程序的语法分析过程。
掌握如何构造预测分析表;
能用预测分析方法判断给定的输入符号串是否是该文法的句子。
以上是关于自顶向下分析的主要内容,如果未能解决你的问题,请参考以下文章
算法动态规划 ③ ( LeetCode 62.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )
算法动态规划 ③ ( LeetCode 62.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )