A differenza dei modelli di linguaggio/calcolo visti finora, che definiscono un linguaggio tramite l'elaborazione della stringa che gli appartiene, la grammatica o sintassi è un modello generativo. In generale, è un insieme di regole per generare frasi di un linguaggio.
Formalmente, una grammatica è una quadrupla
Le regola di una grammatica descrivono un "oggetto principale" come un insieme ordinato di "componenti". La descrizione è fornita fino ad arrivare al livello di dettaglio desiderato. Spesso si tende a chiamare lessico la descrizione grammaticale delle singole parole, sintassi quella della loro composizione.
Per semplicità di notazione, indicheremo gli elementi
Definiamo la relazione di derivazione immediata
Definiamo la grammatica
Si ha che una possibile derivazione è:
Si ha
È possibile categorizzare le grammatiche in base alla loro espressività. Per farlo si usa la gerarchia di Chomsky:
Tipo | Nome | Limitazione |
---|---|---|
0 | Non limitate | nessuna |
1 | Monotone (non-decreasing) | |
1 | Dipendenti dal contesto | |
2 | Libere dal contesto | |
3 | Regolari | Di forma |
Per passare da un FSA ad una grammatica poniamo
Viceversa, per passare da una grammatica ad un FSA ND, poniamo
I linguaggi generati dalle grammatiche libere dal contesto coincidono con i linguaggi riconosciuti dagli AP non deterministici. Le dimensioni fisiche della funzione di rete dipendono dalle dimensioni fisiche dei fasori.
Le grammatiche non limitate corrispondono alla MT. Emuliamo una MT
Si ha che le grammatiche di tipo