乔姆斯基规范形式(翻译)

链接: https://www.tutorialspoint.com/automata_theory/chomsky_normal_form.htm

CFG(Chomsky Normal Form),乔姆斯基规范形式, 具有以下形式:

A -> a
A -> BC
S -> ε

小写字母表示终结符号,大写表示非终结符。
产生式的体要么由单个终结符号或者ε构成,要么由两个非终结符构成。

规范形式变换算法

Step 1 - 如果开始符 S 出现在产生式的右侧 创建一个新符号
S' -> S
Step 2 - 去除掉空产生式。
Step 3 - 去除掉单产生式。
Step 4 - 替换每个产生式 A -> B1...Bnn > 2 变换成 A -> B1C C -> B2...Bn 。重复此过程,直到最后。
Step 5 - 产生式右侧的终结符号 A -> aB , 替换为 A -> XBX -> a , 重复此过程,直到替换掉全部终结符号。

问题

转换以下文法到规范形式:

S → ASA | aB
A → B | S
B → b | ε

解决

(1) 因为 S 出现在右侧 S -> ASA ,所以我们添加 S0S0 -> S

S0 → S, S→ ASA | aB, A → B | S, B → b | ε

(2) 现在去除空产生式

B → ε , A → ε

去掉 B → ε 后,

S0 → S, S → ASA | aB | a, A → B | S | ε, B → b

去掉 A → ε 后,

S0 →S, S→ ASA | aB | a | AS | SA | S, A → B | S, B → b

(3) 现在我们去除单产生式:

去掉 S → S:

S0 → S
S → ASA | aB | a | AS | SA
A → B | S
B → b

去掉 S0→ S

S0 → ASA | aB | a | AS | SA
S → ASA | aB | a | AS | SA
A → B | S
B → b

去掉 A→ B:

S0 → ASA | aB | a | AS | SA
S → ASA | aB | a | AS | SA
A → S | b
B → b

去掉 A→ S

S0 → ASA | aB | a | AS | SA
S → ASA | aB | a | AS | SA
A → b |ASA | aB | a | AS | SA
B → b

(4) 现在变换多于两个变量的右侧

这里 S0→ ASA, S → ASA, A→ ASA 都是

变换后:

S0 → AX | aB | a | AS | SA
S → AX | aB | a | AS | SA
A → b |AX | aB | a | AS | SA
B → b
X → SA

(5) 我们最后将终结符组合产生式S0→ aB, S→ aB, A→ aB替换:

S0 → AX | YB | a | AS | SA
S → AX | YB | a | AS | SA
A → b A → b |AX | YB | a | AS | SA
B → b
X → SA
Y → a

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,266评论 0 13
  • 链接地址:https://www.tutorialspoint.com/compiler_design/compi...
    dannyvi阅读 3,377评论 1 12
  • 昨天把写给自己的文发在简书上,出乎意料的,投了五个话题,有三位编辑采纳。 我是欣喜的,毕竟是第一次发,...
    琳琅219阅读 168评论 0 0
  • 昨日是2018年2月28日,我和阿芳还有静玉师兄一起去了梧桐山小镇。这次完全是没有预先安排的说走就走的小游。为什么...
    兰淼阅读 244评论 0 0
  • 爱上一个黎明 清风徐来,鸟儿欢快 爱上一个黄昏 荷叶田田,蛙跳蝉鸣 爱上一朵花 轻嗅其香,美丽芬芳 爱上一片月色 ...
    小雨飘飘阅读 175评论 10 14