为最左侧和最右侧派生推出字符串“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
广告