LL和递归下降解析器之间的区别?
我最近正在尝试自学解析器(针对语言/无上下文语法)的工作方式,除了一件事之外,大多数解析器似乎都有意义。我特别关注LL(k)语法,这两个主要算法似乎是LL解析器(使用堆栈/解析表)和递归下降解析器(仅使用递归)。 据我所知,递归下降算法适用于所有LL(k)语法,甚至可能更多,而LL解析器适用于所有LL(k)语法。但是,递归下降解析器显然比LL解析器要简单得多(就像LL解析器比LR解析器一样简单)。 所以我的问题是,使用两种算法时可能遇到的优点/问题是什么?鉴于LL处理相同的语法集并且实现起来比较棘手,为什么人们会选择LL而不是递归血统?