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.
- Dobbiamo trasformare le regola della CFG. Per prima cosa aggiungo , la nuova variabile iniziale e le regole .
- 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
- Togliamo le regole unitarie: . Per ogni occorrenza di regole , aggiungo . ( sempre sequenza di variabili/terminali)
(piccola gif a scopo di intrattenimento) - 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
Regole originali
Primo passaggio: aggiunta di .
Secondo passaggio: togliamo le regole.
Terzo passaggio: togliamo le regole unitarie.
- togliamo e per compensare aggiungiamo