Una grammatica acontestuale (CFG) è in forma normale se oni sua regola è nella forma oppure . Dove . È ammessa anche la regola .

Teorema: ogni CFG ammette una CFG equivalente in forma normale.

  1. Dobbiamo trasformare le regola della CFG. Per prima cosa aggiungo , la nuova variabile iniziale e le regole .
  2. Passiamo poi alle -regole: . Per ogni occorrenza di sul lato destro di una regola, aggiungo nuove regole con occorrenza cancellata. (praticamente per poter togliere si applica a tutte le regole vecchie). Esempio: , con stringhe di variabili/terminali. Altro esempio: Altro esempio: diventano e
  3. Togliamo le regole unitarie: . Per ogni occorrenza di regole , aggiungo . ( sempre sequenza di variabili/terminali) (piccola gif a scopo di intrattenimento)
  4. Infine tolgo tutte le , quindi per compensare introduco nelle regole nuove Esempio: dopodiché (che non è ancora in CFG) diventa e , dove è una variabile d’appoggio introdotta adesso.

Esercizio

ŧodo

Regole originali

Primo passaggio: aggiunta di .

Secondo passaggio: togliamo le regole.

Terzo passaggio: togliamo le regole unitarie.

  • togliamo e per compensare aggiungiamo