Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 检查word是否是上下文无关语言的一部分_Perl_Context Free Language - Fatal编程技术网

Perl 检查word是否是上下文无关语言的一部分

Perl 检查word是否是上下文无关语言的一部分,perl,context-free-language,Perl,Context Free Language,大家晚上好! 作为Perl正则表达式的粉丝,我提出了一个问题,我无法通过谷歌搜索自己来回答 让我给你们举一个我的问题的最小例子: 我有两个文本文件: FileA.txt: aaabbb FileB.txt: abbb 我想检查每个文件内容是否是由特定的上下文无关语言生成的单词。例如,在这种情况下: L={a^nb^n | n>0} 现在我遇到了一个问题,来自Perl的正则表达式无法工作,因为它不是一种常规语言。 当然,我可以编写一个小PDA脚本并检查它是否终止 但是在Perl中有没有其他方法

大家晚上好! 作为Perl正则表达式的粉丝,我提出了一个问题,我无法通过谷歌搜索自己来回答

让我给你们举一个我的问题的最小例子:

我有两个文本文件:

FileA.txt:

aaabbb
FileB.txt:

abbb
我想检查每个文件内容是否是由特定的上下文无关语言生成的单词。例如,在这种情况下: L={a^nb^n | n>0}

现在我遇到了一个问题,来自Perl的正则表达式无法工作,因为它不是一种常规语言。 当然,我可以编写一个小PDA脚本并检查它是否终止


但是在Perl中有没有其他方法来解决这个问题呢?可能是传递上下文无关语法或其他内容的一种方法?

上下文无关语言是固定的还是您正在阅读作为程序输入的规范?规范看起来像什么,一个无上下文的语法?是的,这可以用它们来完成。@reinierpost:开始时,我想使用一组固定语言,但我打算使用命令行中指定的一组可变语言作为参数。我会读你链接的文章!听起来不错@reinierpost谢谢你的回答,这让我更进一步了!现在我可以处理CFG了。我将尝试使用它,以检查它是否符合所有需要的语法。接下来的问题是,如何从给定的语言中生成语法。(或者,如果我必须在我的情况下,我会尝试一下)在最后一句话中,你可能指的是“解析”,而不是“通过”。从语言中获取语法没有通用的方法。首先,这取决于语言的形式。如果你有PDA,那么就有转换算法。对于像您问题中的描述集,没有通用的转换算法。上下文无关语言是固定的还是您正在读取作为程序输入的规范?规范看起来像什么,一个无上下文的语法?是的,这可以用它们来完成。@reinierpost:开始时,我想使用一组固定语言,但我打算使用命令行中指定的一组可变语言作为参数。我会读你链接的文章!听起来不错@reinierpost谢谢你的回答,这让我更进一步了!现在我可以处理CFG了。我将尝试使用它,以检查它是否符合所有需要的语法。接下来的问题是,如何从给定的语言中生成语法。(或者,如果我必须在我的情况下,我会尝试一下)在最后一句话中,你可能指的是“解析”,而不是“通过”。从语言中获取语法没有通用的方法。首先,这取决于语言的形式。如果你有PDA,那么就有转换算法。对于像您问题中的描述那样的集合,没有通用的转换算法。