Note
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
, composta rispettivamente da:
- Un alfabeto o vocabolario terminale
- Un alfabeto o vocabolario non terminale
- Un alfabeto o vocabolario
- Un assioma o simbolo iniziale
- Insieme delle produzioni sintattiche o regole di riscrittura
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
Regole di derivazione
Note
Definiamo la relazione di derivazione immediata
per una grammatica come se e solo se e . Dove non ambiguo, è possibile omettere il pedice che indica la grammatica. Inoltre definiamo come la chiusura riflessiva e transitiva di . Il linguaggio generato dalla grammatica è l’insieme di tutte e sole le stringhe di soli caratteri di tali che .
Esempio linguaggio generatore di
Definiamo la grammatica
con . Si ha che una possibile derivazione è: Un altra possibile derivazione è:
Quindi il linguaggio generato è
.
Esempio linguaggio ben parentetizzato
Si ha
. Si discerne che genera un linguaggio di coppie di e ben parentetizzate.
Espressività delle grammatiche
Note
È 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 $A\to a,\space A\to aA$ oppure $A\to a,\space A\to Aa$ con $a\in V_{t}$ e $A\in V_{n}$ |
Conversione FSA - Grammatiche regolari
Per passare da un FSA ad una grammatica poniamo
, e . Si ha che per ogni aggiungiamo all’insieme , e se per una data , aggiungiamo anche all’insieme . È dimostrabile per induzione che se e solo se . Viceversa, per passare da una grammatica ad un FSA ND, poniamo
, e . Abbiamo che se allora , e se allora .
Grammatiche libere dal contesto e AP-ND
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.
Grammatiche non limitate e MT
Le grammatiche non limitate corrispondono alla MT. Emuliamo una MT
a nastro singolo con una grammatica non ristretta. Considerato che può “manipolare” solo elementi di , faccio in modo che generi stringhe della forma , con e che è costituita da coppia non terminali degli elementi di . Si ha che le grammatiche di tipo
corrispondono a un sottoinsieme delle MT di cui è certo che terminino sempre.