特定语言的语境语法

时间:2016-02-09 19:53:39

标签: computer-science grammar context-free-grammar

我无法理解简单的问题。我必须指出以下语法 字

a)(ab)^2i c, i>=1

对于i = 2 ababc

表示i = 1 ababababc

   S -> abA
   A -> ab | abc | c

b)a^(m-1) b^(m+1) a^n b^n, m>=1 n>=1

对于i = 2 bbab

表示i = 1 abbbaabb

   S -> AbbAaAb
   A -> ba | ab | a

有人可以查看这些练习并给我反馈。我做错了什么?

1 个答案:

答案 0 :(得分:1)

第一个会生成(ab)^i,您只需要在单词中偶数ab对,因此您必须将其定义为

S -> ababA
A -> ababA | c

您还必须在第二条规则的右侧使用A,因为您的规则会创建一个最大长度为5的单词。

第二个

S -> AbbB
A -> aAb | epsilon (empty string)
B -> aAb

对于单词的第一部分,您始终需要bb在右侧。您从中生成a^n b^n

对于单词的第二部分,我们重复使用非终结A,但我们确保单词部分中至少有一个ab - 这就是为什么{ {1}}。