為最左側和最右側派生推出字串“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
廣告