查找更复杂语言的上下文无关语法的方法

kw3rti

我在处理以下问题时遇到问题。

给出以下语言的上下文无关语法:

{x#y | x,y in {0,1}* and |x| != |y|} 

解决这个问题的最佳方法是什么?目前,我只是用直觉来解决类似这样的问题,但是有没有有用的技术?也就是说,您能想到这种语言的PDA的外观,然后从中得出语法吗?是否有使用语法A和B查找语法G = A和B的方法?

我正在努力寻找解决方法,因此我们将不胜感激。

谢谢。

使用直觉是一种有价值的技术。当您解决更多此类问题时,您的直觉会越来越清晰,因此变得更容易。

没有将语言描述转换为CFG的正式技术(当然,除非描述是映射到CFG的东西,就像一组生产规则一样)。通常,无法确定语言是否是上下文无关的(尽管CFG必须符合很多约束,所以通常可以证明语言不是CFG,即使是半机械地使用计数参数也是如此)。两种上下文无关的语言的交集甚至不一定是上下文无关的,因此没有一种过程可以采用两种上下文无关的语言并为它们的结合生成CFG。

但是,两种上下文无关语言联合是上下文无关的,并且CFG可以从两种语言的CFG中自动生成。因此,有可能将问题分解为多个部分。

对于这个特定问题,我建议使用一种简单的启发式方法,该方法通常可以解决您在形式语言课程中遇到的那种问题:尝试将问题建立在您知道答案的更简单问题上。

如上所述,两个CFL的并集是上下文无关的。串联也定义为:

L 1 · L 2 = { xy | X大号1ý大号2 }

这是两种方法,两种方法都基于能够构造类似的语言,其中| x | = | y |。任何字符串,其中| x | ≠| y | 右侧或左侧必须有更多字符。根据您的倾向,您可以在中间(分隔符的一侧或另一侧)或两端之一添加这些额外的字符。这两种方法都涉及使用工会。其中一个是串联,另一个是嵌入。

祝你好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从语言生成上下文无关的语法

来自分类Dev

上下文无关语言的形式上下文无关语法

来自分类Dev

为以下语言编写上下文无关的语法

来自分类Dev

如何获得该语言的上下文无关语法?

来自分类Dev

为特定语言创建上下文无关的语法

来自分类Dev

由上下文无关语法生成的语言?

来自分类Dev

JavaScript是上下文无关语言吗?

来自分类Dev

语言的上下文无关文法

来自分类Dev

证明上下文无关语法是规则的

来自分类Dev

如何创建上下文无关的语法?

来自分类Dev

设计上下文无关的语法

来自分类Dev

上下文无关的语法帮助

来自分类Dev

上下文无关语法中的歧义

来自分类Dev

证明上下文无关语法是规则的

来自分类Dev

上下文无关语言是否是确定性上下文无关语言

来自分类Dev

为Chomsky范式形式的语言构造上下文无关的语法

来自分类Dev

如何使用上下文无关语法语言限制元素的最大长度

来自分类Dev

如何确定上下文无关的语法是否描述了常规语言?

来自分类Dev

非上下文无关语言的子集是否有可能是上下文无关的?

来自分类Dev

串联与并集-常规语言和上下文无关语言

来自分类Dev

串联与并集-常规语言和上下文无关语言

来自分类Dev

生成以下语言的上下文无关文法

来自分类Dev

以下语言是否正常?上下文无关?

来自分类Dev

查找无上下文语法

来自分类Dev

重新生成上下文无关的语法

来自分类Dev

上下文无关的语法来识别行尾空格

来自分类Dev

元音上下文无关语法定义YACC

来自分类Dev

这种与上下文无关的语法是否明确?

来自分类Dev

特定语言的无上下文语法