1. TIPOLOGIE DI LINGUAGGI
GERARCHIA DI CHOMSKY
Tipo Linguaggio Automa Regole ri produzione
Ricorsivamente
Tipo 0 Macchina di Turing Nessuna restrizione
enumerabile
Macchina di turing con nastro proporzionale alla
Tipo 1 Sensibile al contesto 𝛼𝐴𝛽 ⟶ 𝛼𝛾𝛽
lunghezza del linguaggio
Tipo 2 Libero dal contesto Pushdown-Automaton 𝐴⟶ 𝛾
Tipo 3 Lineare (o regolare) Macchina a stati finiti 𝐴 ⟶ 𝛾 e𝐴 ⟶ 𝛾𝐵 o 𝐴 ⟶ 𝐵𝛾
T IPO 0 ( U N R E S T R I C T E D G R A M M A R )
I linguaggi di tipo 0 non hanno nessuna restrizione. Quindi permettono accorciamenti e
assegnamenti a stringhe nulle.
Possono essere riconosciuti da una Macchina di Turing, essendo ricorsivamente
enumerabili, ma non possono essere decisi.
T IPO 1 ( C O N T E X T - D E P E N D E N T G R A M M A R )
I linguaggi di tipo 1 hanno come restrizione una relazione di questo tipo:
𝛼𝐴𝛽 ⟶ 𝛼𝛾𝛽
Una definizone alternativa prevede
𝛼 ⟶ 𝛽, 𝛼 ≤ 𝛽
La prima impedisce produzioni del tipo:
𝐶𝐷 ⟶ 𝐷𝐶
T IPO 2 (C O N T E X T - F R E E G R A M M A R )
I linguaggi di tipo 2 generano due tipologie di linguaggi: lineari a destra o a sinistra. In
particolare, oltre ad ammettere produzioni del tipo
𝐴⟶ 𝛾
T IPO 3 (G R A M M A T I C H E R E G O L A R I )
Vengono rappresentante da espressioni regolari, nelle quali vale
𝐴⟶ 𝛾
Le altre produzioni devono essere esclusivamente di uno dei seguenti tipi:
𝐴 ⟶ 𝛾𝐵 Lineare a destra
𝐴 ⟶ 𝐵𝛾 Lineare a sinistra
2. In questo tipo di grammatica può essere utile portare tutto in forma normale di Chomsky o
di Greibach
FORMA N O R MA L E DI C HO MSK Y
Produzioni nella forma 𝐴 ⟶ 𝐵𝐶|𝑎
ESEMPIO
Data:
𝑆 ⟶ 𝑑𝐴|𝑐𝐵
𝐴 ⟶ 𝑑𝐴𝐴|𝑐𝑆|𝑐
𝐵 ⟶ 𝑐𝐵𝐵|𝑑𝑆|𝑑
Diventa
𝑆⟶ 𝑀𝐴|𝑁𝐵
𝐴⟶ 𝑀𝑃|𝑁𝑆|𝑐
𝐵⟶ 𝑁𝑄|𝑀𝑆|𝑑
𝑀⟶ 𝑑
𝑁⟶ 𝑐
𝑃⟶ 𝐴𝐴
𝑄⟶ 𝐵𝐵
FORMA N O R MA L E DI G REI B A CH
Produzioni nella forma 𝐴 ⟶ 𝑎𝐵|𝑎𝐶
Questa forma facilita gli automi riconoscitori.
ESEMPIO
Data:
𝑆 ⟶ 𝑋𝑎
𝑋 ⟶ 𝑏𝑆|𝑆𝑐|𝑑
Diventa
𝑆⟶ 𝑏𝑆𝐴|𝑑𝑍𝐴|𝑑𝐴
𝐴⟶ 𝑎
𝐶⟶ 𝑐
𝑍⟶ 𝑎𝐶|𝑎𝐶𝑍
La struttura della versione di Greibach rende evidente il motivo per cui è così importante.