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