Una gramática regular es una gramática formal de tipo 3 en la jerarquía de Chomsky , las gramáticas regulares definen exactamente todos los lenguajes regulares y, por lo tanto, son equivalentes a máquinas de estado y expresiones regulares . Las gramáticas regulares son un subconjunto de las gramáticas libres de contexto .
Una gramática regular se puede especificar mediante un conjunto de reglas como una gramática regular izquierda o derecha.
Gramática regular derecha o gramática lineal derecha : todas las reglas pueden tener una de las siguientes formas:
gramática regular izquierda , o gramática lineal izquierda , - todas las reglas pueden estar en una de las siguientes formas:
dónde
Las clases de gramáticas regulares derecha e izquierda son equivalentes: cada una tomada por separado es suficiente para definir todos los lenguajes regulares. Cualquier gramática regular se puede convertir de izquierda a derecha y viceversa.
Los nombres alternativos se deben al hecho de que son subclases de la clase más general de gramáticas lineales .
La gramática regular derecha G dada por N = {S, A}, Σ = {a, b, c}, P consta de las siguientes reglas:
S → aS S→bA A→ε A→cAy S es el símbolo de inicio. Esta gramática describe el mismo lenguaje que la expresión regular a*bc*.
Es esencial que las reglas sean solo regulares de izquierda o regulares de derecha. No se permite una combinación de ambos. Por ejemplo, un lenguaje de cadenas libre de contexto de la forma , donde no es regular, pero está dado por una gramática G , donde N = {S, A}, Σ = {a, b}, P consta de
S→aA A→Sb S→εy S es el símbolo de inicio. Esta gramática contiene reglas regulares a la izquierda y regulares a la derecha y, por lo tanto, no es regular.
Lenguajes formales y gramáticas formales | |
---|---|
Conceptos generales | |
tipo 0 | |
Tipo 1 |
|
Tipo 2 | |
Tipo 3 |
|
analizando |