美文网首页
各上下文无关文法的区别

各上下文无关文法的区别

作者: 谭英智 | 来源:发表于2021-12-18 16:48 被阅读0次

    LL(0)

    自上而下的分析文法

    使用最左匹配的推导产生句子

    LR(0)

    LR(0)文法采用自下而上分析,从左分析,从栈顶规约

    F -> a.b
    F -> b.c
    

    它无法处理以下规则

    F -> Y.+
    F -> Y.
    

    因为它只看栈顶元素

    但又与允许规约冲突

    SLR

    SLR为了解决LR(0)的问题

    通过加入Follow集合来解决冲突

    F -> Y.+
    F -> Y.
    Follow(F) = {a, b}
    当遇到+时,则规约第一个句子
    当遇到a|b时则规约第二各句子
    

    它无法解决下面的问题

    F -> Y.+
    F -> Y.
    Follow(F) = {a, b, +}
    

    LR(1)

    为了解决SLR的问题

    LR(1)通过往后看一个字符,来减少冲突

    F -> Y.+c, c
    F -> Y.+b, b
    

    通过比较+号后面的字符,可以减少冲突

    相关文章

      网友评论

          本文标题:各上下文无关文法的区别

          本文链接:https://www.haomeiwen.com/subject/gkugfrtx.html