Parsing 如何确定语法是否适合自顶向下分析?

Parsing 如何确定语法是否适合自顶向下分析?,parsing,compiler-construction,Parsing,Compiler Construction,我最近一直在阅读《龙之书》中的自上而下语法分析,其中一个问题是检查给定的语法是否适合自上而下语法分析。如何确定这一点?语法的下列条件是否足以成为有效条件? 1) 左撇子2)没有左递归

我最近一直在阅读《龙之书》中的自上而下语法分析,其中一个问题是检查给定的语法是否适合自上而下语法分析。如何确定这一点?语法的下列条件是否足以成为有效条件?

1) 左撇子
2)没有左递归<3)明确无误


使用最左端派生、明确且没有左递归的语法称为LL(k)语言。k是解析器使用的前瞻量。自顶向下的解析使用LL(k)语言,因此如果语言是LL,则应该是自顶向下的可解析语言

资料来源:

这是一个实际问题还是理论问题?C99标准中的语法是递归的和不明确的,但是GCC使用自上而下的递归下降解析器。这是一个理论问题谢谢你的回答。自顶向下的解析器是LL解析器的超集。那么,语法有资格成为自顶向下的解析器的条件是什么呢?因为它是一个超集,所以它具有解析LL语言的所有功能,而LL语言就是您描述的语言。你问的问题是“下列语法条件是否足以成为有效语法?”。因为自顶向下的解析器解析LL语法,所以条件就足够了。