题目
使用自上而下分析法要先消除文法的左递归。? 正确错误
使用自上而下分析法要先消除文法的左递归。? 正确错误
题目解答
答案
正确
解析
自上而下分析法(如LL(1)分析)要求文法无左递归。左递归会导致分析过程中无限循环,因为分析器无法确定何时停止推导。消除左递归是确保分析过程正确性的必要步骤。
关键概念解析
- 左递归:非终结符A的产生式形如
A → Aα | β
,即非终结符直接推导出自身开头的符号串。 - 自上而下分析的局限性:预测分析器(如LL(1))依赖FIRST集和FOLLOW集构造分析表。左递归会导致FIRST集包含空(ε),使分析器无法选择正确产生式,引发冲突或无限循环。
消除左递归的作用
通过改写文法(如将左递归转换为右递归),确保每一步推导有明确的选择顺序,避免分析器陷入死循环,从而保证自上而下分析的可行性。