【问题标题】:Is there some other way to describe a formal language other than grammars?除了语法之外,还有其他方式来描述形式语言吗?
【发布时间】:2012-04-10 07:37:22
【问题描述】:

我正在寻找处理一般描述形式语言(字符串集)而不仅仅是语法层次结构的数学理论。

【问题讨论】:

  • 我建议你改用cstheory.stackexchange.com提问
  • 那是个好主意,但是为什么stackoverflow上有这个主题的相关标签?
  • 因为不是每个涉及这些概念的问题在这里都是题外话,更适合其他网站。

标签: grammar formal-languages


【解决方案1】:

语法为您提供了列出语言中所有可能字符串的算法。您可以通过任何其他方式指定算法,但语法是一种简洁且广为接受的格式。

另一种方法是列出属于该语言的每个字符串——这仅在该语言中的字符串集很小的情况下才有效(绝对不是在该集为无限时)。

【讨论】:

  • 我知道,但是还有哪些“简洁且广为接受”的格式来描述语言?
  • 例如编写一个计算机程序。您不需要运行程序——代码本身就是语言的编码(属于该语言的字符串集)。如果你运行程序,你实际上是在生成语言中的字符串,就像在“运行”语法(应用规则)时一样。
【解决方案2】:

例如,正则表达式是描述一组语言的一种形式。尽管有两种方式转换正则语法和表达式的算法,但它们仍然是两种不同的理论。此外,自动机(作为自动机的复数形式)可以帮助您描述语言,不仅仅是描述与常规语言相同的集合的 DFA 和 NFA,而是 2DFA,堆栈自动机。例如,两栈自动机与图灵机一样强大。最后,图灵机本身就是语言的一种形式。对于任何图灵机,给定图灵机在有限步数上停止的所有字符串的集合是正式定义的语言。

【讨论】:

  • 你知道是否有任何算法可以从字符串示例中诱导自动机吗?
  • 你知道,我已经考虑了一段时间了。我们已经在我的学院里尝试过将正则表达式调整到样本,就像调整任何函数到一些数据一样。我们有一个想法,有点像使用一些元启发式算法来找到正则表达式和一组样本之间的最小误差。但我不知道那里有什么。
  • 实际上,有一个名为“语法推理”的完整分支可以解决这个问题。您可能可以从那里开始。检查维基百科。
猜你喜欢
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多