Clasificación de Chomsky de gramáticas
Según Noam Chomosky, hay cuatro tipos de gramáticas: tipo 0, tipo 1, tipo 2 y tipo 3. La siguiente tabla muestra cómo se diferencian entre sí:
Tipo de gramática | Gramática aceptada | Idioma aceptado | Autómata |
---|---|---|---|
Tipo 0 | Gramática sin restricciones | Lenguaje recursivamente enumerable | Máquina de Turing |
Tipo 1 | Gramática sensible al contexto | Lenguaje sensible al contexto | Autómata delimitado lineal |
Tipo 2 | Gramática libre de contexto | Lenguaje libre de contexto | Autómata de empuje |
Tipo 3 | Gramática regular | Lenguaje habitual | Autómata de estado finito |
Eche un vistazo a la siguiente ilustración. Muestra el alcance de cada tipo de gramática:
Tipo - 3 gramática
Type-3 grammarsgenerar lenguajes regulares. Las gramáticas de tipo 3 deben tener un solo no terminal en el lado izquierdo y un lado derecho que consta de un solo terminal o un solo terminal seguido de un solo no terminal.
Las producciones deben estar en la forma X → a or X → aY
dónde X, Y ∈ N (No terminal)
y a ∈ T (Terminal)
La regla S → ε está permitido si S no aparece en el lado derecho de ninguna regla.
Ejemplo
X → ε
X → a | aY
Y → b
Tipo - 2 gramática
Type-2 grammars generar lenguajes libres de contexto.
Las producciones deben estar en la forma A → γ
dónde A ∈ N (No terminal)
y γ ∈ (T ∪ N)* (Cadena de terminales y no terminales).
Estos lenguajes generados por estas gramáticas son reconocidos por un autómata pushdown no determinista.
Ejemplo
S → X a
X → a
X → aX
X → abc
X → ε
Tipo - 1 gramática
Type-1 grammarsgenerar lenguajes sensibles al contexto. Las producciones deben estar en la forma
α A β → α γ β
dónde A ∈ N (No terminal)
y α, β, γ ∈ (T ∪ N)* (Cadenas de terminales y no terminales)
Las cuerdas α y β puede estar vacío, pero γ no debe estar vacío.
La regla S → εestá permitido si S no aparece en el lado derecho de ninguna regla. Los lenguajes generados por estas gramáticas son reconocidos por un autómata acotado lineal.
Ejemplo
AB → AbBc
A → bcA
B → b
Tipo - 0 gramática
Type-0 grammarsgenerar lenguajes recursivamente enumerables. Las producciones no tienen restricciones. Son cualquier gramática de estructura de fase, incluidas todas las gramáticas formales.
Generan los lenguajes que son reconocidos por una máquina de Turing.
Las producciones pueden ser en forma de α → β dónde α es una cadena de terminales y no terminales con al menos un no terminal y α no puede ser nulo. β es una cadena de terminales y no terminales.
Ejemplo
S → ACaB
Bc → acB
CB → DB
aD → Db