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) 中至多有一個成立。

相關詞條

熱門詞條

聯絡我們