“半常规”语法只允许使用以下形式的规则:
X → y
X → y Y
X → Y y
其中X和Y是任何单个非终端,x和y是任何单个终端。
例如,这是语言a + b +
的半规则语法S → a S
S → a A
A → A b
A → b
举一个半常规语法的例子,其语言不是常规语言。请务必说明语言是什么以及为什么不常规。
答案 0 :(得分:1)
怎么样?
S := aT | -
T := Sb
请注意-
表示空字符串;如果您愿意,可以用单个终端符号替换它,而不改变规律性。这会生成语言a^n b^n
,这是规范的非常规语言。使用常规语言的泵浦引理或Myhill-Nerode定理可以很容易地证明这一点。