给定语言的乔姆斯基类型是什么?

时间:2018-07-21 06:00:30

标签: programming-languages finite-automata

语法G生成语言L定义为:

G =({x,y},{S,A,B,C},P,S)

其中P的元素为:

S-> ABA

AB-> AC

CB-> BBC

CA-> BBA

A-> a | E

B-> b

由G生成的语言L最准确地说是:

A。乔姆斯基类型0

B。乔姆斯基类型1(上下文相关)

C。乔姆斯基2型(无上下文)

D。 Chomsky 3型(常规)

E。以上都不是

我认为这是类型0,因为它与上下文无关。但是我不知道这个规则可能会简化为其他内容,并变得对上下文敏感或不受上下文限制等。如何处理这种问题?


语法G的定义如下:

G =({a,b},{S,A,B},P,S)

其中P是集合:

S-> AB | AS

A-> a |

B-> b | bb

由G生成的语言L最准确地说是:

A。乔姆斯基类型0

B。乔姆斯基类型1(上下文相关)

C。乔姆斯基2型(无上下文)

D。 Chomsky 3型(常规)

E。以上都不是

我认为这是上下文无关的,因为LHS具有一个非终结符。但是我不确定,因为该规则可能会减少并变成常规的语法。

1 个答案:

答案 0 :(得分:0)

Grammar 1 is context-sensitive as written (unsure why you think it's not, as it matches the formal definition)。语法2与写作无关。

语法1的语言看起来是(a|E)b^k(a|E),其中k的格式为2 ^ i,i是非负整数。这种语言似乎是上下文相关的。

语法2的语言看起来是aa*(b|bb),这很正常。

由于问题是在询问语言,而不是书面语法,我会说1是上下文相关的,而2是常规的。