0

例如,我想从给定的生产集中派生字符串“aabbccdd”:

S -> AB  | C
A -> aAb | ab
B -> cBd | cd
C -> aCd | aDd
D -> bDc | bc

我可以使用最左边和最右边的推导从 AB 推导出字符串。

但是从 C 开始呢?在派生字符串时,我总是只有一个变量。

从 C 推导:

S -> C
S -> aCd
S -> aaDdd
S -> aabDcdd
S -> aabbccdd

使用了什么样的推导,我可以认为这种语法模棱两可吗?

4

1 回答 1

0
  1. 在最右边的推导中,最右边的非终结符被推导。在最左边的推导中,最左边的非终结符被推导。如果只有一个非终结符,则推导是最左边和最右边的。这并不矛盾。

  2. 由于以 开头的目标字符串有两个派生S,因此语法不明确。

于 2016-05-19T15:59:59.227 回答