Klasyfikacja gramatyki Chomsky'ego
Według Noama Chomosky'ego istnieją cztery typy gramatyki - typ 0, typ 1, typ 2 i typ 3. Poniższa tabela pokazuje, czym się one od siebie różnią -
Typ gramatyki | Zaakceptowano gramatykę | Zaakceptowano język | Automat |
---|---|---|---|
Wpisz 0 | Nieograniczona gramatyka | Język rekurencyjnie wyliczalny | Maszyna Turinga |
Typ 1 | Gramatyka kontekstowa | Język wrażliwy na kontekst | Automat z ograniczeniami liniowymi |
Wpisz 2 | Gramatyka bezkontekstowa | Język bezkontekstowy | Automat dociskowy |
Wpisz 3 | Gramatyka regularna | Język zwykły | Automat skończony |
Spójrz na poniższą ilustrację. Pokazuje zakres każdego rodzaju gramatyki -
Typ - 3 gramatyki
Type-3 grammarsgeneruj języki regularne. Gramatyki typu 3 muszą mieć pojedynczy terminal nieterminalny po lewej stronie i prawostronny składający się z pojedynczego terminala lub pojedynczego terminala, po którym następuje pojedynczy nieterminal.
Produkcje muszą być w formie X → a or X → aY
gdzie X, Y ∈ N (Bez terminala)
i a ∈ T (Terminal)
Zasada S → ε jest dozwolone, jeśli S nie pojawia się po prawej stronie żadnej reguły.
Przykład
X → ε
X → a | aY
Y → b
Typ - 2 Gramatyka
Type-2 grammars generować języki bezkontekstowe.
Produkcje muszą być w formie A → γ
gdzie A ∈ N (Bez terminala)
i γ ∈ (T ∪ N)* (Ciąg terminali i nieterminali).
Te języki generowane przez te gramatyki są rozpoznawane przez niedeterministyczny automat ze stosem.
Przykład
S → X a
X → a
X → aX
X → abc
X → ε
Typ - 1 gramatyka
Type-1 grammarsgenerować języki kontekstowe. Produkcje muszą być w formie
α A β → α γ β
gdzie A ∈ N (Nieterminalowe)
i α, β, γ ∈ (T ∪ N)* (Ciągi terminali i nieterminali)
Sznurki α i β może być pusty, ale γ nie może być puste.
Zasada S → εjest dozwolone, jeśli S nie pojawia się po prawej stronie żadnej reguły. Języki generowane przez te gramatyki są rozpoznawane przez automat liniowo ograniczony.
Przykład
AB → AbBc
A → bcA
B → b
Typ - 0 Gramatyka
Type-0 grammarsgeneruje rekurencyjnie wyliczalne języki. Produkcje nie mają ograniczeń. Są to dowolne gramatyki struktur fazowych, w tym wszystkie gramatyki formalne.
Generują języki, które są rozpoznawane przez maszynę Turinga.
Produkcje mogą mieć postać α → β gdzie α jest ciągiem terminali i nieterminali z co najmniej jednym nieterminalnym i α nie może być zero. β jest ciągiem terminali i nieterminali.
Przykład
S → ACaB
Bc → acB
CB → DB
aD → Db