為最左側和最右側派生推出字串“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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP