无法使用RegEx的Context Free Grammar

时间:2011-02-25 16:57:50

标签: regex context-free-grammar

我试图找出是否可能有一个CFG的例子,因为它不可能给出一个可以接受相同语言的正则表达式。

2 个答案:

答案 0 :(得分:1)

由于常规机器/表达式只有有限(预定义)的状态数,因此它不能“记住”(无限地)输入的早期部分。

因此,对于状态机来说,识别以下表达式是不可能的:a n b n (n∈ℕ)

你可以为n≤x制作这样一台机器,其中x∈ℕ,但是没有状态机可以为every的每个可能值做这个。

答案 1 :(得分:1)

任何需要计数/记忆的语言都不能表达为正则表达式。

例如,检查平衡括号的语言:

S -> { S } S

S -> ε