这意味着 L 是w
由符号'a'
、'b'
' 和组成的字符串语言'c'
,其中字符串的长度w
等于字符串中'a'
存在的符号数量的 3 倍w
。
这个语法的产生式应该是这样的,如果它加一,'a'
那么它也加二'b'
,或二'c'
,或一'b'
;一 'c'
。检查以下语法:
S → ^ | SaSMSM | SMSaSM | SMSMSa
M → b | c
这里的^
意思是ε。
生成aabbcc
使用最右推导
- S → SaSMSM
- 使用 S → ^
S → SaSMSM → aSMSM将 rhs 中的第一个 S 替换为 ^
- 替换 S → SaSMSM
S → SaSMSM → aSaSMSMMSM
- 使用 S → ^
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM
- 使用 S → ^
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM
- M → b
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM → aabSMMSM
- 使用 S → ^
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM → aabSMMSM → aabMMSM
- M → b
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM → aabSMMSM → aabMMSM → aabbMSM
- M → c
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM → aabSMMSM → aabMMSM → aabbMSM → aabbcSM
- 使用 S → ^
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM → aabSMMSM → aabMMSM → aabbMSM → aabbcSM → aabbcM
- M → c
S → SaSMSM → aSaSMSMMSM → aaSMSMMSM → aaMSMMSM → aabSMMSM → aabMMSM → aabbMSM → aabbcSM → aabbcM → aabbcc