• 软件构造5


    LL(1)文法
    对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的
    产生式A—>α|β 满足下列条件:
    (1)如果α、β均不能推导出ε,则 FIRST(α) ∩ FIRST(β) = ∅。
    (2)α 和 β 至多有一个能推导出 ε。
    (3)如果 β *═> ε,则 FIRST(α) ∩ FOLLOW(A) = ∅。
    将满足上述条件的文法称为LL(1)文法。
     
     
    概要
    第一个L代表从左向右扫描输入符号串,第二个L代表产生最左推导,1代表在分析过程中执行每一步推导都要向前查看一个输入符号——当前正在处理的输入符号。
    LL(1)文法既不是二义性的,也不含左递归,对LL(1)文法的所有句子均可进行确定的自顶向下语法分析。
    需要注意的是,并不是所有的语言都可以用LL(1)文法来描述,而且不存在判定某语言是否是LL(1)文法的算法。也就是说,确定的自顶向下分析只能实现一部分上下文无关语言的分析,这就是LL(1)文法所产生的语言。另外,在上述LL(1)文法的条件中,要求:ε ∈ FIRST(α1),ε ∈ FIRST(α2),…ε ∈ FIRST(αn) 中至多有一个成立。
  • 相关阅读:
    前后端分离
    git的基本使用
    PHP中的接口
    Java里面的接口
    面向对象的接口
    python调用Shell脚本:os.system(cmd)或os.popen(cmd)()【转】
    得到系统删除程序里的FIREFOX
    NSMutableArray,NSArray (From DFdou's Blog)
    iPhone delegate 两界面传递数据(转)
    字符串乘积运算+连接
  • 原文地址:https://www.cnblogs.com/zl00/p/14224553.html
Copyright © 2020-2023  润新知