Classificazione di Chomsky delle grammatiche
Secondo Noam Chomosky, ci sono quattro tipi di grammatiche: Tipo 0, Tipo 1, Tipo 2 e Tipo 3. La tabella seguente mostra come differiscono l'una dall'altra -
Tipo di grammatica | Grammatica accettata | Lingua accettata | Automa |
---|---|---|---|
Digita 0 | Grammatica illimitata | Linguaggio ricorsivamente enumerabile | Macchina di Turing |
Tipo 1 | Grammatica sensibile al contesto | Linguaggio sensibile al contesto | Automa lineare limitato |
Tipo 2 | Grammatica senza contesto | Linguaggio senza contesto | Automa a spinta |
Tipo 3 | Grammatica regolare | Linguaggio regolare | Automa a stati finiti |
Dai un'occhiata alla seguente illustrazione. Mostra l'ambito di ogni tipo di grammatica -
Tipo - 3 grammatica
Type-3 grammarsgenerare linguaggi regolari. Le grammatiche di tipo 3 devono avere un singolo non terminale sul lato sinistro e un lato destro costituito da un singolo terminale o singolo terminale seguito da un singolo non terminale.
Le produzioni devono essere nella forma X → a or X → aY
dove X, Y ∈ N (Non terminale)
e a ∈ T (Terminale)
La regola S → ε è consentito se S non appare a destra di nessuna regola.
Esempio
X → ε
X → a | aY
Y → b
Tipo - 2 grammatica
Type-2 grammars generare linguaggi privi di contesto.
Le produzioni devono essere nella forma A → γ
dove A ∈ N (Non terminale)
e γ ∈ (T ∪ N)* (Stringa di terminali e non terminali).
Questi linguaggi generati da queste grammatiche sono riconosciuti da un automa pushdown non deterministico.
Esempio
S → X a
X → a
X → aX
X → abc
X → ε
Tipo - 1 grammatica
Type-1 grammarsgenerare linguaggi sensibili al contesto. Le produzioni devono essere nella forma
α A β → α γ β
dove A ∈ N (Non terminale)
e α, β, γ ∈ (T ∪ N)* (Stringhe di terminali e non terminali)
Le corde α e β potrebbe essere vuoto, ma γ non deve essere vuoto.
La regola S → εè consentito se S non compare a destra di nessuna regola. I linguaggi generati da queste grammatiche sono riconosciuti da un automa lineare limitato.
Esempio
AB → AbBc
A → bcA
B → b
Tipo - 0 grammatica
Type-0 grammarsgenerare linguaggi enumerabili ricorsivamente. Le produzioni non hanno restrizioni. Sono qualsiasi grammatica a struttura di fase, comprese tutte le grammatiche formali.
Generano i linguaggi riconosciuti da una macchina di Turing.
Le produzioni possono essere sotto forma di α → β dove α è una stringa di terminali e non terminali con almeno un non terminale e α non può essere nullo. β è una stringa di terminali e non terminali.
Esempio
S → ACaB
Bc → acB
CB → DB
aD → Db