我怎么能说一见语言没有上下文?

时间:2016-11-18 03:08:53

标签: automata formal-languages context-free-language

我的教授希望我们快速判断一个给定的语言是否是常规的,无上下文但不规则,或者没有上下文(换句话说,没有绘制PDA,编写无上下文语法,并使用抽无上下文语言的引理)。

我知道有些提示可以帮助我们快速了解一见常用语言,而不是语言是否无上下文。

谢谢。

1 个答案:

答案 0 :(得分:6)

当然,没有普遍的答案。但是有一些一般模式,CF可以或不可以以不同的变体出现。 CF可以做的事情(而不是REG):

  • 在两个地方同时计数,例如在^ n b ^ n,
  • 也在a ^ n b ^ n a ^ m b ^ m
  • 中重复
  • 或嵌套在^ ^ b ^ m a ^ m b ^ n
  • 回文模式,即w后接w
  • 的反向
  • 计算一个字母与另一个字母的数量,例如"具有相同数量的a和b"或"比b"
  • 多5个字

CF不能做的典型事情:

  • 在三个地方同时计数,例如在^ n b ^ n c ^ n
  • 在两个交叉对的地方同时计算两次,例如在一个地方,例如a ^ n b ^ m a ^ n b ^ m
  • 两个有序的副本,如ww
  • 比较三个字母的数字,例如"单词的数量等于a,b和c"。

考虑到这些模式,您应该能够确定大多数常见示例语言的上下文无关。