簡體   English   中英

這個語法是遞歸還是因子?

[英]Is this grammar left recursive or factor?

我對左遞歸和左分解這個主題還不熟悉,請幫助我確定該語法是左遞歸還是左分解,如果是,為什么呢?

S-> aAd | bBd | 阿貝| 嬰兒| cA | B

它是左遞歸的嗎? 答:不可以。

按照定義,“如果我們能找到一些非終結符A,那么語法最終將是左遞歸的,它最終會得出一個以其自身為左符號的句子形式。”

示例:立即左遞歸發生在以下形式的規則中

A -> Aa | b

其中ab是非終結點和終結點的序列,而b不是以A開頭。

顯然情況並非如此:

S-> aAd | bBd | 阿貝| 嬰兒| cA | B

是左因素嗎? 答:可以。

根據定義,在左分解中,不清楚要擴展非終端的兩個替代生產。

當您有兩個以相同終端/非終端開始的替代產品時,就會出現這種歧義。 在您的情況下,我可以看到兩條替代路徑:

S-> aAd | aBe 

S-> bBd |  bAe 

S-> cA | cB

如果刪除左因子,則語法變為:

S-> aA'

A'-> Ad | Be

S-> bB'

B'-> Bd | Ae

S-> cC'

C'-> A | B

這張幻燈片用簡單的語言解釋了同樣的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM