总结

这是根据《编译原理教程(第四版)》胡元义 整理的
(我看过其他老师上的,讲的有点不同,不同的地方我放在注意点里说明)
【编译原理】形式语言分类

4类文法的区别

0型

唯一的限制:产生式左部必须有一个非终结符

1型

与0型唯一的区别:产生式右部不能为空(为了保证右部长度不短于左边长度)

2型

唯一的限制:产生式左部有且仅有一个非终结符

3型

与2型的唯一区别:产生式右部至多有一个非终结符

注意点

关于2型

αAδαβδ \alpha A \delta→ \alpha \beta \delta
AA必须在α\alphaδ\delta的上下文环境中才能被β\beta所替换,这是确定的

然后书上是说,产生式右部必须至少有一个非终结符,,即1型文法不可能出现SεS→\varepsilon形式的产生式

还有一种说法是:
(1)若有SεS→\varepsilon,那么SS不得出现在产生式右部
(2)一般不允许替换成ε\varepsilon,除非开始符号产生ε\varepsilon
那么这种说法,产生式右部就允许没有非终结符的情况
【两者本质没差:α|\alpha| \leq β|\beta|

如果按照这种说法,那么文法之间的关系就是:
【编译原理】形式语言分类
否则,如总结表格所说,2、3型文法不一定属于1型文法,因为2、3型文法可能有SεS→\varepsilon

具体是哪种说法,以大家老师教的为主。

相关文章:

  • 2021-11-14
  • 2021-11-12
  • 2022-12-23
  • 2021-08-10
  • 2021-08-06
  • 2021-08-20
  • 2022-12-23
  • 2021-11-25
猜你喜欢
  • 2021-09-13
  • 2021-07-25
  • 2022-12-23
  • 2021-08-11
  • 2021-12-01
  • 2021-07-12
  • 2022-12-23
相关资源
相似解决方案