為最左側和最右側派生推出字串“abb”


問題

考慮使用 LMD 和 RMD 派生出“abb”字串的語法

   S->AB/ ε

   A-> aB

   B-> Sb

解決方案

我們必須使用上下文無關語法。

派生是一系列產生規則,用於獲取輸入字串。

在解析過程中,我們必須做出兩個決策,如下所示 −

  • 我們必須決定替換哪個非終結符。
  • 我們必須決定使用哪個產生規則替換哪個非終結符。

有兩種選項可以決定用產生規則替換哪個非終結符 −

  • 最左側派生
  • 最右側派生

最左側派生

從左到右掃描輸入並用產生規則替換它。

The given production rules are:
   S->AB/ ε
   A-> aB
   B-> Sb
Let’s derive the string “abb” using LMD
   S->AB
   ->aBB {A->aB}
   ->aSbB {B->Sb}
   ->abB {S-> ε}
   ->abSb {B->Sb}
   ->abb {S-> ε}
Which is our final string

最右側派生

從右到左掃描輸入並用產生規則替換它。

The given production rules are:
   S->AB/ ε
   A-> aB
   B-> Sb
Let’s derive the string “abb” using RMD
   S -> AB
   ->ASb {B->Sb}
   ->Ab {S-> ε}
   ->aBb {A->aB}
   ->aSbb {B->Sb}
   ->abb {S-> ε}
Reached our final string

更新於: 2021 年 6 月 12 日

2K+ 檢視次數

開始職業生涯

完成課程獲得認證

開始
廣告