我在维基百科上阅读了有关LL(0)和LR(0)解析器的内容,发现虽然存在LR(0)解析器,但并不存在LL(0)解析器。
根据我的理解,LL(k)/LR(k)中的k代表解析器可以查看当前正在处理的字符之后多少个字符。
那么我的问题是,为什么尽管存在LR(0),却没有LL(0)解析器呢?
我在维基百科上阅读了有关LL(0)和LR(0)解析器的内容,发现虽然存在LR(0)解析器,但并不存在LL(0)解析器。
根据我的理解,LL(k)/LR(k)中的k代表解析器可以查看当前正在处理的字符之后多少个字符。
那么我的问题是,为什么尽管存在LR(0),却没有LL(0)解析器呢?
LL(0)相对于LR(0)来说弱的另一个原因是,在LL(0)解析器中,解析器必须立即决定执行哪些产生式,这意味着解析器必须完全盲目地猜测产生式。而在LR(0)解析器中,解析器可以在决定进行规约之前移动多个符号。因此,解析器在没有任何前瞻的情况下,可以推迟做出关于使用哪个规约的决定,直到它已经看到足够的输入标记以获取字符串结构的感觉。这是更一般事实的特例,即任何LL(k)语法都自动成为LR(k)。
希望这可以帮助你!