编译原理 —— 递归下降分析法

什么是递归下降分析法

递归下降分析法是确定的自上而下分析法,这种分析法要求文法是LL(1)文法。

  • 为每个非终结符编制一个递归下降分析函数,每个函数名是相应的非终结符,函数体则是根据规则右部符号串的结构和顺序编写。
  • 子程序相互递归调用。

示例

设有 LL(1) 文法如下

试构造一个识别该文法句子的递归下降分析程序。

解:




总结

优点:递归下降分析法简单、直观,易于构造分析程序。

缺点:对文法要求高,必须是LL(1)文法,同时由于递归调用较多,影响分析器的效率。