上下文无关语法?

时间:2010-04-13 18:39:57

标签: grammar context-free-grammar chomsky-normal-form

我有这个问题需要在CNF中将以下CFG转换为CFG。

S-> ABa
A-> aab
B-> Ac

我知道步骤如下。

  1. 删除epsilon过渡 - 完成
  2. 删除单位制作
  3. 转换为CNF:
    1. 为每个术语引入一个新的非终端
    2. 使用新的非终结符号
    3. 替换制作规则中的终端
    4. 引入新的非终结符号以减少每个作品右侧的长度
  4. 我对如何处理上述问题感到有点困惑。大多数情况下,我对第2步和单位制作感到困惑。

2 个答案:

答案 0 :(得分:0)

  

我知道步骤如下。

     
    
        
  1. 删除epsilon过渡 - 完成
  2.     
  3. 删除单位制作
  4.     
  5. 转换为CNF:     1.为每个学期引入一个新的非终端     
          
    1. 使用新的非终结符号
    2. 替换制作规则中的终端     
    3. 引入新的非终结符号以减少每个作品右侧的长度
    4.     
  6.        

步骤1和2已经完成。所以我们只需要担心第3步。

启动语法:

S-> ABa
A-> aab
B-> Ac
  1. 为每个学期引入一个新的非终端。

    S  -> ABa
    A  -> aab
    B  -> Ac
    C  -> a
    D  -> b
    E  -> c
    
  2. 使用新的非终结符替换制作规则中的终端。

    S  -> ABC
    A  -> CCD
    B  -> AE
    C  -> a
    D  -> b
    E  -> c
    
  3. 引入新的非终结符号以减少每个作品的右侧长度。

    S  -> AF
    A  -> CG
    B  -> AE
    C  -> a
    D  -> b
    E  -> c
    F  -> BC
    G  -> CD
    

答案 1 :(得分:0)

S->ABa
C.N.F. is :
M->AB
Z->a
S->MZ

A->aab
C.N.F. is :
X->aa
Y->b
A->XY

B->Ac
C.N.F. is:
K->a
B->AK